Skip to content

feat(core,server,client): SEP-2106 JSON Schema 2020-12 — $ref guard, per-dialect validation, non-object structuredContent - #2337

Merged
felixweinberger merged 11 commits into
v2-2026-07-28from
fweinberger/sep-2106-json-schema
Jun 24, 2026
Merged

felixweinberger merged 11 commits into
v2-2026-07-28from
fweinberger/sep-2106-json-schema

docs(core): #2337 review-7 — standardSchema comment: legacy projectio…

448bf5e
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jun 24, 2026 in 40m 29s

Code review found 1 important issue

Found 1 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 1
🟡 Nit 0
🟣 Pre-existing 0
Severity File:Line Issue
🔴 Important packages/core/src/validators/ajvProvider.ts:100-112 Client-side draft-07 $schema rejection makes tools from deployed v1.x TS-SDK servers uncallable (new-client ↔ old-server

Annotations

Check failure on line 112 in packages/core/src/validators/ajvProvider.ts

See this annotation in the file changed.

@claude claude / Claude Code Review

Client-side draft-07 $schema rejection makes tools from deployed v1.x TS-SDK servers uncallable (new-client ↔ old-server interop regression)

Upgrading only the client to v2 hard-blocks structured-output tools advertised by unmodified v1.x TS-SDK servers: those servers auto-stamp `$schema: http://json-schema.org/draft-07/schema#` on every Zod-derived `outputSchema` (via zod-to-json-schema's default target), the new dialect check in `AjvJsonSchemaValidator.getValidator()` rejects any non-2020-12 `$schema` with the default engine, and `callTool()`'s pre-flight converts that into `ProtocolError(InvalidParams)` before the request is sent