- agent_check: limit progress to last 50 lines; write full progress to .coder/agents/<id>/progress.log
- agent_result: return JSON with preview (500 lines) and file path for full output/error
- agent_wait: include preview + file path for the completed agent when return_all=false or waiting on agent_id; keep return_all=true lean (ids only) and wait for all
- add helpers to store artifacts under .coder/agents
- Track seen completed agents per batch in session state
- agent_wait returns next unseen completed agent; returns immediately if none remain
- Preserve agent_id and return_all=true behaviors
- Remove unnecessary mut on Browser values; keep handler mutable
- Drop unused locals in chatwidget; underscore elapsed in history_cell
- Silence dead_code for ShowChromeOptions variant
Verified via ./build-fast.sh showing zero warnings.
- package.json: expose bin as 'code'
- postinstall: detect existing 'code'; create 'coder' fallback and optional 'vscode' alias to existing editor
- keep Rust binary named 'coder' for builds; wrappers updated accordingly
## Summary
- Show a temporary Working on diff state in the bottom pan
- Add `DiffResult` app event and dispatch git diff asynchronously
## Testing
- `just fmt`
- `just fix` *(fails: `let` expressions in this position are unstable)*
- `cargo test --all-features` *(fails: `let` expressions in this
position are unstable)*
------
https://chatgpt.com/codex/tasks/task_i_689a839f32b88321840a893551d5fbef
- Remove unnecessary mut from line mapping in history_cell.rs
- Add new diff_popup.rs component for displaying diffs in TUI
- Include markdown_renderer.rs for improved markdown rendering
- Clean up backup files and maintain theme consistency
Co-authored-by: Hanzo Dev <[email protected]>
This pull request resolves#2296; I've confirmed if it works by:
1. Add settings to ~/.codex/config.toml:
```toml
model_reasoning_effort = "minimal"
```
2. Run the CLI:
```
cd codex-rs
cargo build && RUST_LOG=trace cargo run --bin codex
/status
tail -f ~/.codex/log/codex-tui.log
```
Co-authored-by: Hanzo Dev <[email protected]>
This adds a new request type, `SendUserTurn`, that makes it possible to
submit a `Op::UserTurn` operation (introduced in #2329) to a
conversation. This PR also adds a new integration test that verifies
that changing from `AskForApproval::UnlessTrusted` to
`AskForApproval::Never` mid-conversation ensures that an elicitation is
no longer sent for running `python3 -c print(42)`.
---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2345).
* __->__ #2345
* #2329
* #2343
* #2340
* #2338
This introduces `Op::UserTurn`, which makes it possible to override many
of the fields that were set when the `Session` was originally created
when creating a new conversation turn. This is one way we could support
changing things like `model` or `cwd` in the middle of the conversation,
though we may want to consider making each field optional, or
alternatively having a separate `Op` that mutates the `TurnContext`
associated with a `submission_loop()`.
---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2329).
* #2345
* __->__ #2329
* #2343
* #2340
* #2338