aboutsummaryrefslogtreecommitdiff
path: root/src/detect
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-08 02:55:23 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-08 02:55:23 +0300
commit27a028aeae0b2ecdd747c90aa34605fd7e810ef1 (patch)
tree38808fa007c0f3d03790ced72aaedb959e5e8432 /src/detect
parente7ba8da29ab27a6f0875c4b99245ef4dc5a3dbbb (diff)
fix: detect codex interrupt status headers
refs #501
Diffstat (limited to 'src/detect')
-rw-r--r--src/detect/agents/codex.rs1
-rw-r--r--src/detect/mod.rs12
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),