You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Protected main still resolves nanoid@3.3.16, affected by GHSA-2v37-7h3g-55p8 / CVE-2026-67213 (<3.3.17). The vulnerable package is transitive through postcss@8.5.25, whose declared range accepts the patched 3.3.17. Until the protected branch integrates the bounded remediation, direct-main PRs that inherit main continue to fail npm audit --audit-level=high even when their own tests are green.
Do not weaken npm audit, lower severity, add an ignore/VEX waiver, or duplicate the lockfile fix across unrelated branches.
package-lock delta: existing node_modules/nanoid object only, 3.3.16 -> 3.3.17 plus the corresponding registry URL and integrity value;
PostCSS declaration remains unchanged.
The branch also binds its own CI/reviewer checkout to the immutable PR head and fixed Node/npm execution identity rather than treating a moving runtime as dependency evidence.
All three PR-associated workflows for unchanged exact head e0106ce16b7b8b493f46bf075ec5baf58762bd95 are terminal success:
application ci run 31252585269: exact-head checkout/assertion, Node 24.19.0, npm 11.17.0, frozen install, 62 test files / 646 tests, configured 100% statements/branches/functions/lines, and npm audit --audit-level=high with 0 vulnerabilities;
reviewer-ci run 31252585267: terminal success under its own exact-head verification and reviewer quality gates;
central Security Scan run 31252585268: terminal success, with OSV explicitly comparing base 9adb784... to exact head e0106c...; its Trivy synthetic-merge result remains integration evidence rather than being mislabeled exact-head evidence.
Current CodeRabbit findings on #76 are resolved/outdated after revalidation. Formal review evidence remains COMMENTED only; no qualifying non-author APPROVED review is present.
Fresh collaborator probes still show opencode-agent has repository permission none; cwl-noema-review has no usable collaborator permission. Those previously rejected routes are not retried until eligibility changes.
Repository-wide impact still visible
PR #69 exact head 0689fa6933dfc8db89abd053427a78a45455c86c passed 82 test files / 873 tests with configured 100% statements/branches/functions/lines, then failed only when release:verify reached npm audit --audit-level=high and found nanoid <3.3.17 inherited from protected main.
The same inherited boundary affects direct-main #65/#71/#72/#85/#86/#88 until #76 integrates. Stacked #87/#89/#80 deliberately inherit #76 and can prove their unique work without copying the lockfile remediation.
A fresh changed-file and three-way-ancestry audit shows that simply merging #76 is not enough: dependent branches must be refreshed in an order that preserves later control-plane and documentation changes. Old checks/reviews do not transfer.
This is a current dependency/overlap plan, not timeless architecture. Recompute exact ancestry and changed-file overlap after every protected merge or branch movement.
Acceptance criteria
Repository-owned remediation
Keep the remediation minimal and deterministic: nanoid@3.3.17 without unrelated lock metadata churn.
Refetch protected main and verify integrated nanoid@3.3.17 plus clean npm audit --audit-level=high.
Refresh dependent branches from the integrated protected lineage using the current overlap graph, preserving all unique files/contracts and reacquiring exact-head/security/review evidence.
Recompute the graph after every protected integration; never assume the above historical heads remain current.
Safety boundary
Do not create/reuse .github/workflows/repair-*, self-modifying Actions, PR-branch patch workflows, write-capable one-shot finalizers, audit waivers, severity reductions, synthetic approval, destructive rebase/force push, or no-op churn merely to retrigger checks/reviews.
Problem
Protected
mainstill resolvesnanoid@3.3.16, affected byGHSA-2v37-7h3g-55p8/CVE-2026-67213(<3.3.17). The vulnerable package is transitive throughpostcss@8.5.25, whose declared range accepts the patched3.3.17. Until the protected branch integrates the bounded remediation, direct-main PRs that inheritmaincontinue to failnpm audit --audit-level=higheven when their own tests are green.Do not weaken
npm audit, lower severity, add an ignore/VEX waiver, or duplicate the lockfile fix across unrelated branches.Active root remediation
PR #76 is the canonical remediation line.
Fresh source identity:
main:9adb784902cae19a150146a8fadd6a0491f67814;e0106ce16b7b8b493f46bf075ec5baf58762bd95;node_modules/nanoidobject only,3.3.16 -> 3.3.17plus the corresponding registry URL and integrity value;The branch also binds its own CI/reviewer checkout to the immutable PR head and fixed Node/npm execution identity rather than treating a moving runtime as dependency evidence.
Current exact-head proof for #76
All three PR-associated workflows for unchanged exact head
e0106ce16b7b8b493f46bf075ec5baf58762bd95are terminal success:cirun31252585269: exact-head checkout/assertion, Node24.19.0, npm11.17.0, frozen install, 62 test files / 646 tests, configured 100% statements/branches/functions/lines, andnpm audit --audit-level=highwith 0 vulnerabilities;reviewer-cirun31252585267: terminal success under its own exact-head verification and reviewer quality gates;Security Scanrun31252585268: terminal success, with OSV explicitly comparing base9adb784...to exact heade0106c...; its Trivy synthetic-merge result remains integration evidence rather than being mislabeled exact-head evidence.Current CodeRabbit findings on #76 are resolved/outdated after revalidation. Formal review evidence remains COMMENTED only; no qualifying non-author
APPROVEDreview is present.Fresh collaborator probes still show
opencode-agenthas repository permissionnone;cwl-noema-reviewhas no usable collaborator permission. Those previously rejected routes are not retried until eligibility changes.Repository-wide impact still visible
PR #69 exact head
0689fa6933dfc8db89abd053427a78a45455c86cpassed 82 test files / 873 tests with configured 100% statements/branches/functions/lines, then failed only whenrelease:verifyreachednpm audit --audit-level=highand foundnanoid <3.3.17inherited from protectedmain.The same inherited boundary affects direct-main #65/#71/#72/#85/#86/#88 until #76 integrates. Stacked #87/#89/#80 deliberately inherit #76 and can prove their unique work without copying the lockfile remediation.
Post-#76 integration fan-out / overlap RCA
A fresh changed-file and three-way-ancestry audit shows that simply merging #76 is not enough: dependent branches must be refreshed in an order that preserves later control-plane and documentation changes. Old checks/reviews do not transfer.
First protected-lineage controls after #76
.github/workflows/ci.yml,package.json,vitest.config.ts,test/workflow-readiness.test.ts, andCHANGELOG.mdand establishes the deterministic Node/npm/lockfile baseline future PRs must preserve.AGENTS.md,scripts/lib/main-governance-audit.mjs, andtest/main-governance-audit.test.ts.PRs that must refresh after #89 or reconcile its controls
.github/workflows/ci.yml,package.json,vitest.config.ts,test/workflow-readiness.test.ts, andCHANGELOG.md. fix(acquisition): authenticate data-room manifest evidence #69 currently has the older Node-major / plainnpm ciCI shape, while build(reproducibility): restack deterministic npm controls after nanoid #89 has exact Node24.19.0/ npm11.17.0, live-base lockfile control and explicit install flags. fix(acquisition): authenticate data-room manifest evidence #69 must be rebuilt/refreshed after build(reproducibility): restack deterministic npm controls after nanoid #89 so acquisition exact-head checks are added on top of the deterministic package-manager baseline rather than overwriting it.package.jsonandCHANGELOG.md; itsoperations:runner-assignmentscript must be replayed on top of build(reproducibility): restack deterministic npm controls after nanoid #89's package-manager metadata without dropping either contract.CHANGELOG.mdand overlaps fix(governance): audit independent approval requirement #87 onAGENTS.md. fix(security): make product publisher branch creation atomic #80 must therefore come only after the protected lineage contains both the fix(governance): audit independent approval requirement #87 governance/guidance correction and build(reproducibility): restack deterministic npm controls after nanoid #89 package-manager/changelog control, then replay only its unique scheduler/publisher/NIM work.Other dependent lines
CHANGELOG.md; refresh them from the then-current protected base and preserve accumulated## Unreleasedentries.Current convergence sketch:
This is a current dependency/overlap plan, not timeless architecture. Recompute exact ancestry and changed-file overlap after every protected merge or branch movement.
Acceptance criteria
Repository-owned remediation
nanoid@3.3.17without unrelated lock metadata churn.npm audit --audit-level=highunchanged.## UnreleasedCHANGELOG.Merge / protected-main acceptance
mainruleset/governance required by issue chore(governance): protect main and enforce release checks #27 is enforceable, including required current evidence and direct-push/break-glass controls.mainand verify integratednanoid@3.3.17plus cleannpm audit --audit-level=high.Safety boundary
Do not create/reuse
.github/workflows/repair-*, self-modifying Actions, PR-branch patch workflows, write-capable one-shot finalizers, audit waivers, severity reductions, synthetic approval, destructive rebase/force push, or no-op churn merely to retrigger checks/reviews.Related: #27, #29, #65, #67, #69, #71, #72, #76, #77, #79, #80, #83, #85, #86, #87, #88, #89