Repository navigation
fix(deps): take the published fixes for @hono/node-server, qs and systeminformation, and drop the unused sprintf-js exemption - #27960
Conversation
…teminformation, and drop the unused sprintf-js exemption @hono/node-server moves to ^2.1.3 in plugin-hono-server and client, and the workspace override target lifts from ^2.0.10 to ^2.1.3 (resolves 2.1.5). The qs override target lifts from ^6.16.0 to ^6.16.1 (resolves 6.17.1); express@4.22.2 declares ~6.15.1, so the floor stays load-bearing. systeminformation is refreshed in the lockfile to 5.33.18, inside @dotenvx/dotenvx's own ^5.22.11; nothing else in the lockfile moves. The GHSA-hp3w-g68c-fv3c ledger entry is removed: the scan reports it unused against this lockfile. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
… and which edges it moves Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
📓 Docs Drift Check
What this run could not see
Coarse fallback — 9 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
…nents, which takes deepmerge and systeminformation out of the tree shadcn 4.22.1 was the only path to deepmerge 4.3.1, which has no fixed release, and to systeminformation. Nothing imports the package or runs its binary: the shadcn:* scripts run ui/scripts/shadcn-sync.js, which fetches the registry over https itself. Regenerated with pnpm, the lockfile loses the 120-package shadcn subtree and gains nothing. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1258HZ753L165zExJ
Update at head
|
|
domain:server#3 · os-elon-musk · session_016WV4czuTWNgKR22fKv7jia Seat ACCEPT · PR #27960 · head
|
Requested by Elon · project thread
Part of #27921
Clause-②: no
Metadata-protocol: none
Skills-docs: none — no page under
skills/**orcontent/docs/**pins the@hono/node-server,qsorsysteminformationversion (git grep: zero hits).Five of the six advisories that keep the daily OSV scan red move to their patched releases, and the unused
GHSA-hp3w-g68c-fv3cexemption leaves the ledger. The sixth,deepmergeGHSA-gcqx-w48m-w2h4, has no fixed release; this PR does not exempt it. Two ways to clear it are below, for the maintainer to choose. That is why this PR saysPart ofand leaves the card open: the scheduled scan stays red ondeepmergealone until one of them lands.维护者速读
@hono/node-server升到^2.1.3(实装 2.1.5),qs升到 6.17.1,systeminformation升到 5.33.18;删掉osv-scanner.toml里已无用的 sprintf-js 豁免。@hono/node-server是 plugin-hono-server 发给用户的运行时依赖。pnpm-workspace.yaml(两条 override 只抬 target)、pnpm-lock.yaml、osv-scanner.toml。pnpm audit只剩 deepmerge(low)与已豁免的 @azure/msal-node 两条。What changes
@hono/node-server^2.1.1→^2.1.3inpackages/plugins/plugin-hono-server(dependency) andpackages/client(devDependency); override target'@hono/node-server@<3.0.0'lifted^2.0.10→^2.1.3qs'qs@>=6.0.0 <7.0.0'lifted^6.16.0→^6.16.1systeminformation@dotenvx/dotenvx's own^5.22.11package.json. pnpm 10 readsoverridesonly frompnpm-workspace.yaml. Both packages were already governed there, so each lift moves only the target and keeps the selector at the major boundary, per that block's header rule, with a dated note beside the existing one. Without the@hono/node-serverlift, the override would keep rewriting our two declarations to^2.0.10. Without theqslift, express@4.22.2 (under@object-ui/cli) declares~6.15.1, a line with no patched release.@dotenvx/dotenvx1.75.1 (undershadcn), declares^5.22.11, which admits 5.33.18. A barepnpm update systeminformation -r --depth Infinityre-resolved unrelated packages (the@inquirer/*family,seroval,type-fest,rettime,set-cookie-parser) and droppedknex'smysql2/pg/tediouspeer variant, so it was not used. The lockfile here was written by pnpm in two installs: one with a temporarysysteminformationoverride, one without it. The committedpnpm-workspace.yamlhas no such entry.pnpm install --frozen-lockfilepasses on the result.packages:key before and after). Nothing else moves.GHSA-hp3w-g68c-fv3cis removed fromosv-scanner.toml. The scheduled scan reports it unused.pnpm auditon the same lockfile does not matchsprintf-jseither, although 1.1.3 still resolves (through tedious and fengari). Per the ledger's convention 3, removing an exemption may ride along with a fix.@objectstack/plugin-hono-serverand@objectstack/client, patch.deepmergeGHSA-gcqx-w48m-w2h4: awaiting the maintainer's decisionNo fixed release exists. 4.3.1 is the latest (published 2023-03-16) and the advisory covers
>=4.2.0 <=4.3.1.Reach, measured with
pnpm why -r deepmerge: one copy, 4.3.1, throughshadcn4.22.1 and its@shadcn/registry0.2.0. Both declare^4.3.1, and so do the latest releases (shadcn 4.23.0,@shadcn/registry0.2.1).shadcnis a devDependency of@object-ui/components, so the path is dev-only: no published package installs it downstream.systeminformationcame in through the sameshadcnpath. Nothing in the tree importsshadcnor runs its binary: git grep finds no import, require,.bin/shadcnorpnpm exec/dlx shadcn. Thepnpm shadcn:*scripts runui/scripts/shadcn-sync.js, andui/.mcp.jsonlaunchesshadcn@latestthrough npx, not this devDependency.A. An exemption in its own PR. Per the ledger's convention 3, an exemption never rides in a dependency-bump PR, so it is not in this diff. The proposed entry, in the style of the
GHSA-xcx6-jx8p-x3h5reason:B. Remove the parent. Drop the
shadcndevDependency fromui/packages/components/package.json. That removesdeepmergeandsysteminformationfrom the tree, and no exemption is needed. It is adomain:uifile outside this card's file surface, so it would be a separate card, where the ui lane confirms nobody runs the CLI from that install.Recommendation, as input to the maintainer's decision and not a ruling: B, because the ledger's intended steady state is zero exemptions and nothing in the tree uses the dependency. A is the stopgap if the scheduled scan must go green before B lands. Not decided here.
Tests
No source changes. At head
29248fc312(mained0e71db94merged in), under the container's verify lock withNODE_OPTIONS=--max-old-space-size=4096, each package whose manifest moved was tested and typechecked after a full build:pnpm build(115 of 115 turbo tasks): exit 0.pnpm --filter @objectstack/plugin-hono-server test: 35 test files, 448 tests, all pass.pnpm --filter @objectstack/client test: 52 test files, 680 tests, all pass.pnpm --filter @objectstack/plugin-hono-server typecheckandpnpm --filter @objectstack/client typecheck: exit 0.No tested behaviour changed, so there is no ablation.
Acceptance notes
packages/clientdeclares@hono/node-serveras a devDependency, not a shipped dependency, and no source or test file inpackages/clientimports it. It moves in lockstep so the two declarations agree with the override target.plugin-hono-serveris the shipped one.package.jsonpnpm.overridesfor any override. pnpm 10 ignores that block, so the lifts went topnpm-workspace.yaml. The seat amended the claim's file surface to match before the push.@azure/msal-nodeGHSA-xcx6-jx8p-x3h5 still matches and stays covered by its existing exemption, which expires 2026-11-26. Unchanged here.api.osv.devis not reachable from it). The before and after readings usepnpm audit, which reads the same lockfile against the GitHub advisory database that OSV ingests. This PR'sValidate Package Dependenciescheck runs the pinned scanner (v2.5.0 image), base-relative. The card's final reading is the next scheduled run.Verification
pnpm audit --json, pnpm 10.31.0, lockfile only:maine41642dd2@azure/msal-node(exempted)@azure/msal-node(exempted),deepmerge(A or B above)dispatch-gates --commands: 65 derived families, all run, all exit 0, reconciled by--ran(65 run, 0 not measured, 0 unrun).check:dual-build-cjs-loadsandcheck:skill-examplesneed every package'sdist, so they ran after the full build.pnpm lint: exit 0.node scripts/check-osv-exemptions.mjs --self-testandnode scripts/check-osv-exemptions.mjs: exit 0.pnpm check:override-consistencyandpnpm check:vendor-export-contract-resolve: exit 0 (both are in the derived set).node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD: exit 0.pnpm install --frozen-lockfile: exit 0.pnpm install --lockfile-onlyafter the last merge ofmainrewritespnpm-lock.yamlbyte-identical, so the merged lockfile is the one pnpm writes.mained0e71db94differs in exactly@hono/node-server,qsandsysteminformation.CI on this PR runs the pinned OSV-Scanner base-relative. The gate run above was at head
29248fc312.Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses.main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code
🤖 Generated with Claude Code
https://claude.ai/code/session_016WV4d1258HZ753L165zExJ