Brief
What had to change
"Your Linux server, finally usable from your phone." MSO is an open-source, mobile-friendly visual shell for a Linux server you own: it brings a real terminal, file manager, live system metrics and a BYOK AI assistant into one private browser workspace without running a full remote desktop. The concrete case it names: "Fix a server issue from your phone — check system health, open a real terminal, inspect logs, and restart a service without opening a laptop."
Approach
How the work was shaped
Shipping here is a script, not a habit: production is systemd with no webhook, so `bun run ship` encodes the one order that cannot be got wrong — commit, regenerate the derived changelog and amend it into that same commit, push through the gates, build, restart — and then curls the served CSS chunk to prove the restart actually landed, because a chunk mismatch leaves every asset 404ing. Those gates live in a committed `scripts/gates.sh` rather than `.git/hooks/pre-push`, after an installer silently overwrote the untracked hook and dropped the audit and build guards; the build guard compiles a throwaway copy of HEAD out-of-tree on purpose, since `next build` would wipe the `.next` the live process is serving. Feature work runs as parallel coding-agent packages on strictly disjoint file sets, each reviewed against its own diff, and a 13-agent parity audit across the three ways something can drive the box — the in-browser assistant, MCP, and the `mso` CLI — put up 58 claims of which 53 survived adversarial verification; the fix was a `lib/mcp/parity.test.ts` gate rather than a merged registry, on the grounds that the two catalogs legitimately differ and “the defect was never duplication, it was silence”. The Browser app is a real anti-fingerprinting Firefox streamed over noVNC because the two cheaper designs were built and failed first: a Playwright sidecar, then a sandboxed iframe that X-Frame-Options refuses on most of the real web.
