diff options
| author | Ömer Hamid Kamışlı <hamidkamisli@icloud.com> | 2026-08-27 14:30:24 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-27 14:30:24 +0300 |
| commit | 7b675f42af35508eab66ac42fe1598628597a893 (patch) | |
| tree | f67d4a863c11c6967df6f4538b9d455bfc105163 /src/config | |
| parent | d79fd746a96ddb5642939c9727baefce642d78e6 (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.rs | 25 | ||||
| -rw-r--r-- | src/config/sound.rs | 3 |
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, } } } |
