<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/detect/manifest.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-24T00:23:42+00:00</updated>
<entry>
<title>fix: avoid inferring codex idle from terminal output (#4563)</title>
<updated>2026-09-24T00:23:42+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-24T00:23:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=9c96f7ddb3be2cc575a159d4d1f1d49fb10d7006'/>
<id>urn:sha1:9c96f7ddb3be2cc575a159d4d1f1d49fb10d7006</id>
<content type='text'>
refs #4507</content>
</entry>
<entry>
<title>fix: detect codex activity with static titles and queued inputs (#4099)</title>
<updated>2026-09-14T14:33:30+00:00</updated>
<author>
<name>Eric Yue</name>
<email>jiacheng.yue@foxmail.com</email>
</author>
<published>2026-09-14T14:33:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7e51b2832d99c56dc23a3915fe51fabe55754221'/>
<id>urn:sha1:7e51b2832d99c56dc23a3915fe51fabe55754221</id>
<content type='text'>
* fix: detect codex activity with static titles and queued inputs

refs #4092

Codex 0.154.0 can omit the activity bullet when tui.animations is false
and replace the literal Working label with a task-specific label. Its
terminal title can also remain static during an active turn, so the OSC
spinner rule is not sufficient to identify work.

The screen fallback required a bullet followed by Working in the last
three non-empty lines. It therefore missed both the animation-disabled
status line and dynamic labels. Queued follow-ups add a heading, input
text, and an edit hint below the activity line, moving that line outside
the three-line region. The lower-priority non-empty OSC title rule then
reported idle while Codex still showed an active timer and interrupt
control.

Recognize the elapsed-time and esc-to-interrupt controls in the detection
snapshot before the current composer. Allow an optional bullet, a dynamic
activity label, and queued follow-ups below that line. Require that no
later response, completion, or interruption marker supersedes the live
activity. This excludes composer text and stale output without letting an
earlier interruption suppress a subsequent active turn.

Keep OSC state precedence and transcript-viewer skip behavior unchanged.
Update the bundled and distributed manifests together to 2026.09.14.1.
Add regression coverage for optional bullets, dynamic labels, queued
inputs, resumed work after interruption, and stale or quoted controls.

Avoid discarding Regex search caches on every detection poll. The loader
previously cloned the entire compiled rule vector, and each Regex clone
created a fresh search cache pool despite sharing compiled read-only
state. Share the immutable rules through Arc instead. Reload publishes a
new array while in-flight readers retain a valid old generation, without
holding the global cache lock during matching. Add a cheap contains gate
for the required interrupt text before running the multiline expression.

Add a deterministic regression for compiled-rule sharing, reload
replacement, retained old readers, and concurrent detection. Measure the
baseline and optimized detector kernels in three alternating rounds on
CPU 24 with NUMA node 0 and CPU 25 with NUMA node 1. Real queued detection
falls from about 116 to 22 microseconds, and two evaluations per pane over
15 panes fall from about 3.45 to 0.65 milliseconds on both sockets, about
81 percent less time. No benchmark match results change. The cache
improvement requires the updated binary, not just a manifest reload.

Validate on the official Herdr 0.9.0 release with Codex 0.154.0 by toggling
the old and new manifests during the same active queued task. Confirm
working for active turns and idle after completion or interruption.
Pass 86 captured-screen and semantic checks through the optimized source
binary, 69 manifest/cache tests, CPU-pinned render scaling, and the full
native CI suite: 3535 Rust tests passed, with six default skips. Run CI
serially with inherited Herdr session context removed; no tests were
excluded or expectations relaxed to make CI pass.

* fix: detect codex pending follow-ups as working

refs #4092

* fix: handle wrapped codex follow-up hints

refs #4092

---------

Co-authored-by: Ogulcan Celik &lt;ogulcancelik@gmail.com&gt;</content>
</entry>
<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>fix: refresh shared agent manifest caches (#3204)</title>
<updated>2026-08-24T22:08:36+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-08-24T22:08:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=cafd9e5dd0e59ecc7551ae066c737f23573460a7'/>
<id>urn:sha1:cafd9e5dd0e59ecc7551ae066c737f23573460a7</id>
<content type='text'>
refs #2711

Co-authored-by: akbash-bot &lt;300245827+akbash-bot@users.noreply.github.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>fix: detect grok background work from pinned status</title>
<updated>2026-07-16T22:53:55+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-07-16T22:53:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=99760f77db74d42108865cc412a47137b0ed384c'/>
<id>urn:sha1:99760f77db74d42108865cc412a47137b0ed384c</id>
<content type='text'>
</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>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>
</feed>
