fix(deps): pin js-yaml to patched release - #1571
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe frontend workspace pins Changesjs-yaml security pin
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The frontend now pins js-yaml to 4.3.1 and adds a contract preventing vulnerable 4.3.0 lockfile references. The dependency metadata and tested consumer path are aligned, with no remaining merge-blocking implementation risk. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Fresh review finding on exact head Keep Draft. Before merge, either (a) reproduce a minimal pnpm-11.5.3 lock regeneration that changes only the override-required closure, or (b) document and independently verify why each additional transitive/snapshot change is an unavoidable deterministic consequence of the repository's current manifests and pinned pnpm. Add an executable lock assertion that fails if any vulnerable |
|
Lock-delta review resolved on exact head |
|
The Naruon CI owner integration verifies frozen pnpm11.5.3 install, 439 frontend tests and ESLint; installed ESLint resolves js-yaml4.3.1. Actual |
Replace the named capture with an equivalent numbered capture. The existing tsc gate reproduced TS1503 at c3cf4ef; keep the product target and patched dependency lock unchanged.
|
The standalone current dependency head The earlier body instruction to keep Draft until approval is circular with the protected central workflow: |
Current compatibility repair
Current head
3f568412da61f12ba36c71765bf915acc8abb85d, tree21bb392248542c8b8c7b498dd4f2af292d8c1d51, is open and Ready for independent review (not merge-ready). The previous head's Vitest pass did not establish type compatibility:corepack pnpm@11.5.3 --dir frontend exec tsc --noEmitexited 2 with TS1503 at the named capture infrontend/src/dependency-lock.security.test.ts:30.The two-line fix uses the equivalent numbered capture and
?.[1]; ES2017, the workspace override, and lock bytes remain unchanged (lock blob018f0382c815ea7a35899e64ddb6c3645399fcb6). Frozen install, focused Vitest (2/2), typecheck and lint passed locally; focused tests and typecheck were repeated on the committed head before the guarded, non-force push. This is local evidence, not terminal hosted checks, independent approval or protected merge. #1562 integrates this complete owner lineage with ordinary merges.Standalone review-admission receipt (2026-09-06)
The unchanged current head passed frozen install, all 52 frontend files / 439 tests (3.66s), lint/typecheck and whitespace checks. Its own merge ref
beaaf7415a9ae57caaff9c53d0cb612924da7ec0, tree21bb392248542c8b8c7b498dd4f2af292d8c1d51, passed Trivy HIGH/CRITICAL fixable vulnerability/misconfiguration scanning with dev dependencies included (zero findings, report SHA-2565a0016d6af002ed06cc6ab3425d78d3265f435eddf05db8f171c79fa5097e2bb). No unresolved review threads were returned.Marked Ready at unchanged head to admit central independent review. The previous instruction to wait for approval while Draft was circular with protected central dispatch policy, which does not dispatch for a live Draft. Hosted checks and qualifying approval remain pending; no source, protection, status or prerequisite was bypassed.
Security gap
Dependabot alert #91 reports GHSA-5p4m-2wfm-xmqj against transitive
js-yaml@4.3.0infrontend/pnpm-lock.yaml; the first patched 4.x release is 4.3.1. The current consumer path is ESLint tooling, not shipped runtime UI code.Intended causal fix
Use the repository's existing pnpm-native
overridespolicy infrontend/pnpm-workspace.yamlto requirejs-yaml@4.3.1, then regenerate the pinned lock with repository-required pnpm 11.5.3. No product runtime/API/UI contract should change.Historical pre-compatibility authority
develop@042b0c70531b229af3acbd0421a2f23098d848b323cb8e0eda1e0a29dbb39e1ca98c32a5313d2a0ec3cf4efc478a264a0a010df82d1ea90b48776610frontend/pnpm-workspace.yaml,frontend/pnpm-lock.yaml,frontend/src/dependency-lock.security.test.tsThe dependency slice pins
js-yaml: "4.3.1"through the workspace override and lock. Direct childc3cf4efc...adds an executable Vitest contract rather than relying on PR prose: it verifies the workspace and lock metadata pin 4.3.1, rejects anyjs-yaml@4.3.0orjs-yaml: 4.3.0occurrence, enumerates the lock's resolved js-yaml package versions, and verifies the ESLint configuration snapshot consumes 4.3.1. The test uses only Node built-ins plus the existing Vitest dependency.At the historical c3cf4ef head this was source/test evidence, not protected GREEN. Then-current Application CI
33937074325, Security Scan33937074329, SAST Semgrep33937074321, CodeQL PR33937074364, Bandit33937074330, and Docker33937074400are queued. No qualifying independent post-last-push approval has been established.Deterministic lock regeneration evidence
Pinned pnpm 11.5.3 reproduced the committed lock byte-for-byte with
pnpm install --lockfile-only --frozen-lockfile=false(git hash-object frontend/pnpm-lock.yaml=018f0382c815ea7a35899e64ddb6c3645399fcb6). The resolver therefore necessarily refreshes@eslint/eslintrc3.3.6→3.3.7, canonicalizes the existing ESLint resolver peer snapshot identities, and records current ESLint deprecation metadata while applying the workspace override. A narrowerpnpm update js-yaml@4.3.1 --lockfile-onlywas rejected because it additionally changed unrelated@napi-rs/wasm-runtime,picomatch, and Vite closure entries. No integrity hash was hand-edited.The executable Vitest contract passes (2 tests): it requires the 4.3.1 workspace/lock override, enumerates the sole resolved js-yaml version, rejects 4.3.0, and verifies the ESLint consumer snapshot. The repeated regeneration remained byte-clean and
git diff --checkpassed.Merge boundary
Ready admits independent review; it does not permit merge. Merge only when every then-live repository/organization required check is terminal-success, all valid review threads are resolved, and qualifying independent post-last-push approval exists. No predecessor evidence, self-approval, force push, destructive rebase, dummy requeue commit, or protection bypass applies.
Summary by CodeRabbit
Security
js-yamldependency to version 4.3.1.Tests