Repository navigation
Commit 7cd2ebf
fix(deps): move zod to ^4.6.6 and clear the lockfile's high and critical advisories (#25657)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} -->
_Requested by **Elon** · [project
thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9DWGGKysRudWM9W6GPewxH8S)_
Fixes #25631
Clause-②: no
Metadata-protocol: none
Every manifest that declares `zod` now asks for `^4.6.6`, past
GHSA-mrhx-c7xc-m3w5, and the workspace resolves one zod, 4.6.7. Every
other advisory `pnpm audit` matched on `main` moves to its patched
release, except `@azure/msal-node`, which has no upstream path yet
(below).
## `pnpm audit`, before and after
Measured with pnpm 10.31.0 against the lockfile, `main` at `49653f9` vs
this branch.
| | critical | high | moderate | low |
|:--|--:|--:|--:|--:|
| `pnpm audit --prod`, main | 5 | 10 | 8 | 3 |
| `pnpm audit` (all), main | 5 | 11 | 10 | 3 |
| `pnpm audit` (all), this branch | 0 | 1 | 0 | 0 |
## What moved
| Package | Was | Now | Advisories | How |
|:--|:--|:--|:--|:--|
| zod | 4.6.1, 4.6.5 | 4.6.7 (one copy) | GHSA-mrhx-c7xc-m3w5 (high) |
`^4.6.6` in the 12 manifests that declared `^4.6.5` and in apps/docs
(`^4.6.1`) |
| next | 16.3.8 | 16.4.1 | GHSA-2464-fhr4-w9xw, GHSA-673q-mjm6-r5xr
(critical), GHSA-p3m5-59mp-jv5r (high) | apps/docs exact pin moved;
better-auth's optional `next` peer followed it |
| dompurify | 3.4.16 | 3.4.17 | GHSA-cg2g-xh64-v4q7 (critical),
GHSA-mrv2-3pqr-j5jr (high), 1 low | override target `^3.4.17` (mermaid
`^3.3.3` admits it) |
| body-parser | 2.3.0 | 2.4.0 | GHSA-27r3-jxmh-p828 (high) | new
override over the 2.x major → `^2.4.0` (express 5.2.1 `^2.2.1` admits
it) |
| happy-dom | 20.10.2 | not installed | GHSA-834v-8h66-3h79 (high) | new
override from the advisory's 17.0.0 floor up to the 22.0.0 major
boundary → `^21.0.4`; see Acceptance notes |
| postal-mime | 4.0.5 | 4.1.4 | GHSA-f2hq-32vh-53cc (high) |
service-mailbox `^4.0.5` → `^4.0.8` |
| undici | 7.30.0, 8.11.2 | 7.30.1, 8.12.3 | GHSA-xjj6-f33q-929c (high),
2 moderate, on both lines | override targets `^7.30.1` and `^8.12.2`,
selectors unchanged |
| nodemailer | 10.0.13 | 10.2.1 | 3 moderate | plugin-email `^10.0.2` →
`^10.1.4` |
| fast-uri | 3.1.8 | 3.1.9 | 2 moderate, 2 low | override target
`^3.1.9` |
| ip-address | 10.7.2 | 10.7.4 | 1 moderate | override target `^10.7.4`
|
The lockfile is regenerated by `pnpm install`, never edited by hand. The
resolved package set changes only in the rows above, the `@next/*`
binaries that move with next, and happy-dom with its four private
dependencies leaving. Each new or moved override carries its reason in
`pnpm-workspace.yaml`, in the block dated 2026-10-24.
## Not cleared: `@azure/msal-node` GHSA-xcx6-jx8p-x3h5 (high)
5.4.1 comes from `@azure/identity` 4.13.1 (`^5.1.0`) under tedious
18.6.2, driver-sql's optional mssql peer. The fix is only in msal-node
7.1.0. No `@azure/identity` release admits it: 4.14.0 (latest) and
4.15.0-beta.1 both declare `^6.0.0`. Clearing it here would mean forcing
two majors past identity's declared range on an Azure AD sign-in path
that no test in this workspace runs, so it is reported as a finding and
not pinned. This PR does not make it worse: the OSV verdict on a pull
request is base-relative, and `main` already carries it.
## Generated surfaces
`pnpm --filter @objectstack/spec build`, then `pnpm --filter
@objectstack/spec check:generated`: all 14 generated artifacts are up to
date under zod 4.6.7 (JSON schemas, API surface, export origins,
declaration map, docs). Nothing was regenerated, so there is nothing to
commit.
The vendored Console keeps one zod: objectui at the pinned
`2958f17e9c6a` already resolves zod 4.6.7, which satisfies the spec's
new `^4.6.6` range.
## Verification
Local, at head `5396e799bb`:
- `pnpm build`: 76 of 76 tasks.
- Workspace typecheck (`turbo run typecheck`, 4096 MB heap, the runner's
V8 default): 152 of 152 tasks. Under this container's 2096 MB default,
`@objectstack/plugin-hono-server`'s `tsc --noEmit` runs out of heap.
That is not this change: the same program reports 4,167,189K memory used
on `main`'s dependency set and 4,166,613K on this branch (`tsc
--extendedDiagnostics`).
- Tests, every package whose manifest moved: spec 21725, core 2757,
objectql 8700, runtime 7035, metadata 905, metadata-core 796,
metadata-protocol 21474, rest 6400, mcp 533, driver-turso 2492,
plugin-email 689, service-mailbox 152, lint 7244, cli `--project unit`
4816 tests. All pass.
- `dispatch-gates --commands`: 101 derived families run, 101 exit 0,
reconciled by `--ran` (0 unrun, 0 not measured). Two needed full history
first: `check-engine-split-ratio` and `check-plugin-teardown-shape
--self-test` refuse a shallow clone.
- `pnpm check:override-consistency`, `pnpm
check:vendor-export-contract-resolve`, `node
scripts/check-osv-exemptions.mjs`, `node
scripts/check-commit-card-trailers.mjs --range origin/main..HEAD`: exit
0.
CI on the same head: all 44 check runs are success or skipped, including
Validate Package Dependencies (OSV base-relative), Build Docs (next
16.4.1), Build Core, Test Core 1 to 6, TypeScript Type Check and Lint &
Repo Gates. Console Pin Gate runs neither on a pull request nor in the
merge queue (its `if:` excludes both), so its first verdict comes after
landing; the pinned objectui resolves zod 4.6.7, inside the spec's new
`^4.6.6`, which is the range its build asserts against.
## Acceptance notes
- **`@azure/msal-node`** stays, for the reason above. It needs either an
`@azure/identity` release that accepts msal-node 7.1.0 or a maintainer
decision to force it.
- **happy-dom no longer resolves at all.** It was only vitest's optional
`happy-dom: *` peer, auto-installed; no manifest declares it and no
vitest config selects that environment. With the peer rewritten to
`^21.0.4`, pnpm does not install it. `check:override-consistency` lists
the entry as having 0 consumers, which is a report, not a failure; the
entry stays as the floor a future declaration lands on.
- **The moderate and low advisories ride along.** The card asks for high
and critical. The rest are target lifts in the same file and two
declared ranges, and `main`'s scheduled OSV scan fails on every
severity.
- **Serial constraint:** #25639 edits the cli, hono and plugin-dev
manifests and may move `pnpm-lock.yaml`. Whichever lands second
regenerates the lockfile with pnpm.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_016n6CWTNgTQKqAHM3ga7ZRt
Co-authored-by: Claude <noreply@anthropic.com>1 parent fc4ac58 commit 7cd2ebf
18 files changed
Lines changed: 375 additions & 358 deletions
File tree
- .changeset
- apps/docs
- packages
- cli
- core
- drivers/driver-turso
- lint
- mcp
- metadata-core
- metadata-protocol
- metadata
- objectql
- plugins/plugin-email
- rest
- runtime
- services/service-mailbox
- spec
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
| 101 | + | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| |||
0 commit comments