348 Commits

Author SHA1 Message Date
Ogulcan Celik 61ee25e89e docs: finalize next release docs 2026-05-27 18:41:34 +03:00
Ogulcan Celik b56eeb991e fix: release opencode integration on dispose
refs #314
2026-05-27 18:06:20 +03:00
Coder Wayne bfb9e756a0 feat: add Qoder CLI integration (#309)
* 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-27 17:42:26 +03:00
kangal-bot 858c36974b feat: configure mobile width threshold (#317) 2026-05-27 15:09:31 +03:00
Ogulcan Celik 7dbe2c7964 fix: harden session stop socket handling 2026-05-27 01:01:23 +03:00
Ogulcan Celik eac2314e6c fix: handle package-manager remote updates 2026-05-26 22:51:28 +03:00
Ogulcan Celik 427c2606d8 fix: deliver agent status subscriptions from event hub 2026-05-26 21:53:50 +03:00
kangal-bot 31e973502a fix: buffer split host color replies (#310)
refs #306

Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-26 19:59:15 +03:00
Ogulcan Celik af399094f5 feat: open pane links with ctrl-click
refs #307
2026-05-26 18:26:12 +03:00
Ogulcan Celik 3750e0bae2 feat: add pane metadata reporting
refs #36
2026-05-26 17:10:28 +03:00
Ogulcan Celik 1b980eaa9d feat: show clipboard copy feedback 2026-05-26 15:50:06 +03:00
Ogulcan Celik 57c880f0eb feat: add global last-pane navigation
refs #287
2026-05-26 14:50:13 +03:00
Ogulcan Celik 9eec3029e1 fix: reduce idle agent checker CPU
refs #300
2026-05-26 14:44:22 +03:00
Ogulcan Celik 843653c0f5 fix: detect codex background terminal waits 2026-05-26 13:53:37 +03:00
Zack Drach 6c4a947244 Add tmux-style double-click word copy (#296)
* feat: add tmux-style double-click copy

Double-clicking terminal output now selects and copies the token under the cursor, similar to tmux. The copied token briefly stays highlighted as feedback, and token detection handles common shell output like paths, URLs, variables, CJK text, and surrounding punctuation.

Mouse events are still forwarded unchanged when the child terminal has mouse reporting enabled.

refs #142

* fix: tighten double-click copy

refs #142

---------

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-26 13:40:29 +03:00
kangal-bot 33e71ed2f5 fix: emit matching agent status subscriptions (#295)
refs #288

Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
2026-05-26 01:35:28 +03:00
Ogulcan Celik 1e0d95f05e fix: avoid aplay for linux mp3 sounds
refs #290
2026-05-25 23:06:50 +03:00
Ogulcan Celik 2ea4878bae feat: gate live handoff behind explicit flag 2026-05-25 20:56:17 +03:00
Ogulcan Celik 58bcd76bfd feat: make focus-gain redraw configurable
refs #282
2026-05-25 18:42:33 +03:00
Ogulcan Celik 490510c129 fix: spawn restored agents directly 2026-05-25 16:27:32 +03:00
Ogulcan Celik eb8e9f1af8 test: shorten update test socket paths on macos 2026-05-25 15:51:52 +03:00
Ogulcan Celik d4a5e02e84 feat: hand off ptys during updates 2026-05-25 15:36:50 +03:00
Ogulcan Celik a1543f3e24 fix: avoid pane history replay during agent restore 2026-05-25 15:16:15 +03:00
Ogulcan Celik 420925d141 fix: support scrolling direct agent attaches 2026-05-24 21:30:04 +03:00
zhugehyuk 43c6ca3a5d feat: persist pane history across restarts (#248)
refs #217

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-24 21:28:33 +03:00
Ogulcan Celik 5ce738cf53 fix: avoid app event queue stalls
refs #265
2026-05-24 18:03:24 +03:00
Ogulcan Celik 26205a2ac5 feat: make navigate movement keybinds configurable
refs #193
2026-05-24 03:41:16 +03:00
Ogulcan Celik 80a314a908 feat: add session navigator
refs #157
2026-05-24 02:59:39 +03:00
Ogulcan Celik a132a7c3b9 test: make restore wrapper test portable 2026-05-24 01:03:30 +03:00
Ogulcan Celik c359edee19 test: skip short-lived restore fallback pty test on macos 2026-05-24 00:25:12 +03:00
Ogulcan Celik db67e9d74f feat: restore agent sessions
refs #233
2026-05-23 21:37:05 +03:00
Ogulcan Celik ec2924d0d1 feat: add optional nix flake support
refs #208

refs #221

refs #264
2026-05-23 17:42:49 +03:00
Ogulcan Celik 8d855cd9ef fix: use live cwd for workspace labels 2026-05-23 17:28:14 +03:00
Ogulcan Celik c4dd318ea3 test: normalize worktree source path assertion 2026-05-23 15:34:32 +03:00
Ogulcan Celik 9817820af1 feat: add worktree cli and socket api 2026-05-23 15:19:36 +03:00
Ogulcan Celik ed11779fca feat: add omp integration 2026-05-23 15:19:36 +03:00
LaneBirmingham 5954ece9f7 feat: add state detection heuristics for GitHub Copilot CLI (#256)
* feat: add github copilot cli state detection

Add robust state detection heuristics for the GitHub Copilot CLI by matching specific interactive prompt combinations, freeform inputs, and thinking status frames.

refs #232

* docs: keep copilot docs staged for next release

---------

Co-authored-by: Can Celik <ogulcancelik@gmail.com>
2026-05-23 03:12:56 +03:00
Ogulcan Celik cbcf0e6f5a fix: detect kiro approval prompts as blocked
refs #255
2026-05-23 02:58:34 +03:00
Ogulcan Celik 09d9ddde97 fix: preserve local keybindings in remote sessions 2026-05-23 02:30:25 +03:00
Ogulcan Celik 3de6ea7999 feat: configure new terminal cwd 2026-05-23 00:32:46 +03:00
Ogulcan Celik 062259ba3e fix: arbitrate stale agent state evidence
refs #249
2026-05-22 19:55:07 +03:00
Ogulcan Celik 1b9a165f9e fix: answer pane default color queries
refs #253
2026-05-22 19:37:34 +03:00
Ogulcan Celik c25f116c53 fix: detect cursor agent symlink aliases
refs #225
2026-05-22 19:25:31 +03:00
Ogulcan Celik 29fd06747b fix: accept unicode keybindings
refs #247
2026-05-22 15:18:08 +03:00
Ogulcan Celik 760529ce3d fix: detect kimi code cli states
refs #215
2026-05-22 14:39:00 +03:00
Golden-Pigeon 1daf54ecbf feat: show named session command hints
refs #199
2026-05-22 02:43:30 +03:00
Ogulcan Celik 0148c1379b feat: add git worktree workspace management
refs #137
2026-05-22 02:23:35 +03:00
Ogulcan Celik a9ff4012bd feat: add configurable mouse scroll lines
refs #236
2026-05-22 00:12:53 +03:00
Ogulcan Celik 659badf106 fix: avoid agent detection from runtime arguments
refs #238
2026-05-21 22:17:37 +03:00
Ogulcan Celik 1f2f939862 fix: keep notifications below floating overlays
refs #228
2026-05-21 21:27:20 +03:00