New Features
- Added
thread/compactto 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.rate_limitsevent, with websocket parity for ETag/reasoning metadata handling. (#10324) - Enabled
unified_execon 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
Eschandling in the TUIrequest_user_inputoverlay: when notes are open,Escnow 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
request_ruleguidance used in approval-policy prompting to correct rule behavior. (#10379, #10598)
Documentation
- Updated app-server docs for
thread/compactto clarify its asynchronous behavior and thread-busy lifecycle. (#10445) - Updated TUI docs to match the mode-specific
Escbehavior inrequest_user_input. (#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: rust-v0.95.0...rust-v0.96.0
- #10569 tui: make Esc clear request_user_input 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 request_rule 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
find_thread_path_by_id_str_in_subdir@jif-oai - #10619 nit: cleaning @jif-oai
- #10324 Add a codex.rate_limits event for websockets @rasmusrygaard
- #10623 Migrate state DB path helpers to versioned filename @jif-oai
- #10638 Update tests to stop using sse_completed fixture @pakrym-oai
- #10641 feat: land unified_exec @jif-oai