Privacy Policy
1. Introduction
Heimdl is operated by LEGAL ENTITY NAME, registered at REGISTERED ADDRESS ("Heimdl", "we", "us"). This policy explains what information we collect when you use Heimdl, how we use it, and the choices available to you. It applies to visitors of our website and to customers who install the Heimdl GitHub App.
Heimdl is a code review product. When a pull request is opened, Heimdl clones the relevant repository into a fresh container, injects small faults into the lines the change touched, runs the repository's own test suite against each fault, and reports the faults that no test caught. Heimdl can also propose a test that would have caught a reported fault. This policy describes the information involved in providing that service.
This policy is governed by the law of GOVERNING LAW. Questions about this policy, or a request made under it, can be sent to hello@heimdl.ai.
2. Information We Collect
We collect information in the following categories.
- Account information. When you sign in, we receive your identity from GitHub. We request only the scope needed to identify you, not broad access to your GitHub account beyond what the installed GitHub App requires to operate.
- Run and repository information. Identifiers for each run and the repository it belongs to, the commit checked, the stages the run went through, counters, durations, and cost.
- Findings. For each fault Heimdl reports, we record a code location, a description of the expected behaviour, whether a test caught it, which tests ran, and a classification.
- Feedback. If you or a member of your team responds to a finding, we record that response together with the finding it relates to.
- Billing information. Events used to meter usage against your plan, and your plan and account records.
- Authentication tokens. We store a one way hash of each token we issue, not the token itself. A short, non-secret display prefix is kept alongside the hash so you can recognize a token in your account settings.
3. How We Use Your Information
We use the information described above to operate Heimdl: to run checks against your pull requests, to report findings back to you, to meter and bill usage against your plan, to authenticate you and your team, and to improve the accuracy of the checks Heimdl performs. We also use it to communicate with you about your account and about changes to the service.
4. Your Repository Content
A public repository is cloned without an installation. A private repository is cloned only through the Heimdl GitHub App that you or your organization has installed, using that installation's own credentials. We never use a token supplied directly by the person requesting a check.
Each check runs inside a container provisioned for that one run. This execution happens on our own compute, not inside your automation account and not on a developer's own machine.
The durable records we keep about a run, described in Section 8, do not contain a copy of your source files. A finding is limited to a code location, a description of the expected behaviour, whether a test caught the fault, which tests ran, and a classification.
5. Third Party Model Providers
When Heimdl proposes a candidate test for a reported fault, it sends content derived from your repository to a third party AI model provider over the network, for the sole purpose of generating that candidate test. The provider we use is OpenRouter.
What is sent includes the fault record, which carries a file path and a location within it, and the highest ranked available source of expected behaviour for that fault. That source can include a source code excerpt.
We do not control how long a third party model provider retains a prompt we send, or how it otherwise uses that prompt beyond returning a response to us. We do not represent that any such provider excludes your content from training or retains it for any particular period.
6. Third Party Observability Provider
Every run produces a trace: a record of what ran, how long each stage took, what was found, and one span for each call made to a model provider. Heimdl sends this trace to a third party observability provider, Comet ML, which offers this product under the name Opik, at comet.com.
By default, a trace carries full payloads. This means the prompt sent to the model provider and the test the model generated are included in the trace and stored by Comet ML, alongside the counts, durations, statuses, and other structured fields describing the run.
What a trace contains is configurable through an environment variable, OPIK_CAPTURE. Set to payloads, which is the default, a trace includes the full prompt and the full generated test as described above. Set to shapes, free text is stripped from the trace: no prompt and no generated test is sent, and the trace is limited to counts, classifications, durations, statuses, failure kinds, token usage, and identifiers.
We do not control how long Comet ML retains a trace we send, or how it otherwise uses that trace beyond making it available to us for observability. We do not represent that Comet ML retains a trace for any particular period.
7. How We Share Information
We share information with the third party model provider described in Section 5 and the third party observability provider described in Section 6, as needed to generate a candidate test and to operate observability for a run. We do not sell your information. We may disclose information where required by law, to enforce our agreements, or to protect the rights, property, or safety of Heimdl, our customers, or others.
8. Data Retention
The table below describes what we store durably and our current retention practice for each category.
| What is stored | Contents | Retention |
|---|---|---|
| Run records | Run and repository identifiers, commit, stages, counters, durations, cost, and findings. | Indefinite, until you request deletion. |
| Developer feedback | Your response to a finding, linked to that finding. | Indefinite, until you request deletion. |
| Billing meter events | Usage events recorded against your plan. | Indefinite, until you request deletion. |
| Plan and account records | Your plan and which repositories are attached to your account. | Indefinite, until you request deletion. |
| Mutation matrices | Whole module mutation results produced by a run. | A limited number of recent matrices per module, older ones are removed. |
| Incremental engine state | State that allows a later run to build on a previous one. | Kept until explicitly cleared, or until you request deletion. |
| Authentication tokens | A one way hash of each issued token, a short non-secret display prefix, and its status. | Kept after revocation so we can confirm a credential existed and when it stopped working. |
Today, most of these records are retained indefinitely rather than deleted on a fixed schedule. If you would like your data reviewed or deleted, contact hello@heimdl.ai and we will act on your request.
9. Your Rights and Choices
You may ask us to provide, correct, or delete the information we hold about you or your repositories by writing to hello@heimdl.ai. You may also revoke an authentication token at any time from your account settings, and you may remove the Heimdl GitHub App from a repository or organization at any time through GitHub.
10. Security
We store authentication tokens only as a one way hash, together with a short non-secret display prefix, so the token itself is not recoverable from our records. Each check runs in a container provisioned for that one run, isolated from other customers' runs. We take reasonable measures to protect the information described in this policy, though no method of storage or transmission is completely secure.
11. International Transfers
We and the third party providers described in this policy may process information in countries other than your own. Where we transfer information across borders, we take steps intended to ensure it continues to receive an appropriate level of protection.
12. Children's Privacy
Heimdl is intended for use by software development teams and is not directed to children. We do not knowingly collect information from children.
13. Changes to This Policy
We may update this policy from time to time. If we make a material change, we will update the date at the top of this page. Your continued use of Heimdl after a change takes effect constitutes acceptance of the updated policy.
14. How to Contact Us
If you have questions about this policy or how we handle your information, contact us at hello@heimdl.ai.
Heimdl