aboutsummaryrefslogtreecommitdiff
path: root/src/detect
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-08-14 00:26:45 +0300
committerGitHub <noreply@github.com>2026-08-14 00:26:45 +0300
commit2075de5db083f1d1f4a9c67f6b36a8eeb250754e (patch)
tree5839d478165573edffbf1c4f226fcc6716286a3d /src/detect
parent37644cabe0d0f8c96f3ae7cc2a985f54d631adff (diff)
fix: detect all claude half-circle spinner frames (#2762)
refs #2760 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src/detect')
-rw-r--r--src/detect/manifest/tests.rs15
-rw-r--r--src/detect/manifests/claude.toml6
2 files changed, 18 insertions, 3 deletions
diff --git a/src/detect/manifest/tests.rs b/src/detect/manifest/tests.rs
index 265dfa69..82ce52d9 100644
--- a/src/detect/manifest/tests.rs
+++ b/src/detect/manifest/tests.rs
@@ -626,6 +626,21 @@ fn claude_osc_title_braille_prefix_is_working() {
}
#[test]
+fn claude_osc_title_half_circle_frames_are_working() {
+ for frame in ['◐', '◓', '◑', '◒'] {
+ let title = format!("{frame} Initial conversation with Claude");
+ let result = osc_explain(Agent::Claude, "", &title, "");
+ assert_eq!(result.state, AgentState::Working, "frame {frame}");
+ assert_eq!(
+ result.matched_rule.as_ref().map(|rule| rule.id.as_str()),
+ Some("osc_title_working"),
+ "frame {frame}"
+ );
+ assert!(result.visible_working, "frame {frame}");
+ }
+}
+
+#[test]
fn claude_osc_title_static_prefix_is_idle() {
// "✳" is U+2733, static prefix when Claude is not working
let result = osc_explain(Agent::Claude, "", "✳ Claude Code", "");
diff --git a/src/detect/manifests/claude.toml b/src/detect/manifests/claude.toml
index 7e9a3163..514fdd04 100644
--- a/src/detect/manifests/claude.toml
+++ b/src/detect/manifests/claude.toml
@@ -1,7 +1,7 @@
id = "claude"
-version = "2026.08.12.1"
+version = "2026.08.13.1"
min_engine_version = 2
-updated_at = "2026-08-12T00:00:00Z"
+updated_at = "2026-08-13T00:00:00Z"
aliases = ["claude-code"]
[[rules]]
@@ -11,7 +11,7 @@ priority = 1100
region = "osc_title"
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{25D1}] ']
+regex = ['^[\x{2800}-\x{28FF}\x{25D0}-\x{25D3}] ']
[[rules]]
id = "btw_overlay_working"