Who We Are
Qidu is operated by Qidu, LLC, a Delaware limited liability company with its principal office at 131 Continental Dr, Suite 305, Newark, DE 19713, USA. For any privacy question or request you can reach us at hello@qidu.ai.
Qidu keeps technical documentation in step with the code it describes. When a pull request is merged on a repository you have connected, we read the change, work out which documentation pages it has made inaccurate, and draft the corrections. Nothing is published until a person on your side approves it. For documentation kept in Git the approved edits arrive as a draft pull request on your repository; for documentation Qidu hosts, a Zendesk Help Center or Notion pages, they are written onto the page. Qidu also answers questions from your own documentation, in the app and in the tools you connect. For purposes of GDPR and similar laws, Qidu, LLC acts as the data controller for the account data described below, and as a processor for the repository content we read on your instruction, where you are the controller.
What We Read From Your Repositories
This is the part of the policy that matters most, so it is stated plainly. Once you install our GitHub App and connect a repository, Qidu reads the following through a GitHub App installation token:
- Your source code, in the form of diffs. For each merged pull request on a connected repository we fetch the full unified diff. A diff contains the actual content of the lines your change added and removed. GitHub refuses to serve diffs above roughly 20,000 lines, and a pull request that large is recorded as skipped rather than partly processed.
- Whole source files around the change. To draft a correction we read, at the merged commit, the code files the change touched (not tests or generated files), the files a flagged page names as its sources, the files those import, and the package manifests nearest the change. For a documentation change someone asks for, we also read up to twelve files whose names suggest they hold the values the page states, and keep the ones that do. No more than 120,000 characters of these files go into one drafting request.
- Pull request titles and descriptions, including the author-written prose in them, plus the pull request number, branch names and merge commit SHA.
- Your documentation content. We fetch the full text of Markdown files (
.md,.mdx,.markdown) under the documentation paths configured for the repository. If you keep documentation in a separate repository, we read it from there instead. - A listing of file paths in the repository tree, used to suggest where documentation actually lives and to find the source files described above.
- Your CODEOWNERS file, to choose who to ask for a review of a documentation pull request.
- Repository and installation metadata: repository owner and name, default branch, the GitHub account the App is installed on, and the list of repositories that installation can reach.
Qidu does not clone your repository, and it does not read source files beyond those described above.
What We Write To Your Repositories
The GitHub App installation also permits Qidu to write. We use that permission for these things only:
- Creating a branch named
qidu/docs-…, committing the approved documentation edits to it, and opening a draft pull request. Where a repository does not support draft pull requests, we open an ordinary pull request instead. We keep that branch and pull request up to date while it is open, and delete the branch if the pull request could not be opened. - Asking for reviewers on that pull request: the code owners of the pages it changes or, failing that, the author of the change.
- One comment on the merged pull request that started the work, edited in place, saying which documentation pull requests it led to and who approved them.
- Uninstalling the GitHub App when you disconnect GitHub in Qidu or delete your workspace.
Qidu does not merge pull requests and does not push to your default branch. A person on your side reviews and merges every change.
GitHub grants an App write access to the whole of each repository you select, not to particular folders. Keeping Qidu’s edits inside the documentation paths you configured is a rule in our own code, not a limit GitHub enforces.
Other Tools You Connect
Each of these is optional and reached only after someone in your workspace connects it. Disconnecting one, or deleting the workspace, revokes Qidu’s access to it. The notices, answers and corrections Qidu posts in them can quote your documentation.
- Slack. Qidu posts notices about documentation work to the channel you choose, answers questions in the threads where it is mentioned, and sends direct messages to workspace members who turn Slack notifications on. To find a member in Slack it looks them up by the email address on their Qidu account.
- Linear. When Qidu is asked about an issue, it reads the issue’s identifier, title, description, link, team, assignee and attachments, the message that asked it, and the name and email address of the person who asked. It reads the team’s workflow statuses, writes one comment on the issue that it edits in place, posts progress in the Linear agent session, and, if your team chose a status for it, moves the issue once its documentation is decided.
- Notion. Qidu reads only the pages and databases you share with it, and writes approved corrections, including page titles, back onto those pages.
- Zendesk. Qidu reads your Help Center articles and their translations and writes approved corrections back to them. Connecting adds a webhook and a trigger to your Zendesk account. The trigger tells Qidu only which ticket and comment to look at when an internal note mentions Qidu; Qidu then reads the ticket’s twenty newest comments, uses only that internal note as the question, and answers with an internal note of its own.
- Email. A workspace can have its own address at
in.qidu.ai. For each message sent to it Qidu reads the sender, recipients, subject, body and the sender-authentication results, but not attachments. It answers only senders who pass authentication and are workspace members or on a domain the workspace allows, and replies by email.
Information We Collect About You
- Account information handled by our authentication provider (Clerk), and mirrored into our database: your name, email address, the identity provider you signed in with, your avatar URL, an optional bio, and the time you last signed in.
- Workspace information: the name, slug, description and settings of the workspace you create, its members, their roles, each member’s notification settings, and any invitations you send (each of which stores the invited person’s email address and an expiring token).
- Billing information: the Stripe customer ID, subscription ID, subscription status and billing email associated with your workspace. Payment method details such as card numbers are collected and stored by Stripe, never by Qidu.
- Repository configuration: the repositories you connect, their GitHub App installation ID, the documentation paths and locales you set, and whether the connection is active.
- Slack connection, if you connect Slack: the Slack workspace and channel you chose, and the bot token Slack issues, which we store encrypted. When someone mentions Qidu in Slack we store the thread’s messages, including the text and Slack user ID of people who may not have a Qidu account. We also record which Slack messages we posted about which job, and which members we notified.
- Linear connection, if you connect Linear: the OAuth token, stored encrypted; the Linear organisation and the teams and settings you chose; and, for each issue Qidu works on, its identifier, link and team, the pull requests linked to it (number, title, author and who merged it), and the IDs of Qidu’s comment and agent session. The name and email address of the person who asked are kept with the job.
- Notion and Zendesk connections, if you connect them: the OAuth token, stored encrypted, and the Notion workspace or Zendesk account it belongs to. For Zendesk we also store the signing secret of the webhook Qidu created, encrypted, and the ticket IDs Qidu has answered on, with the Zendesk user ID of the person who asked.
- Email to a workspace address: the subject and the sender’s own text, with quoted earlier messages removed, and the sender’s name or address. We do not keep the original message.
- Change requests: the change someone asked for, and who asked, by Qidu account, Slack user, Linear user, Zendesk user or email address, with a link to where they asked.
- Custom domains you attach to a published documentation site.
- Waitlist sign-ups from our website: the email address, which form it came from, and the browser’s user agent.
- Operational logs produced by our servers, which record request and job activity including workspace and repository identifiers and error messages.
- Model usage records: for each request we make to Anthropic or TypeSafe, what it was for, the model, token counts, an estimated cost, how long it took, the provider’s request ID, any error message, and the workspace, job, conversation or page path it concerned. No prompt or response text is kept in these records.
What We Store, and Where
Everything below lives in a single PostgreSQL database run on Google Cloud SQL in the us-central1 region, alongside our API on Google Cloud Run. The categories that carry your content are:
- A copy of your documentation corpus. For a documentation set read from GitHub we keep the full text of each Markdown page, up to 2,000 pages per set, so that a later job does not have to re-download the whole site. Each page is stored with its git blob SHA and refreshed when that SHA changes; a page deleted upstream is deleted here on the next run. We also keep the full text of each page we read from Notion or a Zendesk Help Center.
- Documentation Qidu hosts. For a documentation set hosted by Qidu, the pages stored here are the documentation itself, up to 1,000 pages per set. Every change to such a page is kept as a revision holding the full page text, including after the page is deleted, until the documentation set is deleted.
- A copy of every proposed edit. For each page we propose to change, we store the full replacement text of that page, the model’s one-sentence rationale, and the evidence chain linking a changed line of code to a line of documentation.
- A copy of the diff, when drafting is queued. Under the bring-your-own-compute mode described below, the full drafting brief — including the unified diff, the source files read for it and the flagged page contents — is stored as a queued request until a drafter picks it up, and the submitted result is stored alongside it.
- Job records: which pull request triggered the work, its title, the status and any error, a summary of what changed, and the number and URL of the documentation pull request we opened.
- Questions and answers: questions asked about your documentation in the app, Slack, Linear, Zendesk or by email, the answers, the pages they cite, and any rating given to an answer.
- Release notes: the What’s new and changelog entries Qidu drafts from your merged changes, which you can publish to a public page and feed.
None of this expires on a timer. It is kept until you delete the repository connection, documentation set or workspace it belongs to, as described under Data Retention.
How We Use Information
- To provide and operate the Qidu service.
- To identify which documentation pages a code change has made inaccurate, and to draft corrections for them using a large language model. This involves sending the pull request diff, the source files read for it and the flagged page contents to a model provider — see Subprocessors below.
- To answer questions about your documentation, which sends the question, the conversation so far and the relevant pages to a model provider.
- To post updates and answers in the tools you connect: Slack, Linear and Zendesk, and by email.
- To authenticate users and protect against fraud and abuse.
- To process subscription billing through Stripe.
- To send service-related communications: sign-in and account emails (sent by Clerk on our behalf); and, through Resend, workspace invitations, waitlist confirmations, the notification emails and digests each member chooses in their settings, and notices about the service.
- To comply with legal obligations.
We do not sell personal information, and we do not use your source code, diffs or documentation to train any general-purpose machine-learning model.
AI Drafting: Two Modes
Drafting works in one of two ways depending on how your deployment is configured. The other services that receive your content are listed under Subprocessors below.
- Qidu-hosted drafting (the default). The pull request diff, the source files read for it, up to eight flagged documentation pages and three folder index pages with their full contents, and the evidence for each are sent to Anthropic’s API for inference. The diff is truncated at roughly 120,000 characters and each page at roughly 60,000 characters before the request is sent.
- Bring your own compute. When a workspace is configured for external drafting, Qidu does not call any model provider. The drafting brief is parked in our database and claimed over an authenticated agent API by a client that you run against your own model entitlement. Your code reaches your model provider under your own agreement with them, not ours.
In both modes, reading the pull request, indexing the documentation and mapping the change onto pages happen on Qidu’s servers, and the resulting draft pull request is opened by Qidu.
How We Share Information (Subprocessors)
We share information with a small set of service providers that help us run the service. We require each subprocessor to handle data under contractual obligations consistent with this policy.
- Google Cloud Platform: hosting infrastructure (Cloud Run, Cloud SQL for PostgreSQL, Artifact Registry, Cloud Build, Secret Manager, Cloud KMS). Region:
us-central1. - Anthropic PBC: AI inference using Anthropic’s Claude models. For documentation drafting, pull request diffs, the source files read for them and documentation page contents are sent to Anthropic in prompt context. This applies to Qidu-hosted drafting only; under bring-your-own-compute no drafting request is sent to Anthropic by us. Whichever way drafting runs, Anthropic also receives a pull request’s title, description and part of its diff with one page when we double-check whether that page is affected; the question, the conversation and relevant pages when you ask about your documentation, including the issue’s title and description when you ask from Linear; the request and relevant pages when you ask for a documentation change; and the rationale and part of the diff for each corrected page when we draft release notes.
- TypeSafe: when enabled for a deployment, scores which documentation pages a pull request affects. It receives the pull request’s title and description, excerpts of its diff, and the full text of the candidate pages.
- Clerk: user authentication and identity management, including the sign-in and account emails sent on our behalf.
- Resend: delivery of workspace invitations (the invitee’s email address, the workspace name and the inviter’s name) and waitlist confirmations (the address alone); of the notification emails and digests members choose, which carry pull request titles, page paths, links and, when a correction awaits approval, the first changed lines of up to three pages; and of answers to email sent to a workspace address. Resend also receives that email for us.
- Stripe: subscription billing and payment processing.
- Vercel: hosting for our public website, the web application and published documentation sites. The pages of a documentation set you publish are served through Vercel, and custom domain names you attach are registered with it. Aggregate traffic measurement runs on our website and web application, not on your documentation sites.
GitHub and the tools described under Other Tools You Connect are not our subprocessors. You choose to connect them, under your own agreement with each, and Qidu exchanges with them only what the sections above describe.
We may also disclose information if required by law or in response to valid legal requests by public authorities.
Data Retention
We do not run an automatic expiry over stored content. Job history, proposed edits and queued drafting requests are kept until you disconnect the repository they came from. Documentation pages, their revisions and the questions asked about them are kept until you delete the documentation set. Model usage records stay after the job they belong to is removed. Everything in a workspace is kept until the workspace is deleted. Each of these deletions is immediate and permanent in our database. Uninstalling the GitHub App pauses processing but does not by itself delete stored data. A waitlist sign-up is kept until you delete your account or ask us to remove it.
Deleted records remain in our database backups for up to seven days, or up to thirty days in the occasional extra backup we take before maintenance. Our server logs are kept for thirty days. The Data Deletion page sets out each path and exactly what it removes.
Data Deletion
You can delete your data at any time. Disconnecting a repository, deleting a documentation set, deleting a workspace and deleting your account are all self-service inside the product and take effect immediately; any other request is handled by emailing hello@qidu.ai with the subject “Data Deletion Request”. Full instructions are on our Data Deletion page.
Your Rights
Subject to applicable law, you have the right to access, correct, update, port, or delete the personal information we hold about you, and to object to or restrict certain processing.
If you are in the European Union, the United Kingdom, or another jurisdiction with similar laws, you also have the right to lodge a complaint with your local data-protection authority. California residents have additional rights under the California Consumer Privacy Act (CCPA), including the right to know what categories of personal information are collected and to request deletion.
To exercise any of these rights, email hello@qidu.ai. We respond to verified requests within thirty (30) days.
Cookies
The Qidu website uses a minimal set of cookies and similar technologies that are strictly necessary to deliver the site, together with aggregate traffic and performance measurement provided by our hosting provider. We do not use advertising or cross-site tracking cookies. The Qidu product (the signed-in application) uses cookies for authentication via Clerk and to remember which workspace you are working in.
Children’s Privacy
Qidu is not intended for children under thirteen (13). We do not knowingly collect personal information from children under 13. If you believe a child has provided us with personal information, please contact hello@qidu.ai and we will delete it.
Security
We implement appropriate technical and organizational measures to protect information against unauthorized access, alteration, disclosure, or destruction. GitHub App credentials and other secrets are held in Google Secret Manager rather than in our source code; GitHub installation access tokens are short-lived, held in memory only and never written to our database; the tokens Slack, Linear, Notion and Zendesk issue us are encrypted with AES-256-GCM before they are stored; traffic is encrypted in transit using TLS; incoming webhooks from GitHub, Stripe, Slack, Linear, Zendesk and Resend are verified by signature before we act on them; every query is scoped to a single workspace so one customer cannot reach another’s data; and access to production systems is restricted to authorized personnel.
International Data Transfers
Qidu is operated from the United States. If you access the service from outside the United States, your information may be transferred to, stored, and processed in the United States and other countries where our service providers maintain facilities. Where required, we rely on appropriate transfer mechanisms such as the European Commission’s Standard Contractual Clauses.
Changes to This Policy
We may update this Privacy Policy from time to time. If we make material changes we will notify customers by email and update the “Last updated” date at the top of this page.
Governing Law
This Privacy Policy is governed by the laws of the State of Delaware, United States of America, without regard to its conflict-of-laws principles.
Contact Us
Questions, comments, or privacy requests can be sent to hello@qidu.ai or by mail to:
Qidu, LLC
131 Continental Dr, Suite 305
Newark, DE 19713
USA