<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pardes.git/src/panes.zig, branch release-0.24</title>
<subtitle>Pardes</subtitle>
<id>https://git.0x4200.cafe/pardes.git/atom?h=release-0.24</id>
<link rel='self' href='https://git.0x4200.cafe/pardes.git/atom?h=release-0.24'/>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/'/>
<updated>2026-10-01T20:47:47Z</updated>
<entry>
<title>A look at a directory opens a pane listing it, as acme's directory window: named dir/, its entries in acme's columns (bytewise, dotfiles kept, a directory's marked /), a look at an entry from there, Get or a look again reads it again, never dirty, Save refused; DirLook terminal keeps ls in a terminal</title>
<updated>2026-10-01T20:47:47Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T20:36:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=2dbb047a82523c578cb511058c6e1b745cfc8073'/>
<id>urn:sha1:2dbb047a82523c578cb511058c6e1b745cfc8073</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A +Pager pane whose text is a diff is drawn and looked at as a diff, as a diff command pane is: git diff, show and log -p page into review</title>
<updated>2026-10-01T04:35:12Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T04:14:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=e6ff64843b4a8986e9740c576f346690217cf5a7'/>
<id>urn:sha1:e6ff64843b4a8986e9740c576f346690217cf5a7</id>
<content type='text'>
With git paging into +Pager, a diff arrived as plain text: no colour
for its sides and a right click on a hunk line searched the word. A
+Pager pane now notes, as its text is set, whether its first 64 KiB
holds a diff header or a unified hunk, and such a pane takes the diff
highlighting and the diff look every diff pane has.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A command run from a pane gets acme's $winid, the serial of the pane it was run from; one from a column's or the workspace's tag gets none</title>
<updated>2026-10-01T03:12:18Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T02:32:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=48c129a701d60abdb836bbb400d949cc61ed2820'/>
<id>urn:sha1:48c129a701d60abdb836bbb400d949cc61ed2820</id>
<content type='text'>
PARDES_PANE names the command pane itself, so a script a click ran had
no way to address the pane it was run in, as acme's win scripts do with
$winid. The command pane now remembers that pane and its child gets
winid set to it; a header tag's command, which no pane owns, gets winid
unset. PARDES_PANE is unchanged.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Terminal.zig is terminal.zig: a file of functions and no fields takes a namespace's lowercase name</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T23:56:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=04b047fb366ea2c595708fb62467f690fce4b9ec'/>
<id>urn:sha1:04b047fb366ea2c595708fb62467f690fce4b9ec</id>
<content type='text'>
The last of the deferred renames, now that the tty and theme agents have landed: panes.terminal at its importers, the alias lines in Text.zig and File.zig and panes.zig's own uses following. dump.zig's Terminal struct, a dump record, is not this. The served sources list and docs/design.typ name the new file. test/perf.zig's references change, so the three perf baselines take its new harness id with their numbers as recorded. No behaviour changes.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Mini.zig is mini.zig: a file of functions and no fields takes a namespace's lowercase name</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T23:25:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=2b388888348860097967ae04d03f68c00a70472c'/>
<id>urn:sha1:2b388888348860097967ae04d03f68c00a70472c</id>
<content type='text'>
The naming the split agreed on, deferred until now; panes.mini is its name at its importers. File.zig keeps its alias line (const Mini = panes.mini) so the file another agent is working in changes by that line alone. The served sources list and docs/design.typ name the new file. No behaviour changes; test/perf.zig's two references change, and since the perf harness is keyed by its own text, its three baselines are recorded again (under other agents' builds, so a little slower).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A shell that cannot start fails Tty and pty/ctl exec with why, before either answers</title>
<updated>2026-10-01T03:12:16Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T12:51:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=ad3403adb72e3457eb76d6b3fc91cf8df3d738ae'/>
<id>urn:sha1:ad3403adb72e3457eb76d6b3fc91cf8df3d738ae</id>
<content type='text'>
A shell whose exec failed (a script's missing interpreter) was reported
started: Tty and pty/ctl exec succeeded, then the pane died. The child now
reports a failed chdir or exec through a close-on-exec pipe the parent
reads before acknowledging the shell; the host's spawn fails with the
reason (`shell not found`, ENOENT), which fails the waiting write. A Tty
whose first shell never ran leaves no pane; a terminal restarted by
pty/ctl exec keeps its pane.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A shell given a directory is not taken to be in this process's before it has spoken, so it logs no rename to the session's and back</title>
<updated>2026-10-01T03:12:16Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T12:03:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=78d6f64e72be2a22c40feaf012636bc8f04d46de'/>
<id>urn:sha1:78d6f64e72be2a22c40feaf012636bc8f04d46de</id>
<content type='text'>
Each host read /proc/&lt;pid&gt;/cwd right after forking the shell and at every
frame after; before the shell's chdir that says this process's directory,
a rename to it, then the real one a frame later, a rename back. A shell
given a directory is named by it already (newShell) and is no longer
asked at fork; and until it has printed anything, an answer naming this
process's directory is not taken.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Tty in a missing directory fails and makes no pane; a shell that never started answers runs</title>
<updated>2026-10-01T03:12:16Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T11:02:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=0ec8d0dc6217486446f2fe2156dff136173a4ef5'/>
<id>urn:sha1:0ec8d0dc6217486446f2fe2156dff136173a4ef5</id>
<content type='text'>
The host could not start the shell (its chdir failed), and the pane stayed
with no pty: a run written to it waited for a prompt for ever. Tty now
refuses a directory that is not there, `Tty: &lt;dir&gt;: no such directory`,
before making a pane; and a terminal whose shell the host could not start
(Pardes.shellFailed, from each host's spawn) answers any run with
`error shell gone`.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A send to Python's REPL runs once, the Enter after the paste, not in it</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T02:38:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=8469def61324feb5e278f88bebad36af7a0d997e'/>
<id>urn:sha1:8469def61324feb5e278f88bebad36af7a0d997e</id>
<content type='text'>
A one-line send (print(1)) to Python 3.14 stopped at ... and needed another
Enter: its REPL takes a bracketed paste, and an Enter read in the same read
as the paste is part of the paste, one line or not (checked in a real pty).
Into a REPL that asked for bracketed paste, the Enters (two for an open
block) now wait for its next output, its answer to the paste, or 250 ms
with nothing. fs-test runs python3 in a real pty and checks a one-line exec
prints at once; the docs' pty/data recipe says to send the Enter apart.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Del and Delcol refuse unsaved text once, as acme's do</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T02:26:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=fd448801b83bdddf27a1d9af17bf8581356b2b35'/>
<id>urn:sha1:fd448801b83bdddf27a1d9af17bf8581356b2b35</id>
<content type='text'>
acme's Del asks winclean first and Delcol colclean (exec.c del, delcol):
unsaved text is warned about, and the same word again closes. pardes closed
at once. Both now refuse once through the one-warning-per-word mechanism
Exit uses, from keys, tags, exec and ctl alike. A pane dirty only by a
rename, or an empty one that never held a file, has no text to lose and is
not asked about, and a scratch or a command's output under 100 bytes is not
either, as acme's winclean passes a small unnamed window.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
