Problem
npm run contract:api-schemas:check fails on main:
packages/loopover-contract/src/api-schemas.ts is stale. Run `npm run contract:api-schemas` and commit the result.
#9813 (gate.ignoredCheckRuns) added the field to RepositorySettingsSchema in src/ but did not commit the
regenerated contract copy. The missing line is one, directly beside the sibling it mirrors:
ignoredCheckRuns: z.array(z.object({ name: z.string(), appSlug: z.string() })).readonly().nullable().optional(),
This is the fourth piece of #9813 fallout, after the three #9829 fixed (a stale arity assertion, a stale
cache-key expectation, and an unsynced config template).
Why it matters
@loopover/contract is the published package MCP and miner consume, and api-schemas.ts is what an external
client validates PUT /repos/:owner/:repo/settings against. A client built on the published contract silently
strips ignoredCheckRuns — accepted by the server, absent from the schema — so the configuration appears to
save and then does nothing, with no error at either end.
The generator exists precisely to stop the two sides drifting; it only helps if its output is committed.
Fix
Run npm run contract:api-schemas and commit. No hand-editing — the file is generated.
Note
This check does not appear to gate ci.yml (which is why main is green despite the drift). Whether it
should is a separate question worth asking: a contract-drift check that never runs cannot catch the class of
bug it exists for.
Problem
npm run contract:api-schemas:checkfails onmain:#9813 (
gate.ignoredCheckRuns) added the field toRepositorySettingsSchemainsrc/but did not commit theregenerated contract copy. The missing line is one, directly beside the sibling it mirrors:
This is the fourth piece of #9813 fallout, after the three #9829 fixed (a stale arity assertion, a stale
cache-key expectation, and an unsynced config template).
Why it matters
@loopover/contractis the published package MCP and miner consume, andapi-schemas.tsis what an externalclient validates
PUT /repos/:owner/:repo/settingsagainst. A client built on the published contract silentlystrips
ignoredCheckRuns— accepted by the server, absent from the schema — so the configuration appears tosave and then does nothing, with no error at either end.
The generator exists precisely to stop the two sides drifting; it only helps if its output is committed.
Fix
Run
npm run contract:api-schemasand commit. No hand-editing — the file is generated.Note
This check does not appear to gate
ci.yml(which is whymainis green despite the drift). Whether itshould is a separate question worth asking: a contract-drift check that never runs cannot catch the class of
bug it exists for.