History: src/server/server.zig
Ref:
| Hash | Message | Author | Date |
|---|---|---|---|
| 8d4f4e41 | feat: add native local TCP forwarding | a73x | 2026-09-08 |
| ea49739c | merge: integrate gui text selection sprint | a73x | 2026-09-06 |
| 0716f07b | feat: keep native selections anchored as output scrolls | a73x | 2026-09-06 |
| f1d041f3 | refactor: separate daemon upgrade orchestration | a73x | 2026-09-06 |
| 6b45b04f | docs: reconcile appearance review and scope wheel scrolling | a73x | 2026-09-06 |
| 693d0382 | fix: notify QUIC peers before daemon shutdown | a73x | 2026-09-06 |
| d2323cb8 | fix: a burst of dials past the observer table waits in the backlog | a73x | 2026-09-05 |
| ede80939 | feat: a deleted socket path is logged and taken back within a second | a73x | 2026-09-05 |
| 67a1e976 | feat: add native host and session pickers | a73x | 2026-09-05 |
| 12cb9419 | build: the engine is its own module, and no client row links ghostty-vt | a73x | 2026-09-04 |
| f07a56c8 | feat: the wire carries cells; the replica is a grid and every painter reads it | a73x | 2026-09-04 |
| cefede26 | feat: term_modes carries the alternate screen and DECCKM, so the wheel rule needs no engine | a73x | 2026-09-04 |
| 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 |
| 808d5586 | refactor: every remaining std.os.linux spelling goes through an os row or std.c | a73x | 2026-09-03 |
| 602384a1 | refactor: a stale daemon image is an inode that moved, not a kernel suffix | a73x | 2026-09-03 |
| 94838e6a | refactor: the upgrade manifest rides server_os.anonFd | a73x | 2026-09-03 |
| ee157a2c | feat: the daemon holds 32 clients, one per wall tile | a73x | 2026-09-03 |
| c8463a07 | feat: sessions_reply says how many clients hold each session | a73x | 2026-09-03 |
| a500b0cd | feat: sessions_reply carries the daemon's version and a stale-image bit | a73x | 2026-09-02 |
| f2cf0821 | refactor: Session.freeOwned owns the memory teardown | a73x | 2026-09-01 |
| 6c06c07b | fix: reclaim the fd of an unadoptable agent socket at the seal point | a73x | 2026-08-31 |
| 4170920f | fix: agent sockets bind through serve and gain the successor guard | a73x | 2026-08-31 |
| 3b47d5d5 | refactor: the daemon socket binds through serve | a73x | 2026-08-31 |
| 54fd740a | dial.ask and a decoder for upgrade_reply | a73x | 2026-08-31 |
| 86beb855 | Remove the layer and folder-edge enforcement; keep the source bans | a73x | 2026-08-31 |
| ca93662f | Restore the claims the prose ratchets cut from src/server | a73x | 2026-08-31 |
| fcf6547b | refactor: the daemon's comments state the rule, not its provenance | a73x | 2026-08-30 |
| f5d1ebe4 | refactor: the daemon's replay-core decl lives where applyFrame does | a73x | 2026-08-30 |
| 9a21f071 | refactor: one term component — wire contract, engine, delta and replay core behind a single seam | a73x | 2026-08-30 |
| f8e1938d | refactor: the QUIC arm's suite is chained with the socket tests, not the cheap ones | a73x | 2026-08-30 |
| daa3bf69 | refactor: the daemon owns its command surface, shell integration, upgrade and QUIC arm as child files | a73x | 2026-08-30 |
| 502e12d7 | refactor: the daemon's foreground is `start`, and `-d` is what forks it | a73x | 2026-08-30 |
| 58a409f7 | refactor: one read-only poll slot, pollIn | a73x | 2026-08-29 |
| 449f80eb | refactor: one seating tail for both attach arms | a73x | 2026-08-29 |
| 32540415 | refactor: one occupied-slot count for the three live gauges | a73x | 2026-08-29 |
| 118384a1 | refactor: one counted send for both frame kinds and both fan-outs | a73x | 2026-08-29 |
| 8a3f8a6a | refactor: one counter struct, upgrade.Counters, on both sides of the exec | a73x | 2026-08-29 |
| 19e5c3c9 | refactor: Server.deinit tears down through teardownClient/dropObserver | a73x | 2026-08-29 |
| 24397e0d | refactor: one owner for "the frame at the front of this buffer" | a73x | 2026-08-29 |
| 1528c9b6 | refactor: one owner for "which file is the key" | a73x | 2026-08-29 |
| 9a6befa2 | refactor: one spelling for "drop n bytes off the front of a buffer" | a73x | 2026-08-29 |
| 8cc75997 | refactor: one owner for "this shell is standing in that session" | a73x | 2026-08-29 |
| f5298ecc | refactor: one owner for "make a hangup EPIPE, not a signal" | a73x | 2026-08-29 |
| 31bb70a8 | refactor: delete the four decls no product path calls | a73x | 2026-08-29 |
| a200479f | refactor: the new owners' prose says the fact once | a73x | 2026-08-29 |
| 289e83a4 | refactor: an observer's refusal is spelled once, not eight times | a73x | 2026-08-29 |
| 28e91371 | refactor: one owner answers the daemon's verbs, whichever table asked | a73x | 2026-08-29 |
| 26643ada | refactor: no bare `mux run` — the v15 probe refuses before that exec could happen | a73x | 2026-08-28 |
| 9ad104a9 | refactor: the daemon is `mux d`, the agent `mux a`, the hub `mux web` | a73x | 2026-08-28 |
| 907b6627 | refactor: modules live in the folder of what owns them | a73x | 2026-08-28 |