<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tmuxrdr.git, branch v0.9.3</title>
<subtitle>herdr but with less disrespect for the tmux community
</subtitle>
<id>https://git.soarez.net/sz/tmuxrdr.git/atom?h=v0.9.3</id>
<link rel='self' href='https://git.soarez.net/sz/tmuxrdr.git/atom?h=v0.9.3'/>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/'/>
<updated>2026-09-29T19:06:04+00:00</updated>
<entry>
<title>release: v0.9.3</title>
<updated>2026-09-29T19:06:04+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T19:06:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=7b116c05bfda646af39d2524c54e70c751f57ee8'/>
<id>urn:sha1:7b116c05bfda646af39d2524c54e70c751f57ee8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: prepare 0.9.3 release notes</title>
<updated>2026-09-29T18:59:32+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T18:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=70497262b8019ecedb796a9634d57b2b240df542'/>
<id>urn:sha1:70497262b8019ecedb796a9634d57b2b240df542</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: keep escape-prefixed terminal key bindings intact (#4759)</title>
<updated>2026-09-29T18:17:23+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T17:34:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=8e78f929d8f0306a5c68518969e90274c44cb1f0'/>
<id>urn:sha1:8e78f929d8f0306a5c68518969e90274c44cb1f0</id>
<content type='text'>
* fix: keep escape-prefixed terminal key bindings intact

refs #4751

* test: cover escape-prefixed option+backspace binding

refs #4751

(cherry picked from commit 898f733f92dbbe53c428845534b03adb573f92be)
</content>
</entry>
<entry>
<title>release: v0.9.2</title>
<updated>2026-09-29T13:10:47+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T13:10:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=48292af8e33a08c8030b7f1512c8d0da739f5ab1'/>
<id>urn:sha1:48292af8e33a08c8030b7f1512c8d0da739f5ab1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: prepare 0.9.2 release documentation</title>
<updated>2026-09-29T13:02:25+00:00</updated>
<author>
<name>Ogulcan Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T13:02:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=0d49b1c5c6e5dccd82c20d566b6224f3e8257c1f'/>
<id>urn:sha1:0d49b1c5c6e5dccd82c20d566b6224f3e8257c1f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: summarize old servers and saved machines after herdr update (#4722)</title>
<updated>2026-09-29T00:47:12+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-29T00:47:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=9dc3a1df2b563df0637264fc0dffcd607c324ac5'/>
<id>urn:sha1:9dc3a1df2b563df0637264fc0dffcd607c324ac5</id>
<content type='text'>
* fix: summarize old servers and saved machines after herdr update

* fix: include reconnect and per-session restart commands in update summary</content>
</entry>
<entry>
<title>fix: capture Windows host default colors at startup (#4710)</title>
<updated>2026-09-28T15:16:27+00:00</updated>
<author>
<name>JJ Liebig</name>
<email>jonathan.liebig@gmail.com</email>
</author>
<published>2026-09-28T15:16:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=d5680d84fd1df3b592424eae5c50d54642f0727d'/>
<id>urn:sha1:d5680d84fd1df3b592424eae5c50d54642f0727d</id>
<content type='text'>
refs #1530
refs #4369</content>
</entry>
<entry>
<title>docs: publish preview documentation</title>
<updated>2026-09-28T13:48:11+00:00</updated>
<author>
<name>kangal-bot</name>
<email>285672167+kangal-bot@users.noreply.github.com</email>
</author>
<published>2026-09-28T13:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=267d47fb571c0a5e771f2e31bdf6459d625d7459'/>
<id>urn:sha1:267d47fb571c0a5e771f2e31bdf6459d625d7459</id>
<content type='text'>
</content>
</entry>
<entry>
<title>perf: send scrolling pane output as row shifts and skip blank cells (#4711)</title>
<updated>2026-09-28T13:19:42+00:00</updated>
<author>
<name>Can Celik</name>
<email>ogulcancelik@gmail.com</email>
</author>
<published>2026-09-28T13:19:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.soarez.net/sz/tmuxrdr.git/commit/?id=80c0c07250d22f69d3fa05cb1700302d66180eb8'/>
<id>urn:sha1:80c0c07250d22f69d3fa05cb1700302d66180eb8</id>
<content type='text'>
* perf: send scrolling pane output as row shifts and skip blank cells

* fix: keep expanded scroll patches disjoint for the fast presentation path</content>
</entry>
<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>
</feed>
