History: README.md
Ref:
| Hash | Message | Author | Date |
|---|---|---|---|
| 1b15df83 | docs: add marketing documentation | a73x | 2026-09-09 |
| 8d4f4e41 | feat: add native local TCP forwarding | a73x | 2026-09-08 |
| cf196f16 | feat: fullscreen native panes | a73x | 2026-09-07 |
| c89f85dd | feat: open native panes on the focused target | a73x | 2026-09-07 |
| a5fc3918 | feat: align native split bindings with sway | a73x | 2026-09-07 |
| 9940d8fd | test: consolidate native end-to-end journey | a73x | 2026-09-07 |
| 86d04514 | feat: add native font fallbacks | a73x | 2026-09-07 |
| 73034a05 | feat: add native clipboard paste | a73x | 2026-09-07 |
| 30a49f6d | mise | a73x | 2026-09-06 |
| 03138bb4 | feat: forward native application mouse and clipboard writes | a73x | 2026-09-06 |
| d0151836 | feat: load Ghostty theme files for native appearance | a73x | 2026-09-06 |
| e9c4a928 | feat: configure native fonts and preserve them across display scales | a73x | 2026-09-06 |
| bb91afde | build: include muxg in release and install targets | a73x | 2026-09-06 |
| 4d48bfad | feat: mux d stop, dump and stats take --quic for a daemon whose socket is gone | a73x | 2026-09-05 |
| 106552cd | test: guard native raw-output responsiveness with release builds | a73x | 2026-09-05 |
| 04437bf9 | feat: restore native workspaces and manage pane lifecycle | a73x | 2026-09-05 |
| 3eab2a35 | feat: resize native pane dividers with mouse and keyboard | a73x | 2026-09-05 |
| 67a1e976 | feat: add native host and session pickers | a73x | 2026-09-05 |
| d903a815 | fix: align the native command prefix with mux | a73x | 2026-09-05 |
| c5e30b30 | feat: add independent native terminal panes | a73x | 2026-09-05 |
| 446f1a20 | fix: render native fonts at the display pixel scale | a73x | 2026-09-04 |
| f25e121b | docs: describe native viewer usage and verified delivery | a73x | 2026-09-04 |
| 01ef5e8a | docs: the transports are dumb; it is the frames that changed | 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 |
| c2344ddb | docs: record cells on the wire, its measurements and the clean break | a73x | 2026-09-04 |
| d6f7c2af | feat: Ctrl-\ X ends the focused pane's session through its own pump | 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 |
| 8f8ed018 | test: make xos attaches a Mac client to a Linux daemon and a Linux client to a Mac daemon, over ssh and QUIC | a73x | 2026-09-04 |
| 45b67e78 | test: make mac drives a pristine macOS guest on the Mac the way make vm drives the VM | a73x | 2026-09-04 |
| 8184693b | fix: no layout save at the exit, so two terminals stop clobbering each other | 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 |
| 5c9897e0 | feat: mux d upgrade HOST pushes this image over ssh and upgrades there | a73x | 2026-09-01 |
| 56a7de8e | feat: the label bar follows the tty, not the tile count | a73x | 2026-09-01 |
| 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 |
| 997290ad | docs: one start verb, one fork, one owner of the sun_path bound | a73x | 2026-08-30 |
| 502e12d7 | refactor: the daemon's foreground is `start`, and `-d` is what forks it | 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 |
| d7967ffa | fix: the small ones the review found — a hint, a note, a test, an install | a73x | 2026-08-29 |
| 5d9b51fe | refactor: the handoff recipe is an argv — ssh is exec'd, not a shell line | a73x | 2026-08-29 |
| 2843fee1 | docs: one binary, the exec that starts it, and the break it costs | a73x | 2026-08-28 |
| 3b301dee | docs: retire the superpowers specs/plans and the original handoff — git history keeps them | 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 |
| abe98fa0 | docs: an exited tile leaves the wall without a word | a73x | 2026-08-28 |
| 7d164858 | docs: the README says what the last tile's exit really does | a73x | 2026-08-28 |
| ce611141 | feat: a new tile takes the lowest free digit | a73x | 2026-08-28 |
| a6ebfe9a | docs: hosts live in a picker now | a73x | 2026-08-28 |
| afada8b8 | docs: the wall's empty-host paragraph said muxd exits on empty | a73x | 2026-08-28 |
| d825ab6a | docs: a daemon lives until muxd stop | a73x | 2026-08-28 |
| 2b544162 | refactor: the wall shows sessions only — stripes go | 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 |
| e63d80fd | feat: muxd upgrade — the new binary asks | a73x | 2026-08-26 |
| b7d2b15a | docs: the restore rule reaches the browser wall | a73x | 2026-08-26 |
| a5c2aba0 | docs: a session muxa can join is one that already exists | a73x | 2026-08-26 |
| e6735224 | docs: the session table is thirty-two, as the paragraph below already said | 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 |
| c48a660c | feat: Ctrl-\ : adds a tile by spelling from inside the wall | a73x | 2026-08-25 |
| 520a8baa | feat: the daemon holds thirty-two sessions, wall-sized again | a73x | 2026-08-25 |
| 60197678 | docs: the invariants learn the pane era and its sidecar | a73x | 2026-08-25 |
| e1a32296 | docs: the chord list learns the pane era | a73x | 2026-08-24 |
| 6c8c34de | feat: the prefix table learns splits, hjkl, and a resize mode | a73x | 2026-08-24 |
| f3100d58 | docs: the chord list stops describing zoom | a73x | 2026-08-24 |
| 5ccc50b8 | docs: the session list stops hiding under wire stats | a73x | 2026-08-23 |
| e439be23 | feat: a drag copies the text it crossed | a73x | 2026-08-22 |
| c2a60319 | feat: a click at the wall selects the stripe under it | a73x | 2026-08-22 |
| 38deccfb | fix: the -A preflight asks the agent, it does not just dial it | a73x | 2026-08-21 |
| 85152686 | fix: the review round's two should-fixes and four nits | a73x | 2026-08-21 |
| ddbd08e2 | feat: -A with no agent is refused, not kept silently | 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 |
| 6421ad25 | docs: the stripes follow the terminal at the next unzoom, not the signal | a73x | 2026-08-20 |
| d88f3df5 | docs: README and CLAUDE.md catch up — the wall is the product now | a73x | 2026-08-20 |
| 28cd9a55 | docs: the model ships — mux is the wall | 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 |
| 69be7cc3 | feat: one wall, one argv dialect — both binaries take both --sock spellings | 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 |
| 9dd3d5d9 | docs: mux wall in the README's wall section; wallview in the layer table | a73x | 2026-08-19 |
| 688b64f3 | fix: mux HOST finds a ~/.local/bin muxd on the remote | a73x | 2026-08-18 |
| 7c4367e8 | test: e2e — dynamic wall add/remove/reorder/restore; docs | a73x | 2026-08-18 |
| 80c68b96 | docs: side-channel passthrough, and what it measured | a73x | 2026-08-16 |
| 48349aee | feat(shellint): the OSC 133 injection is opt-in | a73x | 2026-08-15 |
| 11423676 | docs: agent surface shipped — decisions recorded, deferrals named | a73x | 2026-08-13 |
| aa247b30 | docs: M14 closed — ssh→QUIC handoff | a73x | 2026-08-12 |
| d587aa2c | chore: delete socket activation and contrib units — muxd start supersedes them | a73x | 2026-08-09 |
| b8b8af9c | docs: M9 prediction — the record | a73x | 2026-08-08 |
| a9c7aaf8 | docs: roadmap.md — the forward view in one file | a73x | 2026-08-08 |
| e5302436 | docs: README restructured as a quick start | a73x | 2026-08-08 |
| 8a005f3a | feat(m8): QUIC held on a real path — three legs of four; the record | a73x | 2026-08-08 |
| 09d21a4f | build: QUIC deps vendored and pinned — the spike's script grows up | a73x | 2026-08-08 |
| 531494b3 | feat(m7): reconnect held over the WAN — 10 tears, 10 delta resumes; the record | 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 |
| 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 |
| 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 |