Repository navigation
Conversation
Completes the diegosouzapw#15590 landing: the squash carried the quality.yml move of cycles from the plain gates array into ratchet_gates but not the matching membership-test update, so tests/unit/quality-rail-gate-membership.test.ts reds every PR off release/v3.8.52 (CI Unit Tests 3/8 + fast-path 3/4, 2026-10-05 run 37377709748). The G0 guard requires the edit to ride along with the gate move, with the reason in the diff. Base-red diegosouzapw#15306.
check:agent-skills-sync reds every PR off release/v3.8.52: the omni-auth SKILL.md and omni-settings endpoints reference drifted from their sources (Merge integrity job, run 37377709748). Same regeneration as diegosouzapw#15652 for omni-providers. Base-red diegosouzapw#15306.
Adversarial review finding on diegosouzapw#15682: the needles pinned cycles' presence in ratchet_gates but not its absence from the plain gates array, so a future PR could re-add cycles to gates[] while the test stayed green — plain check-cycles.mjs then exits 1 on ANY cycle and reds every PR at the frozen 14-SCC ceiling. assert.doesNotMatch on the plain-gates line closes it.
…-closed reality diegosouzapw#15281 (69cb18d) shipped both the comments and the fail-closed exits in the same commit: plain mode exits 1 on ANY cycle and --ratchet with a missing/invalid baseline falls through to exit 1 (main() lines 464-497), but the header and readBaselineCyclesValue docstring still described plain mode as advisory with no ceiling. Comment-only; behavior unchanged.
The chore(skills) bullet sat in fixes/; the repo's changelog taxonomy keeps non-fix bullets under changelog.d/maintenance/ (precedent: 15225, 15252, 15389). Review finding on diegosouzapw#15682; no gate change.
Re-certification rig on diegosouzapw#15682: the line-anchored doesNotMatch missed a same-array-different-line re-entry (cycles on its own line inside gates=(...)); the test passed while plain check-cycles would exit 1 in CI. Match the full gates=(...) array slice so any line inside it trips. Verified: pristine workflow 5/5; injected standalone-cycles line trips.
main() exits 0 before reading the baseline when cycles.length === 0, in every mode; the previous wording implied a missing baseline blocks even that path. Comment-only.
…e-v3.8.52-basereds-r2
- README/AGENTS/llm.txt (+ i18n mirrors): 193 to 194 SQL migrations, clearing the strict docs-counts drift inherited from release/v3.8.52 - QUALITY_GATES.md + RELEASE_CHECKLIST.md: bare `check:cycles` exits 1 on any cycle since diegosouzapw#15281 (fail-closed, not advisory); the release checklist now runs `check:cycles:ratchet`
Drains 9 v3.8.52 tip unit reds: 1 production fix (combo family-fallback skipped for request-scoped refusals, regression of #13603) + 8 test alignments to intentional contract changes (#15301 #15132 #15035 #15478 #15310 #15710 #15487), each annotated. Validated on a combined board with #15902 after clean npm ci: 32 previously-red files 327/329 (remaining 2 = quality-rail-gate-membership owned by #15682, and route-namespaces fixed in #15902), typecheck/open-sse/api typecheck, lint, 22 gates.
Preserve the measured 202 migrations from the release base, retain the cycle membership regression guard and update the two generated mirror contracts without claiming to resolve unrelated skill drift. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Integrate release/v3.8.52 at ba594f1 without rewriting contributor history or changing the nine-file repair delta. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
|
Maintainer reconciliation update — 2026-10-09 Published head: The normal merge preserves the contributor history and Lance Woodson's authorship. Executed against the reconciled candidate, Node 24.20.0:
Physical dependencies were initialized with a successful HOLD for merge. The canonical, environment-neutral generated-skills dry run still |
…ossary, route map, ToS-default test fallout (#16092) Validated on the branch: 94/94 node tests across the touched files + glossary/route-map gates, the 4 vitest files 20/20 run individually, API typecheck and eslint clean. Remaining tip reds owned elsewhere: executor golden (#16058), quality-rail (#15682), chaosVirtualCombo (#16090), skills sync (#15945/#15948).
Preserve the contributor refresh and validate against 7510677. The effective delta remains eight tooling/documentation files; generated skills and full release gates remain separate holds. Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
|
Maintainer reconciliation — 2026-10-10 Thanks @woodsonl for the original repair and the contributor-side base refresh. The merge retains your latest Evidence on this prepared candidate (Node 24.20.0):
These runs used the earlier physical dependency cache. The new base changes HOLD for merge. The exact base's generated-skills check still reports No admin override, force push, hook bypass, baseline increase, merge to release/main, |
Summary
Follow-up drain to #15590 (merged as b8c50e1). CI-only: no runtime code changes. Fixes the two base-reds that red every PR off
release/v3.8.52and can be fixed mechanically. Cut fresh from tipf43c4679e6; base has since been merged in twice (+90 commits at the r2 cut, then +83 more at98afa2c5a4), and a docs-reconciliation commit (8991e0544b) rides on top. Reviewed through two gstack fix cycles, a clean certification on the pre-merge tree, and a clean re-certification on the merged tree.Membership test (
bf7c24a66d, hardened in9707949fac,2bb94e374e) — the fix(release): drain three v3.8.52 base-reds — cycles fast-gate, stale PR base sha, integration port race #15590 squash carried thequality.ymlmove ofcyclesfrom the plain gates array intoratchet_gates, but not the matching update totests/unit/quality-rail-gate-membership.test.ts. The test still asserted the old needle"cycles lockfile duplication dead-code type-coverage compression-budget", which no longer exists as a substring. Every PR off the base failedUnit Tests (3/8)andUnit Tests fast-path (3/4)withAssertionError: fast-gates must contain "cycles lockfile duplication dead-code type-coverage compression-budget". Evidence: run 37377709748, jobs 111992436180 and 111992148972, 1 fail in 5802 tests, both shards, same test. Confirmed still live on base tip before this fix.The fix pins the guard in both directions: positive needles for
lockfile duplication dead-code type-coverage compression-budget(plain gates) andsecrets vuln-ratchet workflows openapi-breaking cycles(ratchet_gates), plus a negative assertion that matches the wholegates=(...)array slice and fails on any standalonecyclestoken inside it. An injection rig (a standalonecyclesline added inside the array) trips the guard; the pristine workflow passes 5/5. A comment carries the rationale: since fix(ci): make check-cycles honest — real graph walk + cycles ratchet (#15159 G-01/G-02) #15281 (69cb18d),check-cycles.mjsexits 1 on ANY cycle without--ratchet, so fast-gates must run it with the frozen ceiling inquality-baseline.json(metrics.cycles = 14), the samecheck:cycles:ratchetsemantics ci.yml already runs.Skills mirrors (
c833ee0f8b) —check:agent-skills-syncdry-run reportedGenerated: 2: theomni-authSKILL.md and theomni-settings/references/endpoints.mdmirror drifted from their sources, failing theMerge integrity (changelog + generated skills)job on every PR. Evidence: job 111991763543 (run 37377709748). Same failure class as chore(skills): regenerate omni-providers endpoints reference from openapi.yaml #15652, which regeneratedomni-providers. Fix: rannode --import tsx/esm scripts/skills/generate-agent-skills.mjs --applyand committed the generator output verbatim (2 files, +5/−3).Comment corrections (
45bfd7fbbc,d051c0b6ac) —scripts/check/check-cycles.mjsheader and thereadBaselineCyclesValueJSDoc claimed plain mode is "advisory" with no ceiling. fix(ci): make check-cycles honest — real graph walk + cycles ratchet (#15159 G-01/G-02) #15281 shipped those comments together with the fail-closed exits they contradict: plain mode exits 1 on any cycle, and--ratchetexits 1 above the ceiling or when the baseline is missing/invalid (zero cycles exits 0 in every mode). Comment-only; behavior verified unchanged (probes below).Changelog fragments (
23643076b4, split by1809bb367c) —changelog.d/fixes/15682-basereds-r2-membership-test.md(fix bullet) andchangelog.d/maintenance/15682-basereds-r2-skills-mirrors.md(chore bullet), matching the repo's fragment taxonomy.Related Issues
release/v3.8.52; this PR drains two of its live symptoms)Validation
src/,open-sse/,electron/, orbin/runtime code touched.fast-gates must contain "cycles lockfile duplication …"), passes 5/5 after the fix.cyclesre-entry; the earlier line-anchored version did not.d051c0b6ac; skills dry-runGenerated: 0 · Unchanged: 46 · Pruned: 0 · Orphans: 0 · Errors: 0;check:changelog-integrityOK;check:cyclesexits 1 (the guarded failure mode) andcheck:cycles -- --ratchetexits 0.origin/release/v3.8.52tipf43c4679e6; no merge-base drift.Tests Added Or Updated
tests/unit/quality-rail-gate-membership.test.ts— updated the fast-gates membership needles and added the array-slice absence assertion (5 assertions in the file, all green). No new test files; the skills regeneration is validated by the existingcheck:agent-skills-syncgate.Coverage Notes
No runtime code changed, so the coverage gate is not exercised by this diff. The one changed test file is itself a guard test.
Review record (gstack, 2026-10-06)
net: 0 lines possible.d051c0b6ac: all findings fixed in this PR (the guard hardening and comment corrections above); final verdicts "approve/merge as-is" and "no blocking findings". Review log: status clean, 0 issues, quality 10/10, converged after 2 cycles.#15281(69cb18d) shipped the advisory wording and the fail-closed code in the same commit; the comments were wrong from birth.8991e0544b.8991e0544b— QUALITY_GATES.mdcheck:cyclesrow corrected (same "advisory" error the script comments had), RELEASE_CHECKLIST switched tocheck:cycles:ratchet, and the strict docs-counts drift (migrations 193 → 194, inherited from base) fixed across README/AGENTS/llm.txt + 66 locale mirrors.check:docs-allpasses except a pre-existing base red (check:env-doc-sync:NEXT_MANUAL_SIG_HANDLEandOMNIROUTE_ESTIMATOR_CALIBRATIONin code but missing from.env.example) — deferred, needs execution-input changes, not docs.Reviewer Notes
8991e0544btouchesAGENTS.mdandllm.txt(+ 66 locale mirrors of llm.txt) — agent-instruction surfaces that require explicit operator approval to merge per the repo's review rules. The changes are mechanical (migration-count 193 → 194, matching base tip's actual migrations; precedent #15329), but the flag is recorded here because the rule requires it.QUALITY_GATES.mdandRELEASE_CHECKLIST.mdin the same commit are ordinary docs.Still expected red on this PR, all inherited and tracked in #15306, none fixable honestly in this diff:
PROVIDER_REFERENCE.md,ERROR_SANITIZATION.md,OPENCODE-V2-PLUGIN.md, allsource-changed). Needs a real translation refresh (npm run i18n:runwith credentials, or the docs(i18n): carry the corrected ENVIRONMENT.md segments into all locale mirrors #15618 agent-translation pattern). A hash-adopt would mark stale translations as current, so it was deliberately not included.tests/unit/ui/compressionCockpit.test.tsx("window is not defined" unhandled exception via the react-dom scheduler task). 431/431 test files passed; the run fails on the unhandled error count only. jsdom scheduler-after-teardown class, unrelated to this diff.check:ai-attributionrange failure on the lint job.audit:deps(Lint job) failed on thenext16.2.0–16.3.5 critical RCE (GHSA-vcvr-r3jv-pc5j) during the 2026-10-05 run. Base tip already pinsnext@16.3.6, outside the vulnerable range, so no dependency change is needed here; the failure was an artifact of fix(release): drain three v3.8.52 base-reds — cycles fast-gate, stale PR base sha, integration port race #15590's branch predating the base bump.