aboutsummaryrefslogtreecommitdiff
path: root/src/detect/manifests/codex.toml
diff options
context:
space:
mode:
Diffstat (limited to 'src/detect/manifests/codex.toml')
-rw-r--r--src/detect/manifests/codex.toml13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/detect/manifests/codex.toml b/src/detect/manifests/codex.toml
index 7840ca6f..5021567a 100644
--- a/src/detect/manifests/codex.toml
+++ b/src/detect/manifests/codex.toml
@@ -1,7 +1,7 @@
id = "codex"
-version = "2026.09.12.1"
+version = "2026.09.14.1"
min_engine_version = 3
-updated_at = "2026-09-12T00:00:00Z"
+updated_at = "2026-09-14T00:00:00Z"
[[rules]]
id = "osc_title_blocked"
@@ -82,10 +82,13 @@ any = [
id = "screen_working_fallback"
state = "working"
priority = 500
-region = "bottom_non_empty_lines(3)"
+region = "before_current_prompt_marker"
visible_working = true
-line_regex = ['^[•◦]\s+Working \([^)]*esc to interrupt\)(?: · .*)?$']
-not = [{ contains = ["■ Conversation interrupted"] }]
+# Cheap negative filter before the multiline search.
+contains = ["esc to interrupt"]
+# Animations can hide the bullet, and queued inputs can sit below a dynamic activity label.
+# Require the live timer/control suffix with no later response or interruption marker.
+regex = ['(?m)^(?:[•◦][ \t]+)?[^\s›•◦■✗✓─][^\r\n]* \((?:[0-9]+[hm] )*[0-9]+s • esc to interrupt\)(?: · [^\r\n]*)?(?:\r?\n(?:[^•◦›■✗✓─\r\n][^\r\n]*|•[ \t]+(?:Queued\s+follow-up\s+inputs|Messages\s+to\s+be\s+submitted\s+after\s+next\s+tool\s+call(?:\s+\(press\s+esc\s+to\s+interrupt\s+and\s+send\s+immediately\))?|Messages\s+to\s+be\s+submitted\s+at\s+end\s+of\s+turn)|›[⠁⠂⠄⠈⠐⠠⡀⢀][^\r\n]*)?)*\s*\z']
[[rules]]
id = "osc_title_idle"