Skip to content

fix(test): restore main by catching #9813's expectations up to its own change - #9829

Merged
JSONbored merged 1 commit into
mainfrom
fix/ci-resolution-ignored-key-tests
Jul 29, 2026
Merged

fix(test): restore main by catching #9813's expectations up to its own change#9829
JSONbored merged 1 commit into
mainfrom
fix/ci-resolution-ignored-key-tests

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Closes #9828

main is red

The last four ci.yml runs on main are failure, since #9813 (gate.ignoredCheckRuns) merged. Every branch cut from or merged with main inherits it — #9804 went red on exactly these tests with no changes of its own anywhere near them, which is how I found it.

#9813's implementation is correct. Only its expectations were left behind:

Failure Cause
3 × agent-approval-queue.test.ts, 1 × queue.test.ts fetchLiveCiAggregate / fetchLiveCiAggregatePreferGraphQl gained an eighth parameter (ignoredCheckRuns); the toHaveBeenCalledWith assertions still pass seven
1 × queue.test.ts durable-cache regression The cache key is now …|adv:…|ign:…; the assertion still expects |adv: alone
1 × config-templates.test.ts The 19-line ignoredCheckRuns block was added to .loopover.yml.example but not config/examples/loopover.full.yml, which must match byte-for-byte from # WHERE IT LIVES onward

No production behaviour changes — every edit is to a test expectation or the unsynced example template. loopover.full.yml's tail is copied verbatim from .loopover.yml.example rather than hand-retyped, so the two are byte-identical by construction.

Why this is worth its own PR rather than a fix inside another

Per the gate's disposition matrix, red CI auto-CLOSES a contributor PR. A contributor who opened a PR after #9813 landed gets closed for a defect that is not theirs and that they cannot fix — the same class of harm #9798 and #9801 describe, except this one does not self-correct. That deserves the shortest possible path to green on main.

Validation

490 tests pass across queue, agent-approval-queue, config-templates, gate-check-policy and pr-detail-durable-cache. tsc --noEmit, selfhost:config-lint, docs:drift-check, import-specifiers:check all clean.

Verified the failures reproduce on unmodified origin/main before fixing, so this is confirmed as the cause rather than an interaction with my other branches.

Follow-up noted in the issue

config-templates.test.ts catches template divergence only after merge. The byte-identical-from-a-marker relationship is really a generation relationship expressed as an assertion — loopover.full.yml's tail could be generated from .loopover.yml.example via a :write/:check pair like replay-runner-image-manifest or gen-contract-api-schemas, so the two could not drift at all. Out of scope here; the priority is getting main green.

…n change

main's CI has been red since #9813 (gate.ignoredCheckRuns) merged -- the last
four ci.yml runs on main all failed, and every branch cut from or merged with
main inherits it. #9804 went red on these tests with no changes of its own
anywhere near them.

#9813's implementation is correct; only the expectations were left behind:

  * fetchLiveCiAggregate / fetchLiveCiAggregatePreferGraphQl gained an eighth
    parameter (ignoredCheckRuns) while four toHaveBeenCalledWith assertions
    still passed seven;
  * the durable cache key gained an `|ign:` segment, while queue.test.ts's
    durable-cache regression still expected `|adv:` alone;
  * the whole ignoredCheckRuns block (19 lines) was added to
    .loopover.yml.example but not to config/examples/loopover.full.yml, which
    config-templates.test.ts requires byte-identical from `# WHERE IT LIVES`
    onward.

No production behaviour changes. This matters beyond a red build: the gate
auto-CLOSES a contributor PR on red CI, so a contributor who opened a PR after
#9813 landed would be closed for a defect that is not theirs and that they
cannot fix -- the same harm #9798 and #9801 describe, except this one does not
self-correct.

Closes #9828
@loopover-orb

loopover-orb Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Important

🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨

⏳ LoopOver is waiting…

LoopOver has seen this pull request and is waiting on CI checks to finish before reviewing it. This comment will update once the review runs.

🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed · 🟨 Waiting

@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.76%. Comparing base (92df9ea) to head (df0001f).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #9829       +/-   ##
===========================================
+ Coverage   79.03%   90.76%   +11.73%     
===========================================
  Files         280      915      +635     
  Lines       58366   112700    +54334     
  Branches     6697    27077    +20380     
===========================================
+ Hits        46128   102294    +56166     
+ Misses      11955     9314     -2641     
- Partials      283     1092      +809     
Flag Coverage Δ
backend 94.10% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 768 files with indirect coverage changes

loopover-orb Bot pushed a commit that referenced this pull request Jul 29, 2026
…9837)

contract:api-schemas:check fails on main: #9813 added ignoredCheckRuns to
RepositorySettingsSchema in src/ without committing the regenerated contract
copy. Fourth piece of that PR's fallout, after the three #9829 fixed.

@loopover/contract is what MCP and miner consume, and api-schemas.ts is what an
external client validates a settings write against -- so a client built on the
published contract silently strips ignoredCheckRuns: accepted by the server,
absent from the schema, configuration that appears to save and then does nothing.

Generated output, not hand-edited: `npm run contract:api-schemas`.

Closes #9836
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

main is red: #9813 landed with stale ciRequiredContextsKey expectations and an unsynced config template

1 participant