aboutsummaryrefslogtreecommitdiff
path: root/src/integration/mod.rs
AgeCommit message (Collapse)Author
2026-07-30fix(omp): support Windows session paths (#2092)Wiedzmin
2026-07-28fix: ignore nested codex session reports (#1927)JJ Liebig
* fix: ignore nested codex session reports refs #1789 * test: cover matching codex thread id --------- Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-07-24feat: add grok cli integration for native session restore (#1807)Enrico Carlesso
* feat: add grok cli integration for native session restore tl;dr: adds `herdr integration install grok` (session-identity tier: a SessionStart hook reports the grok session id for native restore; state stays screen-detected via the bundled manifest). Grok merges every ~/.grok/hooks/*.json, so install writes a self-contained hooks/herdr.json registering a SessionStart hook next to hooks/herdr-agent-state.sh, and never touches other hook files. The hook prefers $GROK_SESSION_ID (injected into every grok hook process) and reports through the socket API; herdr:grok is a reserved-native-state source so screen detection stays authoritative. Restore uses `grok --resume <id>`. Additive JSON API change; no protocol bump; the schema artifact is regenerated. refs #1800 * fix: honor GROK_HOME and validate grok hook config in status Review follow-ups: grok_dir now resolves GROK_CONFIG_DIR (herdr test seam) before GROK_HOME (the grok CLI's own config-home override) before ~/.grok, so hook installs land where grok actually looks. Integration status now also validates the herdr-owned hooks/herdr.json next to the hook script — missing, corrupt, or no-longer-referencing configs report the install as outdated instead of masking a hook grok never invokes. refs #1800 * fix: validate the exact grok session hook command in status The config validator matched on a filename substring, so a SessionStart command like `echo herdr-agent-state.sh`, or one invoking the script without the `session` action, still reported the integration as current while grok never delivered a session id. Status now compares against the exact command the installer writes, via a shared builder, and the degradation tests cover both nonfunctional shapes. refs #1800 * fix: require a command-type grok session hook in status validation A config entry carrying the exact generated command under a non-command hook type (e.g. "http") is never executed by grok, so it must not report the integration as current. The validator now also requires type = "command", with a degradation test for the mismatched-type shape. refs #1800 * fix: validate the complete grok hook config refs #1800 --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-07-24fix: make known-agent exit process-ownedOgulcan Celik
refs #1792 refs #1648
2026-07-20fix: report kimi questions as blockedOgulcan Celik
2026-07-18fix: support javascript integrations on windowsOgulcan Celik
refs #1531
2026-07-18fix: serialize opencode lifecycle reportsOgulcan Celik
refs #1519
2026-07-14fix: retry dropped omp lifecycle reportsOgulcan Celik
refs #1310
2026-07-09fix: reanchor pi status after session replacement (#1189)Dillon Mulroy
* fix: reanchor pi status after session replacement refs #943 * fix: guard active pi sessions from nested startup refs #943 * fix: serialize pi session replacement reports refs #943
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-06-30fix: opencode — report subagent permission prompts as blocked + handle ↵Aleksey @soar Smyrnov
session.status object form (#838) refs #838
2026-06-25refactor: split integration moduleOgulcan Celik
2026-06-25fix: avoid pi release on internal session reloads (#800)Dillon Mulroy
* fix: avoid pi release on internal session reloads * fix: align omp session shutdown release with pi --------- Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-06-24fix: scope opencode hook to main agent and adopt new sessionsOgulcan Celik
refs #765
2026-06-22fix: support devin hook on python 3.9Ogulcan Celik
refs #719
2026-06-21fix: release pi and omp agents on shutdownOgulcan Celik
2026-06-21fix: protect root agent restore sessionsOgulcan Celik
refs #712
2026-06-16fix: isolate omp hook state to ui sessionsOgulcan Celik
refs #614
2026-06-16fix: restore omp sessions after same-pane restartOgulcan Celik
refs #614
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-15fix: preserve claude session rotationsOgulcan Celik
refs #620
2026-06-14feat: add plugin v1 systemOgulcan Celik
Add manifest-driven plugin actions, event hooks, pane entrypoints, link handlers, and host APIs. Support plugin link, GitHub install, build commands, installed plugin registry, pane movement, runtime context, and plugin docs.
2026-06-12fix: stabilize public pane and tab idsOgulcan Celik
refs #569
2026-06-10chore: apply cargo fmtOgulcan Celik
2026-06-10feat: gate kimi integration install behind minimum agent versionOgulcan Celik
2026-06-10feat: add manifest-based detection engineOgulcan Celik
2026-06-09feat: update agent lifecycle integrationsOgulcan Celik
2026-06-08feat: add cursor agent cli integration for session restore (#506)udirom
Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-06-07fix: gate integrations by platform supportOgulcan Celik
2026-06-07fix: support windows agent hooks and input pathsOgulcan Celik
2026-06-07feat: add native windows beta supportOgulcan Celik
2026-06-05fix: preserve hermes flat plugin listsOgulcan Celik
refs #479
2026-06-04feat: add droid integrationOgulcan 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-02feat: make claude codex opencode hooks session-onlyOgulcan Celik
2026-06-02feat: add github copilot cli integration (#386)Lane
* feat: add github copilot cli integration refs #232 * docs: restore 0.6.5 changelog and document copilot hook flow * test: cover copilot camelcase hook payloads --------- Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-05-30fix: preserve opencode working stateOgulcan Celik
refs #351
2026-05-27fix: release opencode integration on disposeOgulcan Celik
refs #314
2026-05-27feat: add Qoder CLI integration (#309)Coder Wayne
* feat: add qodercli agent integration Recognize qodercli as an agent in herdr panes, with basic Idle/Working/ Blocked screen-state detection mirroring the existing claude / codex patterns. Adds an IntegrationTarget::Qodercli variant, install_target wiring for shell hooks under src/integration/assets/qodercli/, the herdr integration install qodercli CLI surface, and sound-override coverage so qodercli notifications follow the same routing rules as other agents. refs #308 * fix: detect qodercli permission required as blocked refs #308 * fix: detect qodercli ask-user prompt as blocked refs #308 * refactor: extract has_qodercli_blocked_prompt helper aligning detect_claude refs #308 * fix: tighten qodercli working state detection Combine spinner-row strictness and explicit cancel-hint matching, and stop matching the bare word 'working'. This avoids false positives when narrative output (logs, commit messages, Markdown) contains the word 'working' or when a stale braille glyph is sitting in the scrollback from a previous frame. - has_qodercli_spinner_row: require row-start braille glyph + space + alphabetic char so only an active spinner row triggers Working. - has_qodercli_working_hint: match '(esc to cancel,' as a positive signal that survives spinner masking (e.g. when a hook icon replaces the spinner glyph). refs #308 * fix: short-circuit qodercli press-again banners to idle refs #308 * fix: detect qodercli AskUser dialog by its 'Asking User' title refs #308 * feat: recognize qodercli, qoderclicn, qoder, qodercn process names Map qodercli, qoderclicn, qoder, and qodercn process names all to the Qodercli agent. Covers both international (qodercli/qoder) and CN (qoderclicn/qodercn) Qoder CLI binary names. refs #308 * feat: register qodercli hook in qoder settings.json with stdin payload Address the integration-layer feedback on #308: - `herdr integration install qodercli` now writes the bundled hook into ~/.qoder/hooks/herdr-agent-state.sh AND registers it in ~/.qoder/settings.json under the schema documented at https://docs.qoder.com/zh/cli/hooks (and confirmed against the packages/core/src/hooks/types.ts type definitions in qodercli's own source tree). The hooks object is keyed by event name — SessionStart / UserPromptSubmit / PreToolUse / PermissionRequest / Stop / SessionEnd — with each entry holding a matcher and a list of `{ type: "command", command, timeout }` invocations, mirroring how install_claude already wires claude code's settings.json. - The bundled assets/qodercli/herdr-agent-state.sh now reads the hook payload from stdin (per HookInput in qodercli's types.ts: session_id, transcript_path, cwd, hook_event_name, agent_id, ...). No environment variable is consulted to identify the event; SubagentStop and subagent release events return early so a recap or away-summary frame cannot revive an idle pane, mirroring assets/claude/herdr-agent-state.sh. - uninstall_qodercli reverses the same set of entries while preserving any foreign hook entries the user may have configured by hand. - Tests cover write / idempotency / uninstall-preserves-others and lock the stdin contract via a bundled-asset assertion. refs #308 --------- Co-authored-by: coderwayne <jlu1318079810@163.com> Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-26feat: add pane metadata reportingOgulcan Celik
refs #36
2026-05-23feat: restore agent sessionsOgulcan Celik
refs #233
2026-05-23feat: add omp integrationOgulcan Celik
2026-05-20fix: stop claude subagent completion reviving workingOgulcan Celik
refs #198
2026-05-20feat: surface agent integrations in onboardingOgulcan Celik
2026-05-19fix: report codex permission hooks as blockedOgulcan Celik
refs #198
2026-05-19fix: stop claude post-tool hooks pinning workingOgulcan Celik
refs #198
2026-05-19feat: support hermes agent integrationOgulcan Celik
refs #144
2026-05-16fix: respect integration config dirsOgulcan Celik
refs #121
2026-05-14fix: update codex hooks feature flagOgulcan Celik
fixes #108
2026-05-11fix: stabilize integration agent state reportsOgulcan Celik