Both versions must pass
A fix is offered only if it passes the customer's tests and a protected check of the changed call, on the current and the proposed API. Failed or inconclusive never becomes a pull request, and nothing is merged for anyone.
Opted-in customers get a fix tested on both versions. You see counts, not code.
The Contacts API renames display_name to full_name in 2.0.0. The customer's app still works on 1.0.0, but on 2.0.0 the line return payload["display_name"] in src/client.py fails with missing_response_field.
You can't see whose code calls the operation you're changing, so you deprecate, email and wait.
Customers find out from a changelog or an error, then hunt for the call and patch it under pressure. Some never do, and the old version stays.
We move the fix to before your release.
Every result keeps its evidence: pinned revisions, commands and exit codes.
You open a pull request that changes your API.
We find the customers who opted in and use what changed.
We show their code breaks on the new version, then make a small fix.
If the fix works on both versions, they get a pull request.
Example
Your contract's pull request gets a check that shows how many opted-in integrations are affected, how many have a tested fix and how many can't be proven. Never their code, repository names, files or logs.
Your pull request changes getContact: Contacts API 1.0.0 to 2.0.0 renames a response field. Its check says Needs attention: 2 opted-in integrations, 1 with a tested fix ready, 1 that can't be proven. Integration 1 gets a tested fix; Integration 2 can't be proven; an integration that has not opted in is not checked.
They choose the repositories and the APIs those call. When your contract proposes a breaking change, each opted-in repository gets a small fix that works with both versions, as a normal pull request they merge on their schedule.
One repository runs in a sandbox: the original passes on 1.0.0 and fails on 2.0.0, the fix passes on both, and a pull request is ready for review. Another repository's tests never call getContact, so it gets no pull request.
Installing the GitHub App enrolls nothing.
A fix counts only if their code passes against both versions.
A small patch, the reason and the evidence. It never merges for them.
No guessing, and no pull request.
A fix has to earn its pull request. These rules are enforced in code and covered by tests.
A fix is offered only if it passes the customer's tests and a protected check of the changed call, on the current and the proposed API. Failed or inconclusive never becomes a pull request, and nothing is merged for anyone.
A customer repository is analyzed only after its admin enrolls it for a specific API. Installs that grant every repository are refused.
No repository names, file paths, patches, logs or pull request links.
No credentials inside, no network while tests run, time and output limits, removed afterwards.
The affected source files and your contract change. It can't edit tests, CI, dependencies or config: at most 5 files, 200 lines and 2 attempts.
Organization roles and resource ownership are checked on every request.
Only the affected source files and your contract change go to the AI model that writes the fix, from our backend. Never their tests or secrets. Their code runs in a fresh, isolated sandbox, and the results stay in our own database. You never see any of it. We haven't set a retention policy yet.
On your repository it reads metadata and the contract, and posts a check on your pull request. On an opted-in customer repository it pushes its own branch and opens a pull request. The App asks for the same permissions everywhere: read metadata, write contents, pull requests and checks, only on repositories each side selects.
No. In a customer's repository it pushes its own branch and opens a pull request for a person to review. It never merges. Your repository only gets the check.
Then that integration is inconclusive: no pull request for them, and your check counts it as can't be proven, never as safe.
No. Keep opening pull requests against your OpenAPI contract. The check appears on them like any other, and you decide what to do with it.
REST APIs described with OpenAPI 3.0, and clients in Python or TypeScript/Node using common HTTP patterns. Verification currently covers GET operations with a path id and JSON responses. Behavior outside the declared contract is out of scope.
Yes. You register your API; each customer opts in the repositories that call it. We cover only integrations that opted in, within what their tests exercise.
Everything under "Working today" has run on our demo repositories and test fixtures, in our development setup. A check there says the migration was prepared, not that a customer's deployment works.
Working today
Next
Free hosting: the first visit can take about a minute to wake up.
Not yet. It's a hackathon build on a development sign-in and a free hosting plan.
Create a workspace, connect GitHub and register the repository that holds your OpenAPI contract. Nothing is analyzed until a customer opts in.