aboutsummaryrefslogtreecommitdiff
path: root/src/config
diff options
context:
space:
mode:
authorÖmer Hamid Kamışlı <hamidkamisli@icloud.com>2026-08-27 14:30:24 +0300
committerGitHub <noreply@github.com>2026-08-27 14:30:24 +0300
commit7b675f42af35508eab66ac42fe1598628597a893 (patch)
treef67d4a863c11c6967df6f4538b9d455bfc105163 /src/config
parentd79fd746a96ddb5642939c9727baefce642d78e6 (diff)
feat(detect): add muse agent with generic Pick blocked detection (#2489)
* feat(detect): add muse agent with generic Pick blocked detection Add Muse agent manifests and runtime detection for idle/working/blocked states. Blocked Pick is generic on footer 'Enter to select' so any question title/message triggers, fixing missed waiting answer where previous AND-gated rule required specific hint combos. Cover process names muse, muse-bin, muse-code variants and YOLO footer. refs #herdr * fix(detect): tighten muse manifest and agent lookup - manifests: change working_esc_interrupt and blocked_approval from whole_recent to bottom_non_empty_lines(8) to use captured bottom-buffer controls instead of incidental whole-pane text - manifests: anchor idle_prompt line_regex to ^\s*⟩\s*$ so working chrome "⟩ ..." does not match idle - runtime: restrict muse lookup to explicit aliases (muse|muse-bin|muse-code|muse-cli), remove starts_with("muse") fallback that misclassified museum/muse-helper/muser; add positive/negative identification tests - keep website mirror identical; verified with agent_detection manifest check --require-website refs #2489 refs #2456 * fix(detect): address mjdouglas vendor findings for muse - manifests: widen pick_request_blocked to bottom_non_empty_lines(8) and add Enter to toggle for multi-select; add menu_request_blocked for user-opened pickers (enter confirm/esc go back/esc close/space toggle); add workspace_trust_blocked for Do you trust dialog; tighten blocked_approval to footer chrome Allow once/Always allow/Yes proceed; split idle_prompt into any gate for empty and typed draft and not-gate pick/menu anchors; change idle_status_fallback from YOLO to model \u00b7 effort \u00b7 cwd shape - runtime: replace bare muse-bin alias with muse-bin-<version> digit check to match versioned launcher binary and avoid museum/muse-binary false positives - cross-checked with vendor-side captures reported on PR #2489 against strings in shipped muse-bin binary refs #2489 * fix(detect): handle path-qualified muse-bin versioned binary lookup_agent now uses path_basename before matching so a launcher exec with absolute argv0 like /usr/local/lib/muse/muse-bin-0.1.0-R708.1 is correctly identified. is_muse_versioned_binary also checks basename so direct path-qualified names succeed without relying on the argv0_argv fallback path. Prevents missed Muse detection when screen state and sound overrides are not applied. refs #2489 * fix(detect): add enter save to muse menu detection Evidence documents /theme with enter save footer which was not matched. Add enter save to menu_request_blocked any list and to idle_prompt not-gate (highlighted row ⟩ <choice> shares glyph) and keep website mirror in sync. Update evidence comment counts from four to five. refs #2489 * docs: add Muse to supported agents table Muse detection (manifest, process identification, sound) was added earlier but docs/next agents table omitted the row. Add Muse as screen manifest / none (no integration hook, consistent with Amp/Kiro/Maki) to en/ja/zh-cn translations. * fix(detect): resize agent arrays for new upstream variant Agent::ALL and SCREEN_MANIFEST_AGENTS gained an entry from master but kept stale size annotations, breaking compilation after rebase. refs #2489 * docs: add muse detection entry to next changelog refs #2489 * docs: add muse sound override to config reference refs #2489 * fix(detect): prevent false muse blocked states refs #2489 --------- Co-authored-by: Omer Hamid Kamisli <ohkamisli@poikus.com> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/config')
-rw-r--r--src/config/sidebar.rs25
-rw-r--r--src/config/sound.rs3
2 files changed, 4 insertions, 24 deletions
diff --git a/src/config/sidebar.rs b/src/config/sidebar.rs
index c548c839..f5715889 100644
--- a/src/config/sidebar.rs
+++ b/src/config/sidebar.rs
@@ -600,30 +600,7 @@ rows = [[{ token = "git_status", fg = "#ff00aa" }], [{ token = "$jj", bold = tru
#[test]
fn accepts_every_canonical_agent_override_key() {
- let agents = [
- Agent::Pi,
- Agent::Claude,
- Agent::Codex,
- Agent::Gemini,
- Agent::Cursor,
- Agent::Devin,
- Agent::Antigravity,
- Agent::Cline,
- Agent::Omp,
- Agent::Mastracode,
- Agent::OpenCode,
- Agent::GithubCopilot,
- Agent::Kimi,
- Agent::Kiro,
- Agent::Droid,
- Agent::Amp,
- Agent::Grok,
- Agent::Hermes,
- Agent::Kilo,
- Agent::Qodercli,
- Agent::Qwen,
- Agent::Maki,
- ];
+ let agents = Agent::ALL;
let entries = agents
.iter()
.map(|agent| format!("{} = [[\"agent\"]]", crate::detect::agent_label(*agent)))
diff --git a/src/config/sound.rs b/src/config/sound.rs
index c84f0d59..2215c832 100644
--- a/src/config/sound.rs
+++ b/src/config/sound.rs
@@ -45,6 +45,7 @@ pub struct AgentSoundOverrides {
pub qodercli: AgentSoundSetting,
pub qwen: AgentSoundSetting,
pub maki: AgentSoundSetting,
+ pub muse: AgentSoundSetting,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Deserialize)]
@@ -142,6 +143,7 @@ impl AgentSoundOverrides {
Some(Agent::Qodercli) => self.qodercli,
Some(Agent::Qwen) => self.qwen,
Some(Agent::Maki) => self.maki,
+ Some(Agent::Muse) => self.muse,
None => AgentSoundSetting::Default,
}
}
@@ -182,6 +184,7 @@ impl Default for AgentSoundOverrides {
qodercli: AgentSoundSetting::Default,
qwen: AgentSoundSetting::Default,
maki: AgentSoundSetting::Default,
+ muse: AgentSoundSetting::Default,
}
}
}