82749e3c
docs: the gone-pane rule joins the wall invariant
a73x 2026-09-01 10:58
Commit message
CLAUDE.md
| Old | New | ||
|---|---|---|---|
| @@ -141,7 +141,11 @@ own. Test fixtures in `test/`: | |||
| 141 | ride out a blip rather than vanishing. Only a host's OWN list may take a | 141 | ride out a blip rather than vanishing. Only a host's OWN list may take a |
| 142 | pane: a saved pane on a host that answers nothing stays, wearing | 142 | pane: a saved pane on a host that answers nothing stays, wearing |
| 143 | `unreachable`, for as long as the box is dark — an eight-pane setup is | 143 | `unreachable`, for as long as the box is dark — an eight-pane setup is |
| 144 | not worth one quiet machine. `--via` and `mux a` record no host. | 144 | not worth one quiet machine. A saved pane whose REACHABLE host answers |
| 145 | without its session stays too, wearing `gone` — the host said no, not | ||
| 146 | nothing — until Enter re-creates the session in that pane's own rect or | ||
| 147 | `x` dismisses it; every other key at a gone pane is eaten. A wall of | ||
| 148 | only gone panes is not empty. `--via` and `mux a` record no host. | ||
| 145 | Nothing re-creates a session: a daemon restart heals to what that daemon | 149 | Nothing re-creates a session: a daemon restart heals to what that daemon |
| 146 | now has, which for a fresh daemon is session `0`. | 150 | now has, which for a fresh daemon is session `0`. |
| 147 | `client.hosts.load` is strict — a bad line refuses `mux` with rc 2 and prints | 151 | `client.hosts.load` is strict — a bad line refuses `mux` with rc 2 and prints |
docs/decisions.md
| Old | New | ||
|---|---|---|---|
| @@ -7732,3 +7732,19 @@ session never wrote. | |||
| 7732 | tile labels before joining pumps (defers run last-declared-first) — a | 7732 | tile labels before joining pumps (defers run last-declared-first) — a |
| 7733 | use-after-free that was invisible while a solo pump never painted its | 7733 | use-after-free that was invisible while a solo pump never painted its |
| 7734 | bar, and a segfault the moment it did. | 7734 | bar, and a segfault the moment it did. |
| 7735 | |||
| 7736 | ## 2026-09-01 — gone panes: placeholders over auto-start | ||
| 7737 | |||
| 7738 | Measured: after a daemon restart, the seeded wall painted its saved cut at | ||
| 7739 | byte 46 of the capture and collapsed it on the first poll answer (~1s) — | ||
| 7740 | the flash the seed was built to remove, surviving in the one path where a | ||
| 7741 | reachable host disowns a saved session. Chosen: dress those panes `gone` | ||
| 7742 | (reversible, pending stays set), Enter re-arms the same tile as a creating | ||
| 7743 | attach in its rect, `x` dismisses. Rejected: auto-starting shells (bends | ||
| 7744 | "nothing re-creates a session" without a keypress; layers on later as | ||
| 7745 | Enter-on-all), and keeping the collapse (the user's stated expectation is | ||
| 7746 | the wall they left). Spec: docs/superpowers/specs/2026-09-01-gone-panes-design.md. | ||
| 7747 | Landing it also fixed two recorded heal defects — a heal now keeps the | ||
| 7748 | survivor's weights and the container's orientation, because nothing | ||
| 7749 | collapses so nothing re-wraps (measured in the e2e heal leg's sidecar | ||
| 7750 | pins). | ||