aboutsummaryrefslogtreecommitdiff
path: root/src/detect/manifest.rs
diff options
context:
space:
mode:
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,