- Keep ours for TUI and workflows per policy; purge codex-cli images if present
- Update SessionManager to set/pass Arc<AtomicBool> to ExecCommandSession
- scripts/upstream-merge/verify.sh: ok; ./build-fast.sh: ok (zero warnings)
## Unified PTY-Based Exec Tool
Note: this requires to have this flag in the config:
`use_experimental_unified_exec_tool=true`
- Adds a PTY-backed interactive exec feature (“unified_exec”) with
session reuse via
session_id, bounded output (128 KiB), and timeout clamping (≤ 60 s).
- Protocol: introduces ResponseItem::UnifiedExec { session_id,
arguments, timeout_ms }.
- Tools: exposes unified_exec as a function tool (Responses API);
excluded from Chat
Completions payload while still supported in tool lists.
- Path handling: resolves commands via PATH (or explicit paths), with
UTF‑8/newline‑aware
truncation (truncate_middle).
- Tests: cover command parsing, path resolution, session
persistence/cleanup, multi‑session
isolation, timeouts, and truncation behavior.
- added `uninlined_format_args` to `[workspace.lints.clippy]` in the
`Cargo.toml` for the workspace
- ran `cargo clippy --tests --fix`
- ran `just fmt`
The `SessionManager` in `exec_command` owns a number of
`ExecCommandSession` objects where `ExecCommandSession` has a
non-trivial implementation of `Drop`, so we want to be able to drop an
individual `SessionManager` to help ensure things get cleaned up in a
timely fashion. To that end, we should have one `SessionManager` per
session rather than one global one for the lifetime of the CLI process.
- Remove unused imports in core/codex.rs and tui/chatwidget.rs
- Avoid unused var by ignoring aggregated_output in ExecCommandEnd
- Remove dead stream cap constants from exec.rs
- Silence dead_code in exec_command session modules (WIP API) via module-level allow
- Annotate exec_command re-exports with #[allow(unused_imports)] to avoid warning until wired
Build now completes with zero warnings using ./build-fast.sh