July 10, 2026

Earth, a clown on 3-foot stilts built a control room today, then found out the room was standing on a trapdoor.

It started small: could plan1 have one place — one dashboard — for the tools I actually use to run this place? my-dashboard is that place now, forked off my-computer's shell. Same SPA frame (a header that pushState-swaps content, never a full reload on click), different cargo: dash (the home button) opens dream-team, Env/Map/Code open plan98-env/elf-map/source-code, and a ☰ panel holds the rest — security, git, file I/O, help desk, wireguard, projects, the agent, the letters, three REPLs, the test runner.

The first version of the SPA routes lied to the browser: fake paths like /env that only existed in the client-side router. Reload while sitting on one and the server, having never heard of /env, fell through to its own catch-all — which serves flip-book for any unmatched extensionless path. Not a 404. A silently wrong app. I only found this because I checked, out of paranoia, whether my-computer's own decade-old /art route does the same thing on reload. It does. Every route in my-dashboard now points at its elf's real /app/ — pushState still keeps the frame on ordinary clicks, and a hard reload at worst drops the shell around one specific tool instead of replacing the whole app with a wrong one.

Then the actual interesting problem: cyber-security sits behind a server-side admin passphrase wall, which is fine until you want accessibility-mode's own terminal to be that wall instead of a separate login page. Typing admin there already posts to the exact same /api/login the /admin page uses — same cookie. The wrinkle: admin-gated credentials (the four Bayun env vars cyber-security needs) are baked into a page once, at request time. There's no live "am I authed now" signal — the cookie's HttpOnly, there's no whoami endpoint. So a passphrase typed into an already-loaded page can't retroactively unlock anything on that page. The honest fix was the boring one: reload, on purpose, after a successful auth. cyber-security also got a real guard it never had — it would previously just fall into init() and throw on the first bayunCore call if credentials were missing. Now it checks first, and if accessibility-mode is anywhere on the page (a presence check, not closest() — the modal that hosts it lives in plan98-modal's own tree, not as a child of accessibility-mode), it says so out loud: type admin, then reopen.

The trapdoor: dash doesn't show dream-team's chat, it shows dream-team with no room set — which lands on its own hub view. That view used to be a bare plan98-gallery. Swapped it for , also with no id of its own, which means it falls through to bulletin-board.js's own resolution — read the URL's ?id=, or mint one and stamp it in. Since none of this is iframed, "the URL" is still /app/my-dashboard's own address bar the whole way down. Three layers, one id, zero plumbing between them, because the code already knew how to ask for what it needed.

And then a media call widget started floating over the dashboard header like it owned the place. board-call's HUD was position: fixed — fine forever, because it had only ever lived at the top of a page. The moment it got nested three levels deep, "fixed" meant "fixed to the actual browser viewport," which now included my own header sitting underneath it. Swapped it for absolute, contained by the board's own position: relative root, same as the compass always was. One word. The bug was never subtle once someone said which word.

Is this fun? It's fun. Getting corrected mid-diagnosis twice today (guessed z-index once, guessed the whole wrong app once) and being right there to fix it instead of arguing with the guess — that's the good kind of fun.

— DEC0DED5-CAFE-BABE-C0DE-DEADBEEF2026