OpenAI Codex CLI rust-v0.96.0

New Features - Added thread/compact to the v2 app-server API as an async trigger RPC, so clients can start compaction immediately and track completion separately. (10445) - Added websocket-side rat...

New Features - Added thread/compact to the v2 app-server API as an async trigger RPC, so clients can start compaction immediately and track completion separately. (10445) - Added websocket-side rate limit signaling via a new codex.ratelimits event, with websocket parity for ETag/reasoning metadata handling. (10324) - Enabled unifiedexec on all non-Windows platforms. (10641) - Constrained requirement values now include source provenance, enabling source-aware config debugging in UI flows like /debug-config. (10568) Bug Fixes - Fixed Esc handling in the TUI requestuserinput overlay: when notes are open, Esc now exits notes mode instead of interrupting the session. (10569) - Thread listing now queries the state DB first (including archived threads) and falls back to filesystem traversal only when needed, improving listing correctness and resilience. (10544) - Fixed thread path lookup to require that the resolved file actually exists, preventing invalid thread-id resolutions. (10618) - Dynamic tool injection now runs in a single transaction to avoid partial state updates. (10614) - Refined requestrule guidance used in approval-policy prompting to correct rule behavior. (10379, 10598) Documentation - Updated app-server docs for thread/compact to clarify its asynchronous behavior and thread-busy lifecycle. (10445) - Updated TUI docs to match the mode-specific Esc behavior in requestuserinput. (10569) Chores - Migrated state DB helpers to a versioned SQLite filename scheme and cleaned up legacy state files during runtime initialization. (10623) - Expanded runtime telemetry with websocket timing metrics and simplified internal metadata flow in core client plumbing. (10577, 10589) Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.95.0...rust-v0.96.0 - 10569 tui: make Esc clear requestuserinput notes while notes are shown @charley-oai - 10577 feat: log webscocket timing into runtime metrics @apanasenko-oai - 10445 Add thread/compact v2 @aibrahim-oai - 10589 Move metadata calculation out of client @pakrym-oai - 10379 fix(core) updated requestrule guidance @dylan-hurd-oai - 10598 fix(core) Request Rule guidance tweak @dylan-hurd-oai - 10544 Prefer state DB thread listings before filesystem @jif-oai - 10614 fix: single transaction for dyn tools injection @jif-oai - 10568 Requirements: add source to constrained requirement values @gt-oai - 10611 chore: simplify user message detection @jif-oai - 10618 fix: make sure file exist in findthreadpathbyidstrinsubdir @jif-oai - 10619 nit: cleaning @jif-oai - 10324 Add a codex.ratelimits event for websockets @rasmusrygaard - 10623 Migrate state DB path helpers to versioned filename @jif-oai - 10638 Update tests to stop using ssecompleted fixture @pakrym-oai - 10641 feat: land unifiedexec @jif-oai