<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pardes.git/src/main.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-02T03:56:05Z</updated>
<entry>
<title>pardes --wait with no FILE says it needs one; --detach over a name another session's socket holds (a plain session is named by its pid) says so plainly, and any other failure of it in words, never a Zig error trace</title>
<updated>2026-10-02T03:56:05Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-02T03:56:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=6637d8df988f8cff9d054c39d3781f4a1ede3b8e'/>
<id>urn:sha1:6637d8df988f8cff9d054c39d3781f4a1ede3b8e</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>`pardes --wait` whose $PARDES_9P no longer answers says the session is gone, exit 1, instead of drawing a screen of its own in the asker's terminal</title>
<updated>2026-10-01T13:46:01Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T13:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=25844b54fd08dd9cadff2275f2161ee5dd316395'/>
<id>urn:sha1:25844b54fd08dd9cadff2275f2161ee5dd316395</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A +Pager keeps its program's colours: the session parses what /pager is written after its directory with ghostty-vt, SGR becomes spans drawn over the plain text, every other escape is dropped, and PagerColor off pages it plain</title>
<updated>2026-10-01T13:36:28Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T13:09:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=edad6d960dc0fc1165cbb3b801e0538045b2247f'/>
<id>urn:sha1:edad6d960dc0fc1165cbb3b801e0538045b2247f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>`pardes --wait FILE` with $PARDES_9P set but no pane of its own (an agent's or a script's EDITOR) asks that session and waits there, not a screen of its own</title>
<updated>2026-10-01T11:53:11Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T11:44:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=94f6090603e9c9f611a01335bd4eca480b00db76'/>
<id>urn:sha1:94f6090603e9c9f611a01335bd4eca480b00db76</id>
<content type='text'>
Forwarding asked for $PARDES_PID and $PARDES_PANE, which only a pane's
shell has, so a client that talks to a session from outside its panes
got a full editor drawn in its terminal. With --wait and $PARDES_9P
alone, the file is looked at through the session's root look and the
wait is for that pane's del.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Restore reads a clean file from disk, and an unsaved one whose file changed since the Dump is said changed, its first Save asking before overwriting it</title>
<updated>2026-10-01T11:53:11Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T10:56:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=6c82d06cd2a15d724b8e82e1128fa15dc9e35d05'/>
<id>urn:sha1:6c82d06cd2a15d724b8e82e1128fa15dc9e35d05</id>
<content type='text'>
A Restore put back the dump's copy of every file pane and armed the
watch with the disk as it now was, so a file changed on disk after the
Dump came back as its old text, marked clean, and the next Save wrote
the old text over the new without a word.

A clean file pane's text is now not in the dump: Restore reads its file
(an older dump's copy is read past too, and used only when the file is
gone). An unsaved pane keeps its text once, base64, the plain copy beside
it dropped, with the hash of the file it was read against
(`disk_hash`); a Restore that finds another there says the file changed
on disk, and Save asks once before overwriting it, as for a change seen
while it was open. file_watch.zig's own tests were never collected (no
test root imported it): main.zig's test block does now, and the restored
watch test says what a clean restore now reads.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A file name with a newline is refused naming it once: `pardes: two\nlines.txt: a file name is one line...`, not `a file name: a file name ...`</title>
<updated>2026-10-01T10:16:43Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T09:52:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=4178fdf514b637cafde6325086e0ce66e2cafaa2'/>
<id>urn:sha1:4178fdf514b637cafde6325086e0ce66e2cafaa2</id>
<content type='text'>
The refusal's subject was the words "a file name", and its reason
began with them again. It now names the name given, its newline shown
`\n`, as /log and /index show one.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>/pager resolves its directory, `~` and `..` alike, and refuses one that may not be written, permission denied; `pardes -` from such a directory pages into the session's</title>
<updated>2026-10-01T10:16:43Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T09:28:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=c9e5c77eb9a20d7012ee972727f250f3a2fb95cc'/>
<id>urn:sha1:c9e5c77eb9a20d7012ee972727f250f3a2fb95cc</id>
<content type='text'>
`/tmp/../etc` named a +Pager `/tmp/../etc/+Pager`, a second one beside
`/etc/+Pager`, and `~/x` was refused as relative. The directory is now
home-expanded and resolved before it is checked, and one that may not
be written is refused as a file's name there is (fs.deniedAbove).
`pardes -` run in such a directory (`git log` under /usr/src) asks for
the session's +Pager instead, so its text is still paged.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A name under a directory that may not be searched or written is refused, permission denied, and a Save there says so, not no such directory</title>
<updated>2026-10-01T08:18:09Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T08:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=250db41743f77ce3d8421f729bdea0065aa6bc79'/>
<id>urn:sha1:250db41743f77ce3d8421f729bdea0065aa6bc79</id>
<content type='text'>
`pardes noperm/a/b/c` and `pardes /proc/1/root/x` took the missing
directory for one Save would make, opened a pane and exited 0; its Save
then said "no such directory". fs.deniedAbove finds the nearest
directory there and asks whether it may be searched and written:
forwarding refuses such a name, exit 1, "permission denied", and a
failed Save says "permission denied", which the writer's 9P error
carries as EPERM (9ns: EACCES).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>`--` ends pardes's options: `pardes -- -dash.txt` opens the file named -dash.txt</title>
<updated>2026-10-01T07:58:26Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T07:58:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=36fe45e3a4a7ce9b61ab7bf2df07f0132a9170c1'/>
<id>urn:sha1:36fe45e3a4a7ce9b61ab7bf2df07f0132a9170c1</id>
<content type='text'>
It said `no such option: --`. What follows `--` is a name, one at most,
as for any other positional.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>--wait waits on the pane its look answered, read on the look's own open, not one found again by name in /index</title>
<updated>2026-10-01T07:03:06Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T07:00:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=9ac223e5436a9f5831c97382270dedbf9f13277d'/>
<id>urn:sha1:9ac223e5436a9f5831c97382270dedbf9f13277d</id>
<content type='text'>
The forwarded look was a write and nothing more, and --wait then
looked its file up in /index. /index shows names escaped (`\\` for a
backslash, `\xNN`), so a file named with one matched no pane and
--wait exited 0 at once, as if the pane were already closed. The look
is now asked on one open (Client.ask) and its answer is the pane
waited on; /index by name stays only for a look that answers none.

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