<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/config/sound.rs, branch tmuxrdr</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=tmuxrdr'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-09-13T15:36:47+00:00</updated>
<entry>
<title>feat: add Letta Code detection and restore (#3107)</title>
<updated>2026-09-13T15:36:47+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-13T15:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=fc1cb77f0572948552377b23f7754a3016ac7dfa'/>
<id>urn:sha1:fc1cb77f0572948552377b23f7754a3016ac7dfa</id>
<content type='text'>
refs #3106

Co-authored-by: Cameron &lt;cameron@pfiffer.org&gt;</content>
</entry>
<entry>
<title>feat(detect): add muse agent with generic Pick blocked detection (#2489)</title>
<updated>2026-08-27T11:30:24+00:00</updated>
<author>
<name>Ömer Hamid Kamışlı</name>
<email>hamidkamisli@icloud.com</email>
</author>
<published>2026-08-27T11:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7b675f42af35508eab66ac42fe1598628597a893'/>
<id>urn:sha1:7b675f42af35508eab66ac42fe1598628597a893</id>
<content type='text'>
* 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-&lt;version&gt; 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 ⟩ &lt;choice&gt; 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 &lt;ohkamisli@poikus.com&gt;
Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: add qwen code detection and restore (#2743)</title>
<updated>2026-08-13T00:00:35+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-13T00:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=a4d52ab60282b2ad021cb90978a7ed4d3898704b'/>
<id>urn:sha1:a4d52ab60282b2ad021cb90978a7ed4d3898704b</id>
<content type='text'>
refs #2730</content>
</entry>
<entry>
<title>feat: add maki agent support (#1302)</title>
<updated>2026-07-10T22:19:51+00:00</updated>
<author>
<name>Tony Solomonik</name>
<email>tony.solomonik@gmail.com</email>
</author>
<published>2026-07-10T22:19:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=3b8aeee166d1594e1f8e41631a51748104d76834'/>
<id>urn:sha1:3b8aeee166d1594e1f8e41631a51748104d76834</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>feat: add mastracode integration (#788)</title>
<updated>2026-07-03T22:29:42+00:00</updated>
<author>
<name>Ward Peeters</name>
<email>ward@coding-tech.com</email>
</author>
<published>2026-07-03T22:29:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=d0e333451bd794a419e96f28db925772950ea156'/>
<id>urn:sha1:d0e333451bd794a419e96f28db925772950ea156</id>
<content type='text'>
* feat: add mastracode integration

refs #337

Co-authored-by: Mastra Code (openai/gpt-5.5) &lt;noreply@mastra.ai&gt;
Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>fix: reanchor lifecycle hook generations</title>
<updated>2026-06-19T00:32:53+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-19T00:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=26c5f97a908c1ebe4228302d1b9e8c5423b2ab75'/>
<id>urn:sha1:26c5f97a908c1ebe4228302d1b9e8c5423b2ab75</id>
<content type='text'>
refs #684
</content>
</entry>
<entry>
<title>feat: add devin cli detection and restore support (#622)</title>
<updated>2026-06-15T13:50:24+00:00</updated>
<author>
<name>Eric Yue</name>
<email>yue1995pro@gmail.com</email>
</author>
<published>2026-06-15T13:50:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=07261e09be60ac0c145685fd11f94351cc0e5ba6'/>
<id>urn:sha1:07261e09be60ac0c145685fd11f94351cc0e5ba6</id>
<content type='text'>
* feat: add devin cli detection and restore support

refs #606

* fix: keep devin integration session-only

---------

Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>feat: detect kilo code cli</title>
<updated>2026-06-01T01:16:36+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-06-01T00:50:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=1d56cd0e18fc69a85a0889ca6f9a9f3069a4be3a'/>
<id>urn:sha1:1d56cd0e18fc69a85a0889ca6f9a9f3069a4be3a</id>
<content type='text'>
refs #270
</content>
</entry>
<entry>
<title>feat: add Qoder CLI integration (#309)</title>
<updated>2026-05-27T14:42:26+00:00</updated>
<author>
<name>Coder Wayne</name>
<email>1418551940@qq.com</email>
</author>
<published>2026-05-27T14:42:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=bfb9e756a01a8ddf4e20d2451c8316ab33454bb4'/>
<id>urn:sha1:bfb9e756a01a8ddf4e20d2451c8316ab33454bb4</id>
<content type='text'>
* 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 &lt;jlu1318079810@163.com&gt;
Co-authored-by: Can Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<entry>
<title>fix: detect antigravity cli sessions</title>
<updated>2026-05-21T01:44:01+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-05-21T01:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=ef68c100e35b341e3f547f67335e1dc804ad38d4'/>
<id>urn:sha1:ef68c100e35b341e3f547f67335e1dc804ad38d4</id>
<content type='text'>
refs #207
</content>
</entry>
</feed>
