diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-03 04:38:46 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-03 04:38:46 +0300 |
| commit | 58af4902fc51b6be8fec99a3cec576c98e0c6075 (patch) | |
| tree | 8dbb2501a61904b4c90d368150b5370b5f9e90e6 /src/detect/agents/mod.rs | |
| parent | 816cb88cd9df3cba305a50842ebf78db19279dd5 (diff) | |
fix: preserve status in transcript viewers
Diffstat (limited to 'src/detect/agents/mod.rs')
| -rw-r--r-- | src/detect/agents/mod.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/detect/agents/mod.rs b/src/detect/agents/mod.rs index 4597c122..a89b2f37 100644 --- a/src/detect/agents/mod.rs +++ b/src/detect/agents/mod.rs @@ -39,14 +39,34 @@ pub(super) fn detect(agent: Agent, screen_content: &str) -> AgentDetection { Agent::Qodercli => qodercli::detect(screen_content), }; + let skip_state_update = should_skip_state_update(agent, screen_content); + if skip_state_update { + return AgentDetection { + state, + skip_state_update: true, + visible_blocker: false, + visible_idle: false, + visible_working: false, + }; + } + AgentDetection { state, + skip_state_update: false, visible_blocker: has_visible_blocker(agent, screen_content, state), visible_idle: has_visible_idle(agent, screen_content, state), visible_working: has_visible_working(agent, screen_content, state), } } +pub(super) fn should_skip_state_update(agent: Agent, content: &str) -> bool { + match agent { + Agent::Claude => claude_code::is_transcript_viewer(content), + Agent::Codex => codex::is_transcript_viewer(content), + _ => false, + } +} + fn has_visible_blocker(agent: Agent, content: &str, state: AgentState) -> bool { if state != AgentState::Blocked { return false; |
