fix(codex): the protocol generator runs again on Effect rc.115 - #13480
Conversation
The Effect rc.115 upgrade broke the protocol generator. The importer now requires `#/components/schemas/` refs for OpenAPI input, imports objects without `additionalProperties` as open records, and refuses to intersect shared object fields with object alternatives. Regenerating failed even at the pinned Codex ref. Emit component refs, close objects that declare properties, and fold shared fields into each alternative. The generator reads GITHUB_TOKEN so a full run stays under GitHub's anonymous rate limit. Bindings are regenerated at the same Codex ref; the newer generator types free-form JSON as Schema.Json, so the MCP elicitation response builder follows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — The PR fixes generator compatibility but adds GitHub bearer-token handling and regenerates broadly used protocol codecs through a nontrivial schema adaptation layer. Those authentication and runtime-schema impacts merit human review. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe pull request changes MCP elicitation values to JSON types. It also updates schema fetching, reference paths, and schema adaptation before generator registration. ChangesMCP elicitation JSON types
Generated schema handling
Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The current protocol bindings do not exhibit the reported schema mismatch. This change is mergeable after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
## What's Changed * lint/unknown and static by @juliusmarminge in pingdotgg/t3code#13366 * fix(web): web colors come from theme tokens by @juliusmarminge in pingdotgg/t3code#13371 * fix(web): appearance classes use theme tokens and scale values by @juliusmarminge in pingdotgg/t3code#13397 * fix(server): keep Codex's reset answer when the re-probe fails by @juliusmarminge in pingdotgg/t3code#13363 * fix(mobile): branch search finds remote and space-typed branches by @Bil0000 in pingdotgg/t3code#13454 * chore(ci): use GPT 6 Sol Max for check agents by @juliusmarminge in pingdotgg/t3code#13473 * feat(server): show and redeem Claude banked resets by @Bil0000 in pingdotgg/t3code#13118 * fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup by @yordis in pingdotgg/t3code#13469 * fix(antigravity): let Stop end commands that outlived their turn by @juliusmarminge in pingdotgg/t3code#13388 * fix(web,mobile): drop the baked-in tile from the Antigravity icon by @flamboh in pingdotgg/t3code#13373 * fix(marketing): use the official OpenCode and Antigravity logos by @flamboh in pingdotgg/t3code#13365 * fix(acp): keep one answer when a running tool reports progress by @juliusmarminge in pingdotgg/t3code#13386 * feat(web): run shell commands from chat in the thread terminal by @Bil0000 in pingdotgg/t3code#13060 * fix(antigravity): keep Windows runtime unpacking under MAX_PATH by @juliusmarminge in pingdotgg/t3code#13389 * fix(codex): the protocol generator runs again on Effect rc.115 by @juliusmarminge in pingdotgg/t3code#13480 * feat(codex): require Codex 0.156 and regenerate its protocol by @juliusmarminge in pingdotgg/t3code#13481 * feat(threads): add per-thread auto-settle switch by @t3dotgg in pingdotgg/t3code#11846 * fix(web): working and monitoring threads fade in the sidebar again by @t3dotgg in pingdotgg/t3code#13506 * fix(server): streamed section titles wait for the text under them by @t3dotgg in pingdotgg/t3code#13504 * fix(web): normalize disabled control opacity by @t3-code[bot] in pingdotgg/t3code#11441 **Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260924.2213...v0.0.43-nightly.20260924.2223 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260924.2223
The Codex protocol generator no longer runs on
main. The Effect rc.115 upgrade changed the JSON Schema importer, andnode scripts/generate.tsinpackages/effect-codex-app-serverfails even at the pinned Codex ref, which blocks any Codex protocol bump.The importer changed in three ways:
#/components/schemas/refs for OpenAPI input. The generator now emits those instead of#/definitions/.additionalPropertiesas an open record (StructWithRest). Codex never declaresadditionalPropertiesfor plain structs, so objects that list their properties are now closed and decode as plain structs, as before. Decoding still ignores unknown keys.image_url | file_idnext todetailandtype). The shared fields are folded into each alternative.adaptSchemaForEffecthandles the last two and only walks schema positions, so a field that is literally namedproperties(in the MCP elicitation schema) stays a field. The generator also readsGITHUB_TOKEN, because a full run makes more GitHub API calls than the anonymous 60/hour limit allows.The bindings are regenerated at the same Codex ref, so the protocol is unchanged. Compared with the committed output, there are the same 1,895 exported schemas, the same 2 intentional open records (
ConfigReadResponseconfig maps) and noNevertypes. The rest of the diff is formatting andidentifierannotations from the newer Effect generator. It also types free-form JSON asSchema.Jsoninstead ofunknown, so the MCP elicitation response builder inCodexSessionRuntime.tsfollows.src/_generated/is machine output. Reviewscripts/generate.tsand theCodexSessionRuntime.tschange; rerunning the generator on this branch reproduces the committed files with no diff.Verification:
effect-codex-app-servertests: 36 passed.tsc --noEmitis clean foreffect-codex-app-serverandapps/server. Scoped lint reports no errors.No UI changes, so there are no screenshots.
Bottom layer of a stack; #13481 bumps Codex to 0.156 on top of it.
🤖 Generated with Claude Code (Claude Opus 5.5, Claude Code harness)
Summary by CodeRabbit