From ffc4e263168f9e81d5bbc14db4b16ca9818d684a Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Thu, 20 Aug 2026 03:52:18 +0300 Subject: [PATCH] fix: add claude screen activity fallbacks refs #1630 refs #2241 --- docs/next/CHANGELOG.md | 1 + src/detect/manifests/claude.toml | 31 +++++++++++++++++++++++++++-- website/agent-detection/claude.toml | 31 +++++++++++++++++++++++++++-- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/docs/next/CHANGELOG.md b/docs/next/CHANGELOG.md index a6d2b1ec..ac30bfb0 100644 --- a/docs/next/CHANGELOG.md +++ b/docs/next/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased ### Fixed +- Claude Code panes now use visible turn, background shell, and background agent activity as working-state fallbacks when OSC titles are unavailable or disabled. (#1630, #2241) - Tab bar status commands now remove ESC-prefixed terminal control sequences instead of displaying their sequence bodies as text. (#3001) - Unix plugin pane commands now default `PWD` to their resolved working directory, so direct popup tools open at explicit `--cwd` paths while preserving caller-provided `PWD` values. (#2984) diff --git a/src/detect/manifests/claude.toml b/src/detect/manifests/claude.toml index 514fdd04..5f9c79d9 100644 --- a/src/detect/manifests/claude.toml +++ b/src/detect/manifests/claude.toml @@ -1,7 +1,7 @@ id = "claude" -version = "2026.08.13.1" +version = "2026.08.19.1" min_engine_version = 2 -updated_at = "2026-08-13T00:00:00Z" +updated_at = "2026-08-19T00:00:00Z" aliases = ["claude-code"] [[rules]] @@ -13,6 +13,33 @@ visible_working = true # Braille covers <= 2.1.227; half-circles are the 2.1.228 busy spinner. regex = ['^[\x{2800}-\x{28FF}\x{25D0}-\x{25D3}] '] +[[rules]] +id = "live_turn_working" +state = "working" +priority = 970 +region = "bottom_non_empty_lines(12)" +visible_working = true +any = [ + { line_regex = ['^\s*[⏸⏵].*esc to interrupt(?:\s|·|$)'] }, + { line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+\S.*…(?:\s+\(\d+[smh](?:\s|·)|\s*$)'] }, +] + +[[rules]] +id = "background_shell_working" +state = "working" +priority = 965 +region = "bottom_non_empty_lines(5)" +visible_working = true +line_regex = ['^\s*[⏸⏵].*·\s+[1-9]\d*\s+shells?\s+(?:·|$)'] + +[[rules]] +id = "background_agents_working" +state = "working" +priority = 965 +region = "last_non_empty_above_prompt_box" +visible_working = true +line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+Waiting for [1-9]\d* background agents? to finish\s*$'] + [[rules]] id = "btw_overlay_working" state = "working" diff --git a/website/agent-detection/claude.toml b/website/agent-detection/claude.toml index 514fdd04..5f9c79d9 100644 --- a/website/agent-detection/claude.toml +++ b/website/agent-detection/claude.toml @@ -1,7 +1,7 @@ id = "claude" -version = "2026.08.13.1" +version = "2026.08.19.1" min_engine_version = 2 -updated_at = "2026-08-13T00:00:00Z" +updated_at = "2026-08-19T00:00:00Z" aliases = ["claude-code"] [[rules]] @@ -13,6 +13,33 @@ visible_working = true # Braille covers <= 2.1.227; half-circles are the 2.1.228 busy spinner. regex = ['^[\x{2800}-\x{28FF}\x{25D0}-\x{25D3}] '] +[[rules]] +id = "live_turn_working" +state = "working" +priority = 970 +region = "bottom_non_empty_lines(12)" +visible_working = true +any = [ + { line_regex = ['^\s*[⏸⏵].*esc to interrupt(?:\s|·|$)'] }, + { line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+\S.*…(?:\s+\(\d+[smh](?:\s|·)|\s*$)'] }, +] + +[[rules]] +id = "background_shell_working" +state = "working" +priority = 965 +region = "bottom_non_empty_lines(5)" +visible_working = true +line_regex = ['^\s*[⏸⏵].*·\s+[1-9]\d*\s+shells?\s+(?:·|$)'] + +[[rules]] +id = "background_agents_working" +state = "working" +priority = 965 +region = "last_non_empty_above_prompt_box" +visible_working = true +line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+Waiting for [1-9]\d* background agents? to finish\s*$'] + [[rules]] id = "btw_overlay_working" state = "working"