fix(desktop): the staged runtime was still shipping axios 0.27.2 - #376
Conversation
v0.12.238 pinned axios forward at the root with `"axios": "$axios"`, which is why the root tree carries exactly one copy at 1.19.0. The Desktop staged runtime is a SEPARATE pnpm install with its own overrides block, so none of the root pins reach it, and `@polymarket/builder-relayer-client@0.0.10` has been dragging axios 0.27.2 into it ever since — into the tree electron-builder packages and ships as the app. That is 26 of the repo's 35 open Dependabot alerts, all against apps/desktop/runtime/pnpm-lock.yaml rather than the root lockfile, which is why root-side override work never moved the number. Mirrors the root pin into runtime/pnpm-workspace.yaml and relocks. The relock is surgical — 14 lines: axios 0.27.2 and its follow-redirects / form-data transitives drop out, everything resolves onto the 1.20.0 the tree already carried, and the single @blockrun/clawrouter pin is untouched (runtime-version.test.ts passes). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015mUab3xrLHNpYqVHJLgJHL
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe runtime pnpm workspace now pins ChangesRuntime security pin
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to The staged desktop runtime now pins axios to the maintained resolution, removing the older runtime dependency path without introducing an identified merge-readiness risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 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 |
…380) Audited all 13 root overrides against what the lockfile actually resolves, after finding that the Desktop runtime had never had any of them (#376). Three results. `hono` was pinned `^4.13.0` and resolving to 4.13.1, which is inside the advisory range for both the `toSSG()` write and the query-parser issue (fixed in 4.13.5). Pinned `^4.13.5`; it resolves to 4.13.7. Three lines of lockfile. `basic-ftp` and `jayson > uuid` pin nothing — none of `basic-ftp`, `jayson` or `uuid` is in the tree at all. They are leftovers from dependencies that have since gone, and an override that matches nothing is worse than no override: it reads as protection. Removed, with no change to any resolution. The other nine are doing their job: axios 1.19.0, undici 8.10.0, ws 8.21.3, postcss 8.5.26, esbuild 0.28.1, brace-expansion 5.0.9, fast-uri 3.1.5, tar 7.5.22, ip-address 10.4.0 — one copy each. NOT bumped: vitest `^4.1.3` (resolves 4.1.10) against the @vitest/mocker path-traversal advisory, fixed in 4.1.11. Every route to it — `vitest@^4.1.11`, `vitest@4.1.11` exact — crashes Arborist in `#loadPeerSet` with "Cannot read properties of null (reading 'edgesOut')", the same failure as #373, and retrying does not clear it; unmodified main resolves fine. vitest declares exact-version peers on a dozen optional `@vitest/*` packages, which is the likely trigger. It is development scope and not shipped, so it is not worth a hand-edited lockfile on a package that publishes real-money code. Left for when npm or vitest moves. Verified by clean `npm ci` from this lockfile in a scratch tree: hono 4.13.7, tsc clean, 1088 tests pass. Claude-Session: https://claude.ai/code/session_015mUab3xrLHNpYqVHJLgJHL Co-authored-by: 1bcMax <viewitter@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Summary
The repo's 35 open Dependabot alerts aren't where anyone has been looking. 26 of them are against
apps/desktop/runtime/pnpm-lock.yaml, not the root lockfile — which is why root-side override work never moved the number.v0.12.238pinned axios forward at the root ("axios": "$axios"), and that worked: the root tree carries exactly one copy, at 1.19.0. But the Desktop staged runtime is a separate pnpm install with its ownoverridesblock, so no root pin reaches it.@polymarket/builder-relayer-client@0.0.10has been pullingaxios: 0.27.2into it ever since — into the treeelectron-builderpackages and ships as the app.Same dependency, same fix, second install nobody applied it to.
The change
Mirror the pin into
runtime/pnpm-workspace.yamland relock. The relock is surgical — 14 lines:axios@0.27.2gone, along with itsfollow-redirects/form-datatransitivesaxios@1.20.0, which the tree already carried@blockrun/clawrouterpin is untouched, soruntime-version.test.tsstill passes (2/2)What this does not cover
The remaining 9 root alerts are 8
development-scope (fast-uri, vitest, hono — openclaw and test transitives) pluselliptic <= 6.6.1, which resolves to 6.6.1 with no patched version published. Nothing actionable there.Worth deciding separately whether the runtime workspace should carry the rest of the root security pins as a matter of policy, rather than one dependency at a time — the structural problem is that two lockfiles ship and only one has ever been hardened.
🤖 Generated with Claude Code
https://claude.ai/code/session_015mUab3xrLHNpYqVHJLgJHL
Summary by CodeRabbit