<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pardes.git/src/ninep/events.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-01T23:50:11Z</updated>
<entry>
<title>An exec written back to event on a diff line (MX0 0) takes the word there, a header's, a hunk header's or the marker's, never the address; only a look takes it</title>
<updated>2026-10-01T23:50:11Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T23:47:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=4bdeee602d1e642582ce91fdbd0da210797894e9'/>
<id>urn:sha1:4bdeee602d1e642582ce91fdbd0da210797894e9</id>
<content type='text'>
Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Tab N sets a tab's width in cells, 1 through 16, in every pane, drawn and counted (wrapping, clicks, the cursor); bare Tab says it; the ctl read and a Dump keep it</title>
<updated>2026-10-01T22:57:27Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T22:20:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=2868516c215a96d9e1e933ded7ac5744ec16c368'/>
<id>urn:sha1:2868516c215a96d9e1e933ded7ac5744ec16c368</id>
<content type='text'>
A session setting, not acme's per window: the width is read by File's pure
width functions (~130 callers that are given no pane), so it is one value,
config.tab_now, that Runtime.apply sets and a new session resets. A file:L:C
column counts runes, as compilers do, and never depended on it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A msg record carries what was said, not the message row's clock: `msg 21 dumped themes ...`, no `04:39:41  ` before it</title>
<updated>2026-10-01T08:18:09Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T08:12:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=6ec5935396f2a5584f464bb256de88c501ab6bf1'/>
<id>urn:sha1:6ec5935396f2a5584f464bb256de88c501ab6bf1</id>
<content type='text'>
Messages a host stamps (saved, reloaded, dumped themes) went into the
log with their clock and its double blank. The log has no times;
noteMessage records the words after the stamp (Message.body).

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A log follower hears every record queued before a Restore: the read it holds takes all that fit, before the hangup cuts it</title>
<updated>2026-10-01T06:04:35Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T06:04:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=422ad65025edd994b04728632fc96de4ebda07f7'/>
<id>urn:sha1:422ad65025edd994b04728632fc96de4ebda07f7</id>
<content type='text'>
A follower reads one record per read, and a Restore hangs every client
up, so records queued just before it -- the ones a script most wants,
what led up to the Restore -- were lost: the read after the first was
cut. Before the cut, each held read of /log is answered with every
whole record queued that fits it.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>An event write-back refuses an origin not E, F, K or M, and a number past what a range holds, EINVAL with why</title>
<updated>2026-10-01T04:35:12Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T04:31:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=3f3c5981769168674b974f44e7e187dc688b83d6'/>
<id>urn:sha1:3f3c5981769168674b974f44e7e187dc688b83d6</id>
<content type='text'>
A record from origin Q was taken as any other, and an offset past
2^32 was clamped to the largest one and acted on. Both are now
refused before anything runs, the overflow as "bad number"; a range
past the end was and is EINVAL too.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>An event record is delivered in pieces to reads shorter than it, so a bash read loop on event works</title>
<updated>2026-10-01T04:35:12Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T04:03:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=f453e3c3014ec578bbe6601a141134ce034185ff'/>
<id>urn:sha1:f453e3c3014ec578bbe6601a141134ce034185ff</id>
<content type='text'>
A read shorter than the record waiting was refused EINVAL, and bash's
read, a byte at a time on a file it cannot seek in, failed on the
first record. A short read now takes the record's front and the next
read the rest, as log and pty/data already did and acme allows. A
unit test reads two records a byte at a time; selfmount runs a bash
read on event through the mount.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A ctl refusal quotes the offending word alone, everywhere: wrong #args in control message "Newcol", not "Newcol 2"</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T02:22:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=e3cf9c1ffb54a64ee519f02afec17e6859ef8242'/>
<id>urn:sha1:e3cf9c1ffb54a64ee519f02afec17e6859ef8242</id>
<content type='text'>
Some refusals quoted the whole line, arguments and all ("Newcol 2",
"Verbose maybe", "lock x"), others the word alone ("Theme", "Mount"),
so a script matching one could not match the other. Every ctl
refusal, the root's, a pane's and a column's, now quotes the message's
word alone, and one too long to quote whole gives up its middle.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>An event reader whose pane closes reads EOF, not ENOENT</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T02:10:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=bcd8388d74e29398cb528206b05fd9491a4d4153'/>
<id>urn:sha1:bcd8388d74e29398cb528206b05fd9491a4d4153</id>
<content type='text'>
A script following a pane's event in a loop ended in an error when the
pane went, though nothing had gone wrong: the pane was simply done. A
read on an event open whose pane has closed now answers no bytes, the
end a pipe's reader sees when its writer goes, so cat and while-read
end cleanly. pty/data keeps acme's answer.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>/index and the log escape a control byte, DEL or C1 in a name as \xNN, as they do a byte not UTF-8, so the name decodes to what it is</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T02:05:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=d5054831d48c8cf400383ad8d842462bf2c203f8'/>
<id>urn:sha1:d5054831d48c8cf400383ad8d842462bf2c203f8</id>
<content type='text'>
A control byte in a name read as a space, so /index could not be
decoded back to the name the name file now accepts (\x07 and a space
read the same). Every byte a name holds that is not printable UTF-8 is
now \xNN there; a message's text keeps spaces.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A builtin refused when its record is written back through event fails that write, EIO and its err, as fs.md says</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-10-01T02:03:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=a628330543d1c2a0b29062036f23b1c74e4ccc6e'/>
<id>urn:sha1:a628330543d1c2a0b29062036f23b1c74e4ccc6e</id>
<content type='text'>
A Del refused over unsaved text, written back by an event reader, said
so on the message row and answered the write ok, so the script that
wrote it could not tell. The write-back now captures failures as an
exec write does: the first one fails the write with its words and the
errno they read as.

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