daveaitel-openai
dcab40123f
Agent jobs (spawn_agents_on_csv) + progress UI (#10935)
## Summary
- Add agent job support: spawn a batch of sub-agents from CSV, auto-run,
auto-export, and store results in SQLite.
- Simplify workflow: remove run/resume/get-status/export tools; spawn is
deterministic and completes in one call.
- Improve exec UX: stable, single-line progress bar with ETA; suppress
sub-agent chatter in exec.
## Why
Enables map-reduce style workflows over arbitrarily large repos using
the existing Codex orchestrator. This addresses review feedback about
overly complex job controls and non-deterministic monitoring.
## Demo (progress bar)
```
./codex-rs/target/debug/codex exec \
--enable collab \
--enable sqlite \
--full-auto \
--progress-cursor \
-c agents.max_threads=16 \
-C /Users/daveaitel/code/codex \
- <<'PROMPT'
Create /tmp/agent_job_progress_demo.csv with columns: path,area and 30 rows:
path = item-01..item-30, area = test.
Then call spawn_agents_on_csv with:
- csv_path: /tmp/agent_job_progress_demo.csv
- instruction: "Run `python - <<'PY'` to sleep a random 0.3–1.2s, then output JSON with keys: path, score (int). Set score = 1."
- output_csv_path: /tmp/agent_job_progress_demo_out.csv
PROMPT
```
## Review feedback addressed
- Auto-start jobs on spawn; removed run/resume/status/export tools.
- Auto-export on success.
- More descriptive tool spec + clearer prompts.
- Avoid deadlocks on spawn failure; pending/running handled safely.
- Progress bar no longer scrolls; stable single-line redraw.
## Tests
- `cd codex-rs && cargo test -p codex-exec`
- `cd codex-rs && cargo build -p codex-cli`
2026-02-24 21:00:19 +00:00
..
2026-02-20 23:13:08 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 21:00:19 +00:00
2026-02-24 08:15:47 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 09:48:57 -08:00
2026-02-18 09:27:04 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 08:15:47 -08:00
2026-02-21 20:08:04 +00:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 12:13:20 -08:00
2026-02-20 23:45:35 -08:00
2025-11-21 22:10:52 +00:00
2026-02-04 08:38:06 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2025-11-13 17:12:10 -08:00
2025-12-23 19:29:32 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 21:00:19 +00:00
2026-02-19 10:38:57 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-17 11:43:16 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 10:26:19 -05:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 09:48:57 -08:00
2026-02-20 14:39:49 +00:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2025-11-13 17:12:10 -08:00
2026-02-23 14:39:07 -08:00
2026-02-24 10:57:26 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 09:48:57 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-09 20:03:32 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 21:00:19 +00:00
2026-02-24 12:13:20 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 21:00:19 +00:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-19 11:32:10 +00:00
2025-11-20 11:04:11 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-13 12:48:29 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-20 23:45:35 -08:00
2026-02-22 23:00:08 -08:00
2026-02-20 23:45:35 -08:00
2026-02-24 08:15:47 -08:00