chore: add defect-hardening issue template and security-remediation standard - #111
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
ratchet | 89c019c | Commit Preview URL Branch Preview URL |
Aug 26 2026, 09:42 PM |
The dependency-audit gate went red with 10 high advisories, all in transitive dev-dependencies (eslint, vitest/@vitest/coverage-v8, typescript-eslint). This is not caused by the two cherry-picked commits in this PR — the advisories were published after main's last green run, so main and every open PR fail the same gate today. Bump the existing major-keyed override pins to the patched versions and add pins for the two packages not previously covered: brace-expansion 1.1.16 -> 1.1.18, 2.1.2 -> 2.1.4, 5.0.7 -> 5.0.9 js-yaml 4.3.0 -> 4.3.1 nanoid (new) 3.3.18 postcss (new) 8.5.23 postcss goes to 8.5.23 rather than the 8.5.18 the high advisory requires, which also clears the moderate incomplete-fix follow-up for the same sourceMappingURL traversal — the same patch-level bump either way. esbuild's advisory is deliberately left alone: it is `low` (arbitrary file read via the dev server on Windows), below the gate's `high` threshold, and unreachable here since build.js uses esbuild's build API and never its dev server. Clearing it would mean a minor bump of the actual build tool for no gate benefit. Verified in a clean worktree: pnpm build, pnpm lint, pnpm test (203 files / 2884 tests pass), and the gate's exact CI invocation now prints `green: dependency-audit gate passed — no vulnerabilities at or above "high"`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cherry-picks two independent, additive commits off
erh/phase-1-spawn-env-plumbingso they can land ahead of that branch's engine work, plus a dependency-pin bump to get CI green.Commits
security(standards): add standards/security-remediation.md— asecurity-remediationstandard requiring that a severe/high exposure be remediated completely or not claimed remediated at all, soproposeplans around partial fixes instead of letting them close the tracking issue.chore(github): add issue template— aDefect / hardeningissue form with imperative-MUST wording rules (written in response to engine: RATCHET_BATCH_AGENT_CMD / RATCHET_EVAL_AGENT_CMD silently replace the agent in production — no gating, no notice, no journal marker, permissions bypassed #80 being worded weakly and half-fixed), plusblank_issues_enabled: false.security(deps): raise transitive pins past the new high advisories— see below.The CI fix is not about this PR's content
The dependency-audit gate went red with 10 high advisories, all in transitive dev-dependencies (eslint, vitest/
@vitest/coverage-v8, typescript-eslint). None are reachable from production dependencies, and none are caused by the two cherry-picked commits — the advisories were published after main's last green run, so main and every open PR fail this same gate today. Landing this unblocks them.The existing major-keyed pins in
pnpm-workspace.yamlwere an earlier round of remediation for the same packages; the new advisories widened the vulnerable ranges past them:postcss goes to 8.5.23 rather than the 8.5.18 the high advisory requires, which also clears the moderate incomplete-fix follow-up for the same
sourceMappingURLtraversal — the same patch-level bump either way.esbuild's advisory is deliberately left open. It is
low(arbitrary file read via the dev server on Windows), below the gate'shighthreshold, and unreachable here sincebuild.jsuses esbuild's build API and never its dev server. Clearing it would mean a minor bump of the actual build tool for no gate benefit.Deliberately not done: switching the gate to
pnpm audit --prod. That would turn the gate green by narrowing what it looks at, in the same PR that adds a standard against exactly that kind of partial remediation.Verification
Run in a clean worktree at this commit:
pnpm build— okpnpm lint— cleanpnpm test— 203 files / 2884 tests passgreen: dependency-audit gate passed — no vulnerabilities at or above "high"One earlier CI run also failed
test/cli-e2e/basic.test.ts:127onresult.timedOut(a 20s CLI budget). That is a flake, not a regression: the parallel run passed all 2884 tests on identical code, and the suite passes locally.🤖 Generated with Claude Code