app-server-protocol: TurnStartParams JSON schema drifts from generated TypeScript
Summary
The pinned app-server protocol artifacts currently disagree for TurnStartParams.
At ref dbfe855f4fd0f5dcdf079882652a8efe622b0595:
- the JSON schema for
v2/TurnStartParamsdoes not includecollaborationMode - the generated TypeScript for
v2/TurnStartParamsdoes includecollaborationMode?: CollaborationMode | null
This breaks downstream consumers that generate runtime schemas from the published JSON schema assets rather than from the TypeScript output.
Repro
JSON schema asset:
codex-rs/app-server-protocol/schema/json/v2/TurnStartParams.json- https://raw.githubusercontent.com/openai/codex/dbfe855f4fd0f5dcdf079882652a8efe622b0595/codex-rs/app-server-protocol/schema/json/v2/TurnStartParams.json
Generated TypeScript asset:
codex-rs/app-server-protocol/schema/typescript/v2/TurnStartParams.ts- https://raw.githubusercontent.com/openai/codex/dbfe855f4fd0f5dcdf079882652a8efe622b0595/codex-rs/app-server-protocol/schema/typescript/v2/TurnStartParams.ts
Observed mismatch:
- JSON schema top-level
propertiescontains: approvalPolicyapprovalsReviewercwdeffortinputmodeloutputSchemapersonalitysandboxPolicyserviceTiersummarythreadId- but it is missing
collaborationMode
Meanwhile the generated TypeScript includes:
collaborationMode?: CollaborationMode | null
Additional note
The same JSON schema file does contain a local CollaborationMode definition, so this looks like a top-level property omission rather than the type being absent entirely.
Also, outputSchema is effectively untyped in the JSON schema asset, while the TypeScript output uses JsonValue | null, so there may be a broader drift between the JSON and TS artifact generation paths.
Impact
Schema-first clients that consume the JSON schema assets generate an incomplete runtime schema for turn/start, and end up having to patch collaborationMode manually.
Expected
The published JSON schema and generated TypeScript artifacts should describe the same TurnStartParams shape.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