feat(core,server,client): SEP-2106 JSON Schema 2020-12 — $ref guard, per-dialect validation, non-object structuredContent - #2337
Merged
felixweinberger merged 11 commits intoJun 24, 2026
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
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
Loading