<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pardes.git/test/snapshots/tagnav.golden, branch main</title>
<subtitle>Pardes</subtitle>
<id>https://git.0x4200.cafe/pardes.git/atom?h=main</id>
<link rel='self' href='https://git.0x4200.cafe/pardes.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/'/>
<updated>2026-10-01T03:12:17Z</updated>
<entry>
<title>Config opens the startup file, DumpConfig the settings report, and the workspace tag reads Dump Themes Config Debug Exit</title>
<updated>2026-10-01T03:12:17Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-30T01:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=d4960472375ea68f709c56a677d8a37571419ff7'/>
<id>urn:sha1:d4960472375ea68f709c56a677d8a37571419ff7</id>
<content type='text'>
Config (SPC f c) opens init, found as the settings report finds it
(opts.startup_config_path: $XDG_CONFIG_HOME/pardes/init or
~/.config/pardes/init, and the macOS and Windows paths config.md gives). A
pane that already holds it is gone to instead; a file on disk is looked at;
with none, an empty pane is named for it, and Save makes its directory and
any above it first (File.make_dirs, fs.makeDirs) before writing. Without a
configuration directory it says so and opens nothing.

The report Config used to open, the startup path and every live setting, is
DumpConfig, in a +DumpConfig pane. No alias keeps the old meaning.

The workspace tag's default words put Themes where NextColor was, NextColor
staying a builtin, and Config beside it. A tag the user edited is kept as it
was: a dump stores only an edited one (topbar_custom), and a restore puts
back only that.

theme.snap types NextColor onto the workspace tag to click it, and tagnav's
walk back to Dump takes five long-word steps. The rest of the re-recorded
goldens differ in the workspace words and their widths only.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>The workspace tag's Restore word names the last dump, and the dump a Restore came from</title>
<updated>2026-10-01T03:12:16Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T15:28:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=54aaa0bce75e1f231d68647a9d7c0f052ed92f8e'/>
<id>urn:sha1:54aaa0bce75e1f231d68647a9d7c0f052ed92f8e</id>
<content type='text'>
Once the workspace tag was edited, its own text kept the Restore &lt;path&gt; of the dump at that time, stale after the next Dump; and a Restore dropped the path altogether (the new session had no last dump). A new dump now swaps the old path in the tag's own text, and a Restore points the word at the dump it read.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A tag that exactly fills its row stays one row, as acme's does</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T01:57:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=2586e804e4df670bf6a5072ec776d9fc00c1c4b9'/>
<id>urn:sha1:2586e804e4df670bf6a5072ec776d9fc00c1c4b9</id>
<content type='text'>
Tags wrapped one cell early to keep a cell for the caret past a full row,
so a tag that exactly filled its column broke as De / l. acme's frame wraps
a box only when it is wider than what the row has left, and frptofchar
clamps the tick past a full line's end to the frame's edge. Tags now wrap
at their full width; the caret past a full row sits at the tag layer's
edge, and on the pane's last cell in a terminal grid, which has none past
it. Two tiny-screen tests collapse their tags, as the others do, and the 41
goldens that moved were re-recorded by name after the same check: rows
shift back up under the shorter tags and nothing else changes. chordcut's
file-body clicks moved back with them.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Merge: 9P round 6 + empty columns + render (acme theme, grips, Lift, Motion)</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-29T01:32:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=d8d770454e77fbeeb0dd9c5e965a7eda6a5558ba'/>
<id>urn:sha1:d8d770454e77fbeeb0dd9c5e965a7eda6a5558ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Snapshots and GUI goldens run with the default Placement acme</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T22:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=6a49974e56521cf66c9a4d0eb579cd5de949891e'/>
<id>urn:sha1:6a49974e56521cf66c9a4d0eb579cd5de949891e</id>
<content type='text'>
Their clicks follow the panes to where acme's placement puts them; doccol and
splitparent stay on Placement pardes, which they cover.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A pane tag wraps onto rows and can collapse to one, as acme's does</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T22:36:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=1df6bd12fafbf97062f7844a23de208add75a843'/>
<id>urn:sha1:1df6bd12fafbf97062f7844a23de208add75a843</id>
<content type='text'>
acme's frame wraps a tag at its right edge and the window grows to show
every row (wind.c wintaglines); Tagup/Tagdown shrink it to one row and back.
Pane tags used to be one row, scrolled sideways to the caret. Now a tag's
lines wrap at its width (one cell kept for the caret past a full row) and it
starts expanded; insert-mode Up on the first row collapses it, Down on the
last row expands it, and Alt-Up/Alt-Down do so in either mode. A word the
wrap breaks across rows is still one word to a click and a selection.
Column and workspace tags keep scrolling sideways.

