The Wire · Showcase
CODEX KILLS LEGACY HOOKS AND SIMPLIFIES TOOL DISPATCH
By RepoJournal · Filed · About OpenAI
Dead code came off the critical path overnight—Codex ripped out the unused AfterToolUse hook infrastructure that was still firing on every tool execution, then consolidated apply_patch onto a single freeform surface.
The AfterToolUse hook system [1] was a phantom menace: the registry never populated handlers for it, but the dispatch logic stayed wired through core tool execution anyway. That's gone now, along with the unused payload types. Simultaneously, apply_patch just lost its function-style JSON registration path [2]—models and tests can no longer invoke it the old way, leaving only the freeform implementation as truth. This consolidation matters because tool identity was bleeding into string comparisons; ToolName.display() has been removed [3] in favor of structural ordering that forces teams to compare tool identity properly, not by rendered spelling. The desktop app-server can now request and attach DeviceCheck attestation tokens [4] for scoped ChatGPT Codex requests. One note: the Python runtime wheel publishing got reverted [5], so don't expect those binaries from the latest release tag.
Action items
- → Audit custom AfterToolUse hook implementations—they're gone from core dispatch openai/codex [plan]
- → Migrate any function-style apply_patch calls to freeform tool registration openai/codex [plan]
- → Review ToolName comparisons—string-based logic is now exposed openai/codex [monitor]
References
- [1] [codex] Remove legacy after tool use hooks ↗ openai/codex
- [2] [codex] Delete function-style apply_patch ↗ openai/codex
- [3] Remove ToolName display helper ↗ openai/codex
- [4] [codex] request desktop attestation from app ↗ openai/codex
- [5] Revert "Publish Python runtime wheels on release" ↗ openai/codex
FAQ
- What changed in OpenAI on May 9, 2026?
- Dead code came off the critical path overnight—Codex ripped out the unused AfterToolUse hook infrastructure that was still firing on every tool execution, then consolidated apply_patch onto a single freeform surface.
- What should OpenAI teams do about it?
- Audit custom AfterToolUse hook implementations—they're gone from core dispatch • Migrate any function-style apply_patch calls to freeform tool registration • Review ToolName comparisons—string-based logic is now exposed
- Which OpenAI repositories shipped on May 9, 2026?
- openai/codex