8 posts
Sessions
The daemon, its clients, and panes on other machines.
9 min readTesting, Sessions
The daemon sent a client an older state after a newer one
A flaky tuios test turned out to be the daemon delivering session state out of order. The first fix ordered by the state Version, and the review found the one kind of change that never moves the Version. The second fix counts every change.
5 min readAgents, Sessions
Two reads of one transcript took the daemon down
A tuios daemon on Windows died twice in one afternoon, with every pane in it. The trace ended inside encoding/json. Two goroutines were reading one agent transcript through one buffer, because stopping a timer does not stop a callback that has already started.
4 min readAgents, Sessions
tuios v0.8.0
The first release in six months. tuios now knows what the coding agents in your panes are doing, keeps your sessions in a daemon that brings them back, and runs panes on other machines.
7 min readSessions
TERM=dumb followed the session
A session created by a command with no terminal of its own gave every pane TERM=dumb for its whole life. A screenshot test found it by failing on CI with the same numbers every time.
15 min readSessions
The pane ran on another machine, and ctrl+D waited for the next keypress
tuios daemons now talk to each other over one ssh link per machine. It shipped in stages, and each stage had a bug that taught me something.
17 min readSessions
A PTY has one size, and two clients had two opinions about it
Two clients on one session each laid the panes out around their own chrome and fought over the shared shells. The fix, and the harness that found the rest.
8 min readSessions
A session switch forgot my column widths
Switching sessions and back reset a widened column in the scrolling layout and split stacked panes apart, because the session state saved the strip's offset and not its columns. The same gap had two clients on one session drawing different widths.
13 min readSessions
Session state was saved every 30 seconds and never read back
tuios wrote every session to disk from April and no daemon ever loaded it. Wiring up the read side, and then making reattached panes redraw correctly.