Tests read body rows relative to the body's first row; the 41 snapshot
goldens that moved were re-recorded by name after a programmatic check that
each differs only by body rows shifting under the taller tags, and twelve
scripts whose clicks targeted fixed rows now click the same text.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>A terminal's Tty word names its shell, Tty+fish, and a click on it opens another</title>
<updated>2026-10-01T03:12:15Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T17:28:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=010b123a88aa5278c499f83098c00bdbdb0093ce'/>
<id>urn:sha1:010b123a88aa5278c499f83098c00bdbdb0093ce</id>
<content type='text'>
A terminal's tag said Tty whatever shell it ran. The host's acknowledgement
of the shell it forked now sets the word to Tty+&lt;shell&gt;, tinted like the tag's
name. Word+arg is taken as Word arg, one word a tag can hold and a click can
take whole (+ is a word character), so Tty+fish opens a terminal on fish, as
Tty fish does; Tty takes the shell as its argument, which the host forks for
that pane instead of the configured one. Every snapshot whose screen shows a
terminal's tag changes: 69 goldens, re-recorded by name, whose 297 changed
lines are all Tty becoming Tty+bash (the harness runs bash), the cursor
columns and style spans that moved with it, or that text cut at a pane's
width.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Exit quits and Kill stops commands, as in acme</title>
<updated>2026-10-01T03:12:14Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T14:22:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=1c3842f136b9f98fae784559ec12d66d629c5909'/>
<id>urn:sha1:1c3842f136b9f98fae784559ec12d66d629c5909</id>
<content type='text'>
Kill quit the editor, which in acme is Exit; acme's Kill stops the
commands it started. Exit now quits as acme's does (exec.c, rowclean):
it refuses once, naming each pane with unsaved text, and quits when
asked again with nothing edited since (a small scratch is not asked
about). Kill, bare or with names, stops the commands pardes typed into a
terminal (an exec, a middle click, a pty/run) while their shell's marks
say they run, by SIGTERM to the terminal's foreground job, never to the
shell (acme posts the kill note, which terminates). Both are session
builtins; the topbar's Kill becomes Exit, same width, and every golden's
topbar row changed by exactly that word (checked line by line); the
builtins script scrolls one more row for the index's new line.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Make the column and workspace tags Texts with the pane tag's keys</title>
<updated>2026-10-01T03:12:14Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T03:13:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=42748f92b77367db415c8b4d0f2e537a9e1ddde7'/>
<id>urn:sha1:42748f92b77367db415c8b4d0f2e537a9e1ddde7</id>
<content type='text'>
The headers had their own one-line editor with its own keys: Enter always
executed, h/l and J/K moved between headers and panes, Ctrl-c/x/v cut and
pasted, and TagLine refused a newline that 9P accepted. They are now Texts
like a pane's tag, with no prefix and a default until edited, so normal and
insert mode, undo and the look and execute keys are the body's. Moving
between them is the window keys' job: Up from a pane with nothing above it
reaches its column's tag and then the workspace's, Down comes back, and
Left and Right walk the column tags.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Make a pane's tag a Text edited with the body's own keys</title>
<updated>2026-10-01T03:12:14Z</updated>
<author>
<name>Gabriel Schneider</name>
<email>gbrls@0x4200.cafe</email>
</author>
<published>2026-09-28T03:01:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0x4200.cafe/pardes.git/commit/?id=23f430573efe4f6ef55b0180aa0d742ff4eca1d9'/>
<id>urn:sha1:23f430573efe4f6ef55b0180aa0d742ff4eca1d9</id>
<content type='text'>
The tag was a fixed buffer with its own one-line editor, a cursor measured
across the path, and a hijack of the body's mode while it was typed into.
It is now the pane's second Text: its own characters after the computed
prefix (path, dirty marker, PDF page), which is never stored in it, so a
rename or a dirty marker never moves its cursor. Normal and insert mode are
the body's, undo included; `:` moves the keyboard between body and tag, the
tag remembers its cursor and starts on Save, and executing a word from it
hands the keyboard back. The mouse still sees the prefix: a sweep selects
across it and a click on the path drafts a new name.

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