a73x

History: docs/decisions.md

Ref:

Hash Message Author Date
c64627bc docs: record the wall freeze and the single-target terminal client a73x 2026-09-05
d2323cb8 fix: a burst of dials past the observer table waits in the backlog a73x 2026-09-05
547a0911 docs: record the socket-path watch, its log trail and the QUIC admin door a73x 2026-09-05
5570679e fix: normalize retained control cells in snapshots and deltas a73x 2026-09-04
f429a992 fix: cell text carrying a control byte is refused at the decoder a73x 2026-09-04
fbbe3293 docs: the wasm figure is the final tree's, and the README quotes bytes per keystroke a73x 2026-09-04
ca7fac28 test: the bench bounds a keystroke's bytes, not a ratio the snapshot's size now dominates a73x 2026-09-04
c2344ddb docs: record cells on the wire, its measurements and the clean break a73x 2026-09-04
a9b26feb fix: an interior blank cell is a space on the wire, so a curses row stays one ascii run a73x 2026-09-04
519410b1 fix: the run header is a delta against the previous run, as SGR is a73x 2026-09-04
632d1166 feat: the daemon encodes a grid row as cells, and the size is measured a73x 2026-09-04
298bebbf docs: the release is one tarball per OS a73x 2026-09-04
39bf2478 docs: the macOS gates name their boxes, and the guest is provisioned a73x 2026-09-04
7e20404d docs: the Darwin spellings and the claims that had drifted past them a73x 2026-09-04
e542a342 docs: the Darwin arm, its measurements and the Mac e2e verdict a73x 2026-09-04
64c0073b feat: the daemon's Darwin arm a73x 2026-09-03
0c516740 Merge branch macos-port-step2: the platform layer (macOS port, step 2) a73x 2026-09-03
36800478 fix: the client's agent probe sends through client_os, and the review's comment repairs a73x 2026-09-03
dd868aeb docs: record the platform layer and the macOS measurements a73x 2026-09-03
ee157a2c feat: the daemon holds 32 clients, one per wall tile a73x 2026-09-03
e6fff02f fix: a tile's application reads mouse reports in its own coordinates a73x 2026-09-03
8184693b fix: no layout save at the exit, so two terminals stop clobbering each other a73x 2026-09-03
a641fbae fix: the picker asks the daemon to end a session instead of grading its list a73x 2026-09-03
31a7bd88 docs: correct the version caveat, the --via rule and the picker's close key a73x 2026-09-03
646ac14b docs: the wall is the layout a73x 2026-09-03
29cbd304 fix: a QUIC client sends CONNECTION_CLOSE on teardown, so a poll frees its slot at once a73x 2026-09-03
0aed35be fix: a successor reaps the pid-named leftovers a dead daemon or wall stranded a73x 2026-09-02
2843ffde docs: record the 2026-09-02 hygiene run a73x 2026-09-02
5c9897e0 feat: mux d upgrade HOST pushes this image over ssh and upgrades there a73x 2026-09-01
82749e3c docs: the gone-pane rule joins the wall invariant a73x 2026-09-01
56a7de8e feat: the label bar follows the tty, not the tile count a73x 2026-09-01
86beb855 Remove the layer and folder-edge enforcement; keep the source bans a73x 2026-08-31
8f9fef4e Remove the prose ratchets from the comment gate a73x 2026-08-31
15754bfd docs: the collapse traded a file's import ban for its module's grant a73x 2026-08-30
16ba9284 docs: the test order's comment claims only what the array does a73x 2026-08-30
600666bc docs: a module is an owned component, and the tables name one a73x 2026-08-30
9d410ec9 docs: ssh's prompts get a mux-painted place a73x 2026-08-30
702b0416 docs: ssh's stderr is mux's, and its last line is the reason a73x 2026-08-30
5e7caf2c docs: the handoff's policy is a table, and a warm miss pays once a73x 2026-08-29
145bed7e docs: the cold attach is one ssh run a73x 2026-08-29
354981fc docs: the wall is your hosts file, in the browser too a73x 2026-08-29
26643ada refactor: no bare `mux run` — the v15 probe refuses before that exec could happen a73x 2026-08-28
2843fee1 docs: one binary, the exec that starts it, and the break it costs a73x 2026-08-28
d22a2aa1 build: folder rule 4 reads production lines, not test bodies a73x 2026-08-28
7acef27e docs: mux hosts' sum-of-timeouts cost gets a decisions.md entry and a measured date a73x 2026-08-28
98a28017 docs: a split arrow key closes the picker — the trade-off, and the fix if it's ever wrong a73x 2026-08-28
7ab01fe3 docs: correct the claims this change made stale a73x 2026-08-28
2bf682e2 docs: mux HOST starts the daemon it did not find; nothing else does a73x 2026-08-28
7d164858 docs: the README says what the last tile's exit really does a73x 2026-08-28
6fe188fc fix: review round 1 — an unborrowed birth's copies have one owner a73x 2026-08-28
ce611141 feat: a new tile takes the lowest free digit a73x 2026-08-28
908ba6a1 fix: the picker's claim, its auto-close, and the help that still taught `:` a73x 2026-08-28
a6ebfe9a docs: hosts live in a picker now a73x 2026-08-28
d825ab6a docs: a daemon lives until muxd stop a73x 2026-08-28
77e31dd9 docs: the listing cost is a sum, and the upgrade answer is not chosen yet a73x 2026-08-28
0a0fefea docs: the wall lists daemons, and the tiles are their live sessions a73x 2026-08-28
3dcd8110 docs: review follow-ups — close_range barrier, observer idle deadline a73x 2026-08-27
ba2f646a docs: decide one read per readiness, and the seal after the last rollback a73x 2026-08-27
fc9c746e docs: the e2e runner, its register, and what running a group alone found a73x 2026-08-26
e032ef40 docs: the split, the first full coverage map, and the race it found a73x 2026-08-26
1baf9412 docs: why the upgrade is an exec and not a handover a73x 2026-08-26
aab60216 docs: what 32 sessions buys is names, not tiles on screen a73x 2026-08-26
4e7623ee docs: verify.js is where a page rule gets pinned, not a browser a73x 2026-08-26
597d8a35 fix: a shell you exited is not brought back by a zoomed tile a73x 2026-08-26
b7d2b15a docs: the restore rule reaches the browser wall a73x 2026-08-26
793707c9 docs: the bar's digit is position, not the session name a73x 2026-08-25
7ec78a84 docs: the local/remote split of a restored wall line a73x 2026-08-25
520a8baa feat: the daemon holds thirty-two sessions, wall-sized again a73x 2026-08-25
fad55914 docs: the whole tree stops telling stories a73x 2026-08-23
888e14a7 docs: the two worst narrators stop telling the story a73x 2026-08-23
76c34f89 feat: the doc gate holds every file to a byte budget a73x 2026-08-23
7e8bc30a docs: mode 2048 — why the daemon speaks the size report a73x 2026-08-22
23776a3b docs: the answer clock, its two rejected anchors, and the hub-owned frames a73x 2026-08-22
43b9ed13 review: pin what the blind path moved, and stop assuming leg 3's premise a73x 2026-08-21
38deccfb fix: the -A preflight asks the agent, it does not just dial it a73x 2026-08-21
d62bdb97 build: make release, tarred, so the exec bit survives a73x 2026-08-21
949cd17b docs: agent forwarding — opt-in, daemon-blind, latest wins a73x 2026-08-21
94f783e5 refactor: the whole-terminal path goes — every session is a tile a73x 2026-08-20
ae70f4ec check: comment claims are verified, not trusted a73x 2026-08-20
cb1e4946 test: the mutation notes name what the mutants actually did a73x 2026-08-20
28cd9a55 docs: the model ships — mux is the wall a73x 2026-08-20
9c9ccd0f refactor: one session's interaction is one interact.Core a73x 2026-08-20
411b6c25 docs: the wall file is attach history now a73x 2026-08-20
535ccca0 docs: the zoom is a lens — supersede the real-attach decision, retable the keys a73x 2026-08-19
c1798e71 docs: the wheel in the key table, and why the app owns the mouse a73x 2026-08-19
14b06705 docs: the wall's keys in the README, and why zooming is a real attach a73x 2026-08-19
b44db225 docs: MUX_SOCK/MUX_SESSION in the README, and why the loop is refused not escaped a73x 2026-08-19
c76c27a2 docs: Ctrl-\ w in the key table, and why the wall is a child process a73x 2026-08-19
020d91c1 docs: n and p in the key table, and why a lone session refuses to step a73x 2026-08-19
8d698839 docs: Ctrl-\ c in the key table, and why a switch is an attach a73x 2026-08-19
f1441c35 docs: Ctrl-\ is documented as a prefix, and the old decision says so a73x 2026-08-19
7c4367e8 test: e2e — dynamic wall add/remove/reorder/restore; docs a73x 2026-08-18
14ffe9c4 docs: record the selection lane's totality and history watermark a73x 2026-08-18
13ff6638 docs: record web copy/paste acceptance a73x 2026-08-18
d25d34dd docs: qualify web selection acceptance a73x 2026-08-18
ee627aff docs: record muxweb mouse selection a73x 2026-08-18
f09ed4f5 docs: clarify web clipboard text constraint a73x 2026-08-18
43b4f724 docs: record shared web clipboard semantics a73x 2026-08-18
80c68b96 docs: side-channel passthrough, and what it measured a73x 2026-08-16
2dd9158f docs: copy/paste discovery — measured, and it reorders the work a73x 2026-08-15
48349aee feat(shellint): the OSC 133 injection is opt-in a73x 2026-08-15
971a17e9 docs: M18 decisions, field verification, and what the version string cannot tell you a73x 2026-08-15
5d41e106 docs: review-round records; four passages caught up with the code a73x 2026-08-14
86003eb5 feat: valgrind 6c first run — clean bill; pin local stack to x86_64_v3 a73x 2026-08-14
ddefd581 docs: three cross-reference fixes in the hygiene doctrine a73x 2026-08-14
a61e6262 docs: soak numbers stated with their measured window a73x 2026-08-14
43fb76c4 docs: hygiene-kit doctrine — the table is the law, verdicts print, scopes stated a73x 2026-08-14
638786cd docs: two precision fixes in the zlint verdict wording a73x 2026-08-14
d529c286 tools: valgrind recipe for the QUIC/C stack + first-run record a73x 2026-08-14
ff178c4f docs: zlint trial verdict recorded a73x 2026-08-14
4e6962dd Merge branch 'feat/agent-surface' a73x 2026-08-14
af32c00c docs+build: record the diff-since deferral; the agent e2e becomes a gate a73x 2026-08-13
11423676 docs: agent surface shipped — decisions recorded, deferrals named a73x 2026-08-13
dc0a1f75 docs: simplify-round record; tools/collect.sh — the bundle in one go a73x 2026-08-13
431ce862 docs: M17 field verdict — kill criterion PASSED, two field findings a73x 2026-08-13
7c2b4725 docs: M17 close-out record; a recovered tile clears its stuck badge a73x 2026-08-13
5cc8660f docs: M16-a record — both deletions, and the readoption design lands where the commit body pointed a73x 2026-08-13
c37bc263 docs: M15 closed — 12 tasks, 37 commits, suite unchanged at 20/33, soak 10/10, regrade 3/3 at the unit layer, refused dial 15001ms→1ms a73x 2026-08-12
ca46fe0e fix: Task 4 follow-through — the third re-timed site, the inverted mechanism comment, narrowed error set a73x 2026-08-12
7bf74d2b fix: refused QUIC dial fails in ~1 RTT; quic:// attach budget is deadline_ms, not idle_ms a73x 2026-08-12
aa247b30 docs: M14 closed — ssh→QUIC handoff a73x 2026-08-12
82232063 docs: M13 closed — auto-start, muxd stop, error audit; regrade 3/3 caught a73x 2026-08-10
90487096 docs: M12 complete — the tty gate is open and graded a73x 2026-08-10
e09da54f fix: review conditions — soak refuses a dirty baseline; the scroll bug's true severity a73x 2026-08-09
ef95d950 docs: M11 close — convergence harness held 10/10, campaign table recorded a73x 2026-08-09
fa0eb22a docs: M10 record and roadmap close — cleared on the real box a73x 2026-08-09
7299fe80 docs: name which run each reproduction rate came from a73x 2026-08-08
b817dc93 docs: the transient had two causes, and neither story alone ever fit a73x 2026-08-08
9a3c7535 fix(wan): the authoritative clock was timing the wrong thing a73x 2026-08-08
ba62a7b2 test: pin the three QUIC fixes a mutation could still walk through a73x 2026-08-08
b8b8af9c docs: M9 prediction — the record a73x 2026-08-08
8a005f3a feat(m8): QUIC held on a real path — three legs of four; the record a73x 2026-08-08
5cb25cf4 spike: QUIC stack chosen — ngtcp2 + wolfSSL builds static-musl under the pinned toolchain a73x 2026-08-08
531494b3 feat(m7): reconnect held over the WAN — 10 tears, 10 delta resumes; the record a73x 2026-08-08
f6a54d28 feat: transport death is a non-event — reconnect with have_seq, resume by delta a73x 2026-08-08
b296da2b fix: muxd run refuses a live socket instead of stealing it a73x 2026-08-08
49996784 feat: latest-wins follows input activity, matching the cited tmux semantics a73x 2026-08-08
024048ae docs: M6 transport verdict — the swap held, measured; milestone complete a73x 2026-08-08
65f76187 feat: session epoch fences have_seq across daemon restarts a73x 2026-08-08
909a0377 feat: two-client e2e and demo; docs: resize decision recorded — M5 complete a73x 2026-08-08
d890ac97 feat: bytes-on-wire bench gates the M4 kill criterion; docs a73x 2026-08-08
9ea510f6 test: kill-reattach e2e; docs: M3 decisions and usage a73x 2026-08-08
57da0875 fix: clean daemon shutdown on SIGINT/SIGTERM; attach takeover; audible client exits a73x 2026-08-08
16c40066 feat: systemd user units; docs: M2 decisions and usage a73x 2026-08-08
076d28eb feat: muxd run/dump wired through poll loop; e2e passes a73x 2026-08-08