<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/detect/manifest, 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>test: focus agent detection coverage on engine contracts (#4338)</title>
<updated>2026-09-18T11:09:12+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-18T11:09:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7201907b654aefdb9b636b17ea7ca3cddc873d7b'/>
<id>urn:sha1:7201907b654aefdb9b636b17ea7ca3cddc873d7b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: correct grok activity detection with custom or disabled osc signals (#4337)</title>
<updated>2026-09-18T09:52:37+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-18T09:52:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7df919d00e5bf8f6ed43a1781e81340cc0bbce8d'/>
<id>urn:sha1:7df919d00e5bf8f6ed43a1781e81340cc0bbce8d</id>
<content type='text'>
refs #4333</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>fix: recognize codex composer sparkles (#4015)</title>
<updated>2026-09-12T22:36:59+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-12T22:36:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=e3a46f4f89142d929bf35c31aac85e5f374d8dcf'/>
<id>urn:sha1:e3a46f4f89142d929bf35c31aac85e5f374d8dcf</id>
<content type='text'>
refs #3988</content>
</entry>
<entry>
<title>fix: match claude bash permission prompts at every cursor position (#3615)</title>
<updated>2026-09-06T23:27:04+00:00</updated>
<author>
<name>caner-akca</name>
<email>94343893+caner-akca@users.noreply.github.com</email>
</author>
<published>2026-09-06T23:27:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=4b5e9bda239a0b6903889062d756424578e94691'/>
<id>urn:sha1:4b5e9bda239a0b6903889062d756424578e94691</id>
<content type='text'>
Claude marks the selected option with "❯", but bash_permission_prompt did not allow that prefix on numbered branches and did not cover the three-option "don't ask again" layout. Match both two- and three-option Bash approval prompts regardless of the selected option.

refs #2650</content>
</entry>
<entry>
<title>fix: detect codex startup update prompts (#3636)</title>
<updated>2026-09-05T00:14:07+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-05T00:14:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=987651a760cdfe4cd9493388e8c16b8f99643a05'/>
<id>urn:sha1:987651a760cdfe4cd9493388e8c16b8f99643a05</id>
<content type='text'>
refs #3632</content>
</entry>
<entry>
<title>fix: stop treating claude background shells as working (#3468)</title>
<updated>2026-09-02T15:00:44+00:00</updated>
<author>
<name>akbash</name>
<email>akbash@herdr.dev</email>
</author>
<published>2026-09-02T15:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=987b070fbfa187e85009b45cd7e208fc6175ff6a'/>
<id>urn:sha1:987b070fbfa187e85009b45cd7e208fc6175ff6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: detect claude mcp elicitation dialogs as blocked (#3383)</title>
<updated>2026-08-29T22:18:16+00:00</updated>
<author>
<name>caner-akca</name>
<email>94343893+caner-akca@users.noreply.github.com</email>
</author>
<published>2026-08-29T22:18:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=f807b697353cfa00aa912c7cde4830e863001cf5'/>
<id>urn:sha1:f807b697353cfa00aa912c7cde4830e863001cf5</id>
<content type='text'>
refs #3283</content>
</entry>
<entry>
<title>fix: ignore codex weak blockers above the current prompt (#3339)</title>
<updated>2026-08-28T14:04:39+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-08-28T14:04:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=f457cff4f2648eee85d176f8a41861241d4e8428'/>
<id>urn:sha1:f457cff4f2648eee85d176f8a41861241d4e8428</id>
<content type='text'>
refs #3301</content>
</entry>
</feed>
