chore(deps): bump zod from 3.25.76 to 4.4.3#173
Conversation
Bumps [zod](https://github.com/colinhacks/zod) from 3.25.76 to 4.4.3. - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](colinhacks/zod@v3.25.76...v4.4.3) --- updated-dependencies: - dependency-name: zod dependency-version: 4.4.3 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
sprayberry-reviewer
left a comment
There was a problem hiding this comment.
Automated review from the Sprayberry Labs fleet code reviewer. This is a bot verdict, not a human sign-off.
Verdict: no blocking issues — approving.
What was reviewed
chore(deps): bump zod from 3.25.76 to 4.4.3 — a Dependabot-generated major-version bump across two files:
package.json:"zod": "^3.25.76"→"zod": "^4.4.3"package-lock.json: resolved entry updated to4.4.3with new integrity hash
Correctness / breaking-change analysis
This is a v3→v4 major bump. I traced every Zod import and call site in the repo:
src/mcp.ts:23 is the only consumer (import { z } from "zod"). The APIs used are:
z.string().min(1).describe(…)
z.string().optional().describe(…)
z.array(z.string()).optional().describe(…)
z.number().int().min(0).max(3).optional().describe(…)
z.number().positive().optional().describe(…)
z.number().int().min(1).max(24).optional().describe(…)
z.enum([…]).optional().describe(…)
All of these APIs (z.string, z.number, z.array, z.enum, .min, .max, .int, .positive, .optional, .describe) are present and semantically unchanged in Zod v4. None of the v4 breaking changes (stricter discriminated union typing, preprocess optionality deferral, tuple-hole rejection, catch-handling for absent keys) touch any of these call sites.
@modelcontextprotocol/sdk explicitly declares "zod": "^3.25 || ^4.0" as a non-optional peer dependency — confirmed in package-lock.json:908-916 — so the SDK is designed to accept Zod v4 schema objects passed to server.registerTool().
CI
All checks green at the time of review:
build (20)— ✅build (22)— ✅analyze(CodeQL) — ✅actionlint— ✅
What's good
Narrow, clean mechanical bump. The deliberate isolation of the Zod dependency to a single file (mcp.ts) made this upgrade straightforward to verify; no scattered usage across the codebase to audit.
No test coverage gap introduced — the existing CI suite exercised the build and static analysis with the new version.
Bumps zod from 3.25.76 to 4.4.3.
Release notes
Sourced from zod's releases.
... (truncated)
Commits
1fb56a5docs: document release procedure in AGENTS.mdf3c9ec04.4.3c2be4f8fix(v4): generalize optin/fallback to transform; restore preprocess on absent...1cab693fix(v4): restore catch handling for absent object keys (#5937) (#5939)b8dffe9docs: remove Numeric and Speakeasy (2+ missed monthly cycles)9195250docs: remove Mintlify from bronze sponsors (churned)2c70332docs: normalize bronze sponsor logos to github avatar pattern7391be8docs: prune lapsed silver/bronze sponsors and add active ones2aeec83docs: prune lapsed gold sponsors and rebalance logo sizing4c2fa95docs: use Zernio primary wordmark for gold sponsor logoMaintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for zod since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)