One pass over the whole codebase so that a change lands in one place, state is explicit, nothing is copied, more is configurable, and tuios costs less CPU and memory. An audit listed every problem first. The fixes land as small pull requests, each reviewed before it goes in.
The audit changed nothing. Its findings became twelve root fixes, each written above the problems it removes. Workers build the fixes; the lead reads every diff and lands them in stacked batches.
Each pull request, by the root fix it belongs to. The band shows how many sit in each state; the chips below link to GitHub.
Each square is one planned step: filled when it has landed, outlined in colour when it has a pull request, grey when it is still planned.
Defaults, ranges, validation, CLI flags and the Settings copy come from one option table. After this, making something configurable is a one-entry change.
Four steps have pull requests; the remaining sections and the single constructor are next
Help, which-key, both palettes, tape and the GUI lists are derived from one table of actions, in place of nine hand-kept lists.
Sub-menu table, palette rows, copy-mode motions and CLI target flags have pull requests; the core table is next
internal/app tests drive the model through real input and read the screen. The model fuzzer now routes keys and mouse.
Fixture, fuzzer and e2e wait helpers have pull requests
A hook event costs a full tuios start today. The daemon runs the hook logic, and harnesses send the event over its socket.
Move, daemon verb, plugin harnesses and the command-hook forwarder have pull requests
Shell quoting, home expansion, atomic writes and friends each had 3 to 11 copies.
Four families have pull requests; the 113-file id shortener waits for a quiet window
One per-pane record with one transition table replaces 14 stores written from 8 files.
State package and harness aliases have pull requests; the track waits for guios and #1677
tuios owns the terminal write and diffs cells. The main CPU win, and the only fix with real behaviour risk.
Gate 1 passed on the benchmark. Gate 2, the live client, is running on arch-btw
136 client files import the 141k-line daemon package for its types. The client will push only its own layout type.
13 steps planned; the mechanical move needs a quiet window
38 open flags and four to six hand-kept lists that already disagree become one table and one stack.
Starts when the fixture and the action table are in
One struct per window, workspace, connection and gesture, each with one constructor and one drop.
Starts on top of the fixture
14 pickers copy the same query, cursor and scroll fields; 24 lists ignore the list keybindings.
Starts on top of the fixture
Remove comments that restate the code or tell bug history. Comments about things outside the code stay.
After the structure settles, one sweep per package
The test fixture comes first because the old tests set model fields directly, so every state change would rewrite hundreds of them. The option spec is what makes "everything configurable" cheap.
Benchmark on arch-btw, same machine and rounds for both paths. Each bar is the new cell path as a share of today's string path, which is the full width. Bytes written to the terminal are identical.
The tuios task board of the workers' session, as it stands. 36 cards.
Full Claude sessions in tuios panes. The lead (Fable 5.2) plans, reviews every diff and lands. Heavy test runs go to arch-btw.
Each fix has a test that fails without it. Three audit claims were checked and withdrawn as not bugs.