aboutsummaryrefslogtreecommitdiff
path: root/src/detect/manifest.rs
diff options
context:
space:
mode:
authorJJ Liebig <jonathan.liebig@gmail.com>2026-09-24 02:23:42 +0200
committerGitHub <noreply@github.com>2026-09-24 02:23:42 +0200
commit9c96f7ddb3be2cc575a159d4d1f1d49fb10d7006 (patch)
tree182e89183981160397af301c075ab11316b15850 /src/detect/manifest.rs
parent21fd121a63db53ff44b947bbe38c47bbf35e632c (diff)
fix: avoid inferring codex idle from terminal output (#4563)
refs #4507
Diffstat (limited to 'src/detect/manifest.rs')
-rw-r--r--src/detect/manifest.rs27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/detect/manifest.rs b/src/detect/manifest.rs
index acd6b8f9..e224adfe 100644
--- a/src/detect/manifest.rs
+++ b/src/detect/manifest.rs
@@ -416,23 +416,6 @@ pub fn explain_for_label(agent_label: &str, screen_content: &str) -> DetectionEx
explain(agent, screen_content)
}
-pub fn should_skip_state_update(agent: Agent, screen_content: &str) -> bool {
- let Some(loaded) = load_manifest(agent) else {
- return false;
- };
- evaluate_loaded_manifest(
- agent,
- DetectionInput {
- screen: screen_content,
- osc_title: "",
- osc_progress: "",
- },
- loaded,
- false,
- )
- .skip_state_update
-}
-
impl DetectionExplain {
fn into_detection(self) -> AgentDetection {
AgentDetection {
@@ -557,14 +540,14 @@ fn fallback_explain(
)
})
.unwrap_or((None, Vec::new(), None, None, None, false));
- let known_agent = agent.is_some();
+ let assume_idle = agent.is_some_and(|agent| agent != Agent::Codex);
let remote_update_status = include_update_status
.then(|| agent.and_then(remote_update_status))
.flatten();
DetectionExplain {
agent: agent.map(|agent| agent_label(agent).to_string()),
- state: if known_agent {
+ state: if assume_idle {
AgentState::Idle
} else {
AgentState::Unknown
@@ -577,7 +560,11 @@ fn fallback_explain(
visible_working: false,
skip_state_update: false,
skipped_update_reason: None,
- fallback_reason: known_agent.then(|| DEFAULT_KNOWN_AGENT_IDLE_FALLBACK.to_string()),
+ fallback_reason: match agent {
+ Some(Agent::Codex) => Some("codex_state_ambiguous".to_string()),
+ Some(_) => Some(DEFAULT_KNOWN_AGENT_IDLE_FALLBACK.to_string()),
+ None => None,
+ },
evaluated_rules,
warning,
manifest_version,