Repository navigation
Conversation
The shared catalog pinned zod 4.4.3. 4.6.7 is the newest release that clears minimumReleaseAge (published 2026-10-12, gate is 6842 minutes). The catalog entry moves every catalog consumer at once; the standalone cloud-agent-next wrapper pins its own copy and moves with it so both stay on one zod version. pnpm-lock.yaml regenerated with pnpm install.
zod 4.6.7 emits JSON Schema differently from 4.4.3: nullable fields become type arrays instead of anyOf pairs, and the date-time pattern requires seconds. Regenerate the committed catalog so the drift check in the mcp-catalog workflow passes.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental range since Files Reviewed (6 files)
Verification performed during review (read-only, no execution):
Gap: the catalog determinism check and the zod 4.6 code-point test were not executed in this read-only sandbox, so byte-identical regeneration is taken from the author's reproduced dump plus the CI gate rather than re-run here. Previous Review Summaries (4 snapshots, latest commit df8d194)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit df8d194)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit updates the CLI outbound schema test to zod 4.6's code-point string-bound semantics ( Files Reviewed (1 file)
Verification performed during review (read-only, no execution):
Gap: the zod 4.6.7 code-point behaviour was confirmed from the schema plus updated test expectations, not by executing the suite in this read-only sandbox; a wrong premise would surface as a failing test in CI rather than as a silent regression. Previous review (commit 2c6aaab)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental change ( Files Reviewed (2 files)
Verification performed during review:
Previous review (commit 2008177)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental range since the previous review ( Files Reviewed (4 files)
Previous review (commit aeda6d8)Status: No Issues Found | Recommendation: Merge The Verification performed during review:
Files Reviewed (4 files)
Reviewed by deepseek-v4.1-flash-1017 · Input: 64.8K · Output: 10.1K · Cached: 1M Review guidance: REVIEW.md from base branch |
The dump enumerates `apps/web`'s router graph, and `apps/web/src/routers/cloud-agent-next-schemas.ts` imports its schemas from `services/cloud-agent-next` by relative path. `cloud-agent-next` is not in `web`'s dependency closure, so `pnpm install --filter web...` left it uninstalled and its bare `zod` import resolved through pnpm's hoisted copy, a different version from the one the jest suite loads. The dump then wrote JSON Schema in that version's shape and the two required checks disagreed on the committed catalog. Install `cloud-agent-next` in both catalog jobs so the dump and the tests resolve one zod, and keep the catalog entries that render `starts_with`.
zod 4.6 measures string min/max/length in Unicode code points rather than UTF-16 units, so the `gitBranch: z.string().max(24)` bound accepts 24 astral characters where 4.4.3 accepted 12. The surrogate-pair row and the test title now describe the boundary the schema enforces; the ASCII, escaped-character, and CJK rows are identical under both measures.
|
bot: Merged current main in 9c89a35 and resolved the generated catalog conflict by regenerating it from the merged router graph with Zod 4.6.7. The generated skill remains unchanged. The catalog preserves all 838 procedures, summaries, and procedure kinds from main. Verification on the merged tree:
No visual changes or new proxy decisions. |
|
bot: Main advanced during the first sync. Merged the newer main in ea56b1a, regenerated the catalog again, and pushed head 222d329 with a non-merge review trigger. The latest catalog preserves all 836 current-main procedures, summaries, and procedure kinds. Frozen install, web typecheck, tRPC declaration build, catalog regeneration/drift checks, skill drift check, and all 51 catalog Jest tests pass on this merged tree. No source changes beyond the generated conflict resolution. |
Change
Moves the shared
pnpm-workspace.yamlcatalog entry forzodfrom4.4.3to4.6.7.4.6.7is the newest release that clearsminimumReleaseAge: 6842(published 2026-10-12, about 7 days before this branch). No gate change, no exemption.zodthroughcatalog:, so the bump moves all of them in one step;pnpm-lock.yamlwas regenerated withpnpm install.services/cloud-agent-next/wrapperpins its ownzodoutside the catalog (it builds from its own dependency set). It moves to4.6.7as well so it does not drift from the workspace.services/kilo-mcp/catalog.jsonregenerated becausezod4.6.7 renders JSON Schema differently from 4.4.3: nullable fields becometype: ["x", "null"]instead of ananyOfpair, and thedate-timepattern requires seconds. Without the regeneration the drift check in the kilocode-mcp-catalog workflow fails (src/scripts/mcp-catalog/catalog.test.ts)..github/workflows/kilo-mcp-catalog.yml: both catalog jobs now installcloud-agent-nextnext toweb. The dump enumeratesapps/web's router graph, andapps/web/src/routers/cloud-agent-next-schemas.tsimports its schemas fromservices/cloud-agent-nextby relative path — a project that is not inweb's dependency closure.pnpm install --filter web...therefore left it uninstalled, its barezodimport fell through to pnpm's hoisted copy (4.4.3 in the filtered install, sinceknipstill pulls that version), and the dump wrote JSON Schema in 4.4.3's shape while jest — which installs every project — wrote 4.6.7's. Two required checks then disagreed about the committed file, so either version failed one of them. Withcloud-agent-nextinstalled,services/cloud-agent-next/node_modules/zodis the workspace 4.6.7 and the dump is byte-identical to jest's output.Third-party packages that declare
zodthemselves keep their own copy; no override was added for them.Verification
Run on the branch checkout on a work VM.
Install:
pnpm install --no-frozen-lockfile— lockfile catalog entry resolveszodto4.6.7, and every one of the 55 importers that declaredzod: catalog:now resolves4.6.7.Types:
pnpm typecheck(full, sincescripts/typecheck-all.shforces full typecheck whenpnpm-workspace.yamlchanges) — all workspaces pass, including the wrapper's owntsgo --noEmit.Lint:
pnpm lint— 0 warnings, 0 errors.Tests:
apps/webjest (which also runspackages/web-sharedandpackages/db): 1204 suites, 20410 passed, 3 skipped, 0 failed.pnpm --filter kilo-app run test(mobile): 1194 files, 17898 passed.pnpm --filter kilo-extension run test: 100 files, 1613 passed.packages/cloud-agent-sdkjest: 1714 passed.packages/dbjest: 41 passed.services/cloud-agent-next/wrapperbun test src: 1262 tests, 0 fail.auto-routing-contracts191,usage-contracts24,notifications126,app-shared493,cloud-agent-profile160,event-service86,container-usage53,ai-gateway-secure-proxy-contracts5 — all pass.pnpm run test:scripts— passes exceptdev/local/tmux.test.ts("decoy session must have an attached client"), which also fails on the pre-bump tree in this VM's tmux environment. Verified by stashing the change and re-running that file.Runtime, web: started the local stack (Next.js on :3000, Postgres, Redis), signed in through the dev fake-login flow with an owned throwaway account seeded in the local database, then exercised a
zod-validated tRPC mutation against the running server:POST /api/trpc/user.submitCustomerSourcewith{"source": ""}→400with the schema errorToo small: expected string to have >=1 characters(proveszodinput validation runs at runtime on 4.6.7).200 {"result":{"data":{"success":true}}}, and the value is present in the local database afterwards.Runtime, tool-call diagnostics (the one call site affected by 4.6's
fromJSONSchemachange:packages/web-shared/src/lib/ai-gateway/api-request-log-errors.ts): a throwaway script drovedetectToolCallArgumentErrorswith an SSE response whose tool arguments violateuniqueItemsandminProperties. 4.6.7 now reports the mismatch (schema_mismatchwithArray items must be uniqueandToo small: expected object to have >=1 properties), valid arguments returnnull, and an unknown tool still reportsunknown_tool. Nothing throws; the stricter keywords only add diagnostic entries.Catalog determinism: reproduced both sides in a scratch worktree. With only
--filter web...installed,services/cloud-agent-next/node_modulesis absent, tsx resolveszodto the hoisted 4.4.3 copy, and the dump writes the twocloudAgentNext.getSandboxStatusentries withoutformat; with--filter web... --filter cloud-agent-next, that project resolveszod4.6.7 and the dump reproduces the committed file byte-for-byte (verified withdiffagainst the committed catalog).node --test scripts/kilo-mcp-catalog.test.mjspasses (38 tests), andapps/webjestsrc/scripts/mcp-catalog/catalog.test.tspasses (51 tests) against the committed catalog.services/session-ingest/src/types/user-connection-protocol.test.ts: zod 4.6 measuresmin/max/lengthon strings in Unicode code points instead of UTF-16 units (the check counts code points only when the unit count would otherwise overflow). ThegitBranch: z.string().max(24)bound therefore counts code points, so 24 astral characters (48 UTF-16 units) are within the bound. The test asserted the old unit-based boundary; its surrogate-pair row and title now state the code-point boundary the schema enforces, and the other rows are unchanged because they are the same in both measures. Live behaviour change: an inbound heartbeat with a branch longer than 24 units but no more than 24 code points is now accepted. The instance-metadata byte headroom inUserConnectionDO.test.tsis unaffected — the number of bounded characters per field did not change.No visual surface changed (dependency bump plus a regenerated JSON artifact), so there is no screenshot.
Proxy answers
The owner's proxy gave these answers in the owner's place.
Answer: Also bump wrapper to 4.6.7
Confidence: 0.50 · Precedent: Fix the root cause and the class of the issue: owner wrote "fix class of issue preventing progress" (7f3470e0ba6f). Also "if you saw a gap, fix it" (89824a222897). The wrapper pin matches the old catalog version, so letting it drift is a gap. Leave the excluded feature's pin alone (its PRs are closed).
Answer: Fix the consumer (Recommended)
Confidence: 0.90 · Precedent: Respect the release-age rule and use the newest release: owner chose "Wait for 24.14.0" over pinning an older version (3eb5d90dfa84).
Answer: Full typecheck + all zod-workspace tests + web smoke (Recommended)
Confidence: 0.65 · Precedent: Require valid end-to-end proof on every PR: owner wrote "logs and/or screenshots are mandatory proof" (55c9c80332a7). Keep local tests targeted and let CI run the rest (30e048f42118).