diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-08 02:55:23 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-08 02:55:23 +0300 |
| commit | 27a028aeae0b2ecdd747c90aa34605fd7e810ef1 (patch) | |
| tree | 38808fa007c0f3d03790ced72aaedb959e5e8432 /src | |
| parent | e7ba8da29ab27a6f0875c4b99245ef4dc5a3dbbb (diff) | |
fix: detect codex interrupt status headers
refs #501
Diffstat (limited to 'src')
| -rw-r--r-- | src/detect/agents/codex.rs | 1 | ||||
| -rw-r--r-- | src/detect/mod.rs | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/detect/agents/codex.rs b/src/detect/agents/codex.rs index 9870bca6..a53d9358 100644 --- a/src/detect/agents/codex.rs +++ b/src/detect/agents/codex.rs @@ -152,6 +152,7 @@ fn codex_working_status_line(line: &str) -> bool { trimmed.starts_with('•') && (trimmed.contains("Working (") || trimmed.contains("Waiting for background terminal (") + || lower.contains(" • esc to interrupt") || lower.contains("reviewing approval request (") || (lower.contains("reviewing ") && lower.contains(" approval requests (")) || trimmed.contains("Booting MCP server:")) diff --git a/src/detect/mod.rs b/src/detect/mod.rs index 0c7ad943..1e3a2288 100644 --- a/src/detect/mod.rs +++ b/src/detect/mod.rs @@ -1567,6 +1567,18 @@ mod tests { } #[test] + fn codex_generic_interrupt_status_above_current_prompt_stays_working() { + let detection = detect_agent( + Some(Agent::Codex), + "• I need to inspect more code first.\n\n• Investigating code output (44s • esc to interrupt)\n\n\n› Summarize recent commits\n\n gpt-5.5 high · ~/Codes/herdr", + ); + + assert_eq!(detection.state, AgentState::Working); + assert!(detection.visible_working); + assert!(!detection.visible_idle); + } + + #[test] fn codex_background_terminal_status_above_current_prompt_stays_working() { let detection = detect_agent( Some(Agent::Codex), |
