- The plan-approval gate required extra.title but the wire schema only
declared an opaque additionalProperties record so codex/gpt-5.x could
not discover the field. Schema now declares title with a description
while still allowing passthrough for future per-context keys.
- resolve.md replaces the truncated "Schema depends on context:" line
with the actual enumeration.
- runResolveInvocation wraps apply() in try/catch; a thrown apply (e.g.
ast_edit overlap) requeues the resolve directive so the model can
discard or fix-and-retry instead of losing the preview.