aboutsummaryrefslogtreecommitdiff
path: root/src/detect/mod.rs
AgeCommit message (Collapse)Author
2026-09-18test: focus agent detection coverage on engine contracts (#4338)Can Celik
2026-09-13feat: add Letta Code detection and restore (#3107)Can Celik
refs #3106 Co-authored-by: Cameron <cameron@pfiffer.org>
2026-09-13fix: detect kimi npm shim on windows (#4053)JJ Liebig
refs #3317
2026-09-11fix: detect cline launchers and idle states (#3959)Can Celik
refs #2396
2026-08-31fix(windows): detect pi bundled cli (#3207)akbash
* fix(windows): detect pi bundled cli refs #3205 * fix(windows): match exact pi cli paths refs #3205 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
2026-08-27feat(detect): add muse agent with generic Pick blocked detection (#2489)Ömer Hamid Kamışlı
* 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>
2026-08-20fix(windows): detect cursor bundled node process (#3034)akbash
* fix(windows): detect cursor bundled node process refs #3032 * docs: clarify cursor detection scope * fix(windows): constrain cursor runtime detection refs #3032 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
2026-08-13feat: add qwen code detection and restore (#2743)Can Celik
refs #2730
2026-08-07feat: support all agent integrations on windows (#2496)Can Celik
2026-08-06fix(detect): recognize versioned Python agent wrappers (#2188)Phil Larson
Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-08-01fix(detect): recognize opencode2 as opencodeOgulcan Celik
refs #2169
2026-08-01feat: add antigravity-cli integration (#2087)Ludovico Magnocavallo
* feat: add antigravity_cli integration harness Register the `antigravity_cli` target, resolve its configuration directory to `~/.gemini/antigravity-cli/`, wire target actions, and add lifecycle hook scripts for Unix and Windows. * feat: support session resume for antigravity-cli * fix: correct antigravity-cli hook config path, shape, and agent label Antigravity CLI reads global customizations from ~/.gemini/config, keys hooks.json by hook name, and only accepts the matcher/hooks wrapper for the tool events. The previous install wrote event arrays at the top level of ~/.gemini/antigravity-cli/hooks.json, which agy never reads and would reject anyway, so no Herdr hook ever ran. Session reports were dropped for a third reason: the hooks reported the agent as antigravity-cli, but the server normalizes that to the canonical label agy before matching, so is_official_agent_source never matched and agy --conversation resume was unreachable. - Resolve the config dir to ~/.gemini/config - Nest Herdr entries under a Herdr-owned "herdr" block that install rewrites and uninstall removes, leaving other named hooks untouched - Emit grouped entries for PreToolUse/PostToolUse and flat handler lists for PreInvocation/PostInvocation/Stop - Report the canonical agy label from both hook assets and match it in agent_resume - Compile-gate the hook asset constants and stop shadowing $args in the PowerShell hook - Document the real directory, that it must already exist, and the named-block behavior refs #1011 refs #1571 * fix: make antigravity-cli integration session-only antigravity cli cannot express lifecycle safely: there is no blocked event, postinvocation is skipped on interruption, and stop fires at the end of a turn rather than on process exit, which left stale state and released authority at the wrong time. report only the conversation on preinvocation and let screen detection own agent state. resume via `agy --conversation <id>` is unchanged. * fix: update antigravity session after conversation switch --------- Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-07-25fix: harden hermes lifecycle detectionOgulcan Celik
2026-07-19feat: make agent automation a first-class cli primitiveOgulcan Celik
2026-07-17feat: harden named agent cli workflowsOgulcan Celik
refs #1525
2026-07-14fix(linux): scope foreground process discovery to panesOgulcan Celik
refs #1399
2026-07-13refactor: centralize agent identity lookupOgulcan Celik
2026-07-11feat: add maki agent support (#1302)Tony Solomonik
* feat: add maki detection support Maki always draws a one-line status bar at the bottom of the screen, so the manifest reads just that row: a braille spinner before the `[BUILD]`/`[PLAN]`/`[BASH]` mode label means working, the bare label means idle. Blocked states come from the panels that replace the input box, the `Permission Required` dialog with its `y Allow`/`n Deny` hint rows and the `Plan complete` form. Maki emits no OSC title or progress, so these screen rules are the only evidence. Also wires `maki` through process-name identification, per-agent sound overrides, and the website manifest catalog. * docs: stage maki detection docs
2026-07-04feat: add mastracode integration (#788)Ward Peeters
* feat: add mastracode integration refs #337 Co-authored-by: Mastra Code (openai/gpt-5.5) <noreply@mastra.ai> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-02feat: inject powershell prompt shell integration for cwd reporting on windowsOgulcan Celik
refs #919
2026-06-23fix: detect npm-wrapped pi on windowsOgulcan Celik
refs #754
2026-06-19fix: reanchor lifecycle hook generationsOgulcan Celik
refs #684
2026-06-15feat: add devin cli detection and restore support (#622)Eric Yue
* feat: add devin cli detection and restore support refs #606 * fix: keep devin integration session-only --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-06-10feat: add manifest-based detection engineOgulcan Celik
2026-06-10feat: distribute agent detection manifestsOgulcan Celik
2026-06-09fix: remove idle screen patterns from agent detectionOgulcan Celik
2026-06-09fix: smooth agent status transitionsOgulcan Celik
2026-06-09feat: use pty-first agent detectionOgulcan Celik
2026-06-08fix: detect truncated codex status rowsOgulcan Celik
2026-06-08fix: detect codex interrupt status headersOgulcan Celik
refs #501
2026-06-07fix: scope codex blocked prompts to live prompt regionOgulcan Celik
2026-06-07feat: add native windows beta supportOgulcan Celik
2026-06-04feat: add kimi code cli integration (#463)qer
* feat: add kimi code cli integration refs #431 * fix: improve kimi code screen detection refs #431
2026-06-03fix: detect pnpm opencode executableOgulcan Celik
refs #447
2026-06-03fix: avoid claude custom status false blockedOgulcan Celik
refs #409
2026-06-03fix: preserve status in transcript viewersOgulcan Celik
2026-06-03fix: avoid stale claude background wait detectionOgulcan Celik
2026-06-03fix: detect claude arrow-glyph question promptsOgulcan Celik
2026-06-02feat: make claude codex opencode hooks session-onlyOgulcan Celik
2026-06-01fix: detect kiro subagent approvalsOgulcan Celik
refs #388
2026-06-01feat: detect kilo code cliOgulcan Celik
refs #270
2026-05-31fix: keep codex visible approval review workingOgulcan Celik
2026-05-30refactor: split agent detection by agentOgulcan Celik
Move screen detection into per-agent modules and keep visible-state arbitration centralized in terminal state. Tighten Codex prompt-scoped working detection and Claude hook/screen recovery for stale blocked and idle reports. Add a focused just recipe for single-test runs. refs #349 refs #352