fix(cli): pin fast-uri to the patched Ajv-compatible v3 range - #830
Draft
BlandineRdl wants to merge 1 commit into
Draft
fix(cli): pin fast-uri to the patched Ajv-compatible v3 range#830BlandineRdl wants to merge 1 commit into
BlandineRdl wants to merge 1 commit into
Conversation
The >=3.1.2 floor is open-ended, so the lockfile resolved fast-uri@4.0.0 on the production Ajv path - outside the ^3.0.1 range ajv@8 declares. Constrain it to >=3.1.6 <4: the smallest range that keeps Ajv 8 compatibility and excludes every reported vulnerable v3 release. Closes ai-driven-dev#463 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BZF7CTRvfq3FWDqaCWhkCJ
BlandineRdl
force-pushed
the
BlandineRdl/463
branch
from
September 10, 2026 15:19
384b909 to
21319ff
Compare
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.
🎯 What & why
cli/pnpm-workspace.yamlfloorsfast-uriat>=3.1.2with no upper bound, so the lockfile resolvedfast-uri@4.0.0on the production Ajv path — outside the^3.0.1rangeajv@8actually declares. This constrains the override to>=3.1.6 <4: the smallest range that keeps Ajv 8 compatibility and excludes every vulnerable v3 release reported in #463, without pulling in a major the CLI was never tested against.🛠️ How it works
cli/pnpm-workspace.yaml:fast-uri: '>=3.1.2'=>'>=3.1.6 <4'cli/pnpm-lock.yaml:fast-uri@4.0.0=>fast-uri@3.1.7forajv@8.20.0andajv@8.18.0Seven lines across two files. Dependency resolution only, no CLI or context change.
🧪 How to verify
cd cli && pnpm why fast-uri --prod=>Found 1 version of fast-uri,fast-uri@3.1.7underajv@8.20.0cd cli && pnpm audit --prod --json=>{'info': 0, 'low': 0, 'moderate': 0, 'high': 0, 'critical': 0}cd cli && pnpm test:unit=> 274 files, 3710 tests passedcd cli && pnpm test:integration=> 104 files, 1309 tests passedcd cli && pnpm install --lockfile-onlyleaves the lockfile untouched, and its supply-chain policy check passes (527 entries)fast-uri@4.0.0. The defect fixed here is the unpinned major on a production input-validation path, not a live advisory.tests/e2e/telemetry-hook-install.e2e.test.tsfails on my machine, identically with and without this change (verified by reinstalling the base lockfile and rerunning). Cause is local git config:url.https://github.com/.insteadof git@github.com:rewrites the SSH remote the test sets, so the hook recordshttps://…where the test expectsgit@…. Unrelated to this PR; worth a separate look, since CI without that rewrite does not see it (every check on this PR is green).next(42f572ca), which already contains it.📋 Against the acceptance criteria of #463
Two criteria are met in intent but not to the letter — stated here so nobody ticks a box that does not match what landed.
cli/package.jsonconstrainsfast-uri— in intent only. Onnextthe override lives incli/pnpm-workspace.yaml; pnpm 12 no longer readspackage.json'spnpmfield, and the file itself says so (cli/pnpm-workspace.yaml:9-13). The ticket predates that move.cli/pnpm-lock.yaml— outcome yes, method no. The fourfast-urientries were edited directly, then validated by the pinned pnpm 12.3.4: it rewrites nothing, the supply-chain policy passes (527 entries), and--frozen-lockfileinstalls 3.1.7. A full regeneration also passes, but adds ~230 lines of unrelated churn (libc:fields,supports-colorpeer annotations) — outside the "one small security commit" boundary the ticket sets.fast-uriadvisory — met, andpnpm audit --prodreports zero at every severity.schema-validator.unit,codex-plugin-manifest.unit,claude-marketplace-manifest.unit,manifest-repository-adapter.integration=> 4 files, 32 tests.schema-validator.ts:8is the actualrequire("ajv")consumer.nextbefore feat(cli): one shared framework source per machine, user scope and session telemetry #795 merges — not achievable. feat(cli): one shared framework source per machine, user scope and session telemetry #795 was merged on 2026-09-09; this branch is based onnext(42f572ca), which contains it.🔗 Linked issue
Closes #463
✅ I certify
🤖 Generated with Claude Code
https://claude.ai/code/session_01BZF7CTRvfq3FWDqaCWhkCJ