From 7041d2567a6a1aa5d4df77c3f4260e1fa9bfef75 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Fri, 26 Sep 2025 18:07:35 -0400 Subject: [PATCH] Progress bar updates. --- .../onScreenUpdate/65000-progress_detector.py | 21 ++++++++++++++++++- src/fenrirscreenreader/fenrirVersion.py | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py index 1c70b0ee..381f4101 100644 --- a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py +++ b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py @@ -279,7 +279,7 @@ class command: return # Pattern 6: Claude Code progress indicators - claude_progress_match = re.search(r'^[·✶✢✻*]\s+[^(]+[…\.]*\s*\(esc to interrupt[^)]*\)\s*$', text) + claude_progress_match = re.search(r'[·✶✢✻*]\s+[^(]+[…\.]*\s*\(esc to interrupt[^)]*\)', text) if claude_progress_match: if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0: self.play_activity_beep() @@ -301,6 +301,25 @@ class command: self.env["commandBuffer"]["lastProgressValue"] = percentage return + # Pattern 8: Thinking/processing with timing (🔄 Thinking... 23s) + thinking_match = re.search(r'🔄[^\w]*(?:thinking|processing|working|analyzing)[^\d]*(\d+)s?\b', text, re.IGNORECASE) + if thinking_match: + # Extract timing value for activity beep frequency adjustment + seconds = int(thinking_match.group(1)) + # Use slightly longer interval for thinking patterns to avoid spam + thinking_interval = 1.5 if seconds < 10 else 2.0 + if ( + current_time - self.env["commandBuffer"]["lastProgressTime"] + >= thinking_interval + ): + self.env["runtime"]["DebugManager"].write_debug_out( + f"Playing thinking activity beep (timing: {seconds}s)", + debug.DebugLevel.INFO, + ) + self.play_activity_beep() + self.env["commandBuffer"]["lastProgressTime"] = current_time + return + def play_progress_tone(self, percentage): # Map 0-100% to 400-1200Hz frequency range frequency = 400 + (percentage * 8) diff --git a/src/fenrirscreenreader/fenrirVersion.py b/src/fenrirscreenreader/fenrirVersion.py index cc9e002c..0b34c7e3 100644 --- a/src/fenrirscreenreader/fenrirVersion.py +++ b/src/fenrirscreenreader/fenrirVersion.py @@ -4,5 +4,5 @@ # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributors. -version = "2025.09.13" +version = "2025.09.26" code_name = "testing"