diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 02:14:54 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:15 -0300 |
| commit | 5492da0ba1d5f1c1cc0a880f82107961627c9ba6 (patch) | |
| tree | 0230c6b9896d773c1e93722aa944a306184dd6a2 /.agents/skills/pardes-9p/SKILL.md | |
| parent | 69b6d714b7fc7788a1bf1c2305262a6e861253e8 (diff) | |
| download | pardes-5492da0ba1d5f1c1cc0a880f82107961627c9ba6.tar.gz pardes-5492da0ba1d5f1c1cc0a880f82107961627c9ba6.zip | |
Addresses snap to runes, not grapheme clusters
sam and acme address runes; pardes snapped #n, line:col, dot and data's
reads to grapheme clusters, so a lone combining mark or a CRLF's \r could
not be addressed. #n, line:col, a search's match, dot (both ways) and data
now land on rune boundaries (modal.runeStart and friends), and the tty's
cell drawing is untouched. The README, fs.md and the skill say so.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to '.agents/skills/pardes-9p/SKILL.md')
| -rw-r--r-- | .agents/skills/pardes-9p/SKILL.md | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 1142efa9..cc129d5c 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -311,7 +311,10 @@ as read acts on its text when the range is empty (the only way for a record at `0 0`). Chord reports need explicit handling. A record is `<origin><action><q0> <q1> <flag> <n> <text>\n` and its text may hold newlines: read `n` bytes of text, never up to the next newline (acme counts -runes; pardes counts bytes, as all its offsets are). +runes; pardes counts bytes, as all its offsets are). Every address lands on a +rune boundary, never inside one and never widened to a grapheme cluster: `#n` +or `line:col` inside a rune snaps back to its start, a match covers the runes +it touches, and a combining mark or a CRLF's `\r` is addressable alone. A Restore puts a new editor under every client: the Restore write is answered, then every connection is hung up (their fids name the old editor's panes); dial again, and the new log names the restored panes then |
