<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git/src/detect/mod.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-28T11:16:10+00:00</updated>
<entry>
<title>fix(windows): read agent command lines without PROCESS_VM_READ (#4708)</title>
<updated>2026-09-28T11:16:10+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-28T11:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=8c8cb49c237eec2f82192dd831ec7308905f2c0a'/>
<id>urn:sha1:8c8cb49c237eec2f82192dd831ec7308905f2c0a</id>
<content type='text'>
* fix(windows): read agent command lines without PROCESS_VM_READ

Windows process command lines were read by opening each process with
PROCESS_VM_READ and walking its PEB. Hardened runtimes (Electron/Node) and
security products deny that access, so those processes resolved to a bare
`node.exe`/`bun.exe` name with no argv, argv0, or cmdline. A runtime-wrapped
agent launched from such a process was then indistinguishable from an
unrelated runtime process, and the pane stayed on the shell with
`agent_status: unknown`.

Prefer `NtQueryInformationProcess` with `ProcessCommandLineInformation`
(Windows 8.1+), which needs only `PROCESS_QUERY_LIMITED_INFORMATION`, and keep
the existing PEB read as a fallback for processes that do not expose a stored
command line. The fallback still requires `PROCESS_VM_READ`, so this only
widens coverage.

refs #4579

* fix(windows): handle growing command lines before failure test

The retry added for a command line that grows between the size probe and the
read was unreachable. NTSTATUS is signed, so STATUS_BUFFER_OVERFLOW,
STATUS_BUFFER_TOO_SMALL, and STATUS_INFO_LENGTH_MISMATCH are all negative and
were treated as failures by the earlier `status &lt; 0` check.

Check the growth statuses first and retry once with the reported size. Also read
the returned UNICODE_STRING header unaligned, since a Vec&lt;u8&gt; buffer only
guarantees byte alignment.

* test(windows): keep command-line marker test process alive

Passing the marker as a second argument to `ping` let `ping` exit as soon as it
saw one target, so the command-line query could race the process exit. Move the
marker into a `rem` after `&amp;` so it stays in cmd.exe's own command line and
`ping -n 11` keeps the process alive for the read.</content>
</entry>
<entry>
<title>test: fix pane shell idle foreground-command race (#4691)</title>
<updated>2026-09-27T20:38:56+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-27T20:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=0d5d6f1f317e238c8297076bc6ab5c3a0cd56283'/>
<id>urn:sha1:0d5d6f1f317e238c8297076bc6ab5c3a0cd56283</id>
<content type='text'>
The interactive-shell idle test sent SIGINT as soon as it observed the
shell was busy. That condition can be true before the shell finishes
moving the command into its own foreground process group, so the
interrupt could arrive before the command reset its signal dispositions.
The command then survived in a stale foreground group while the shell
showed a prompt, and the pane was never observed idle again.

Run cat and end it with EOF instead. cat blocks on stdin, so the busy
state is stable, and EOF avoids the interrupt/job-control race.</content>
</entry>
<entry>
<title>feat: let agents report their own resume command (#4687)</title>
<updated>2026-09-27T17:57:00+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-27T17:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=2552d101afe46b8622a7695f38f6cd1766dd1afc'/>
<id>urn:sha1:2552d101afe46b8622a7695f38f6cd1766dd1afc</id>
<content type='text'>
* feat: let agents report their own resume command

* fix: keep reported resume commands tied to accepted sessions and current owners</content>
</entry>
<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 npm-installed omp on windows (#4502)</title>
<updated>2026-09-22T20:37:25+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-22T20:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=cd8306d7f35d6329d543944a0257b6bc4b297c8b'/>
<id>urn:sha1:cd8306d7f35d6329d543944a0257b6bc4b297c8b</id>
<content type='text'>
refs #4313</content>
</entry>
<entry>
<title>fix: preserve hook agent status across live handoff (#4493)</title>
<updated>2026-09-22T15:31:37+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-22T15:31:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=90b0e40ab31bbdde8803f17d0140c6f4b436694a'/>
<id>urn:sha1:90b0e40ab31bbdde8803f17d0140c6f4b436694a</id>
<content type='text'>
</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>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>fix: detect kimi npm shim on windows (#4053)</title>
<updated>2026-09-13T14:41:51+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-13T14:41:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=63ea2314b2b90c42f2bf5707d00de7a8ab622a10'/>
<id>urn:sha1:63ea2314b2b90c42f2bf5707d00de7a8ab622a10</id>
<content type='text'>
refs #3317</content>
</entry>
<entry>
<title>fix: detect cline launchers and idle states (#3959)</title>
<updated>2026-09-11T14:38:52+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-11T14:38:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=f3cbe03fdb07b860a4543c684fb81c5b346e6913'/>
<id>urn:sha1:f3cbe03fdb07b860a4543c684fb81c5b346e6913</id>
<content type='text'>
refs #2396</content>
</entry>
</feed>
