From 369bfddaa25120c96ad41813b2d728873f1e7a0f Mon Sep 17 00:00:00 2001 From: teahubxyz Date: Wed, 14 Oct 2026 17:05:36 -0700 Subject: [PATCH] decisions: hb-5 is the shell; Boring shows pictures --- docs/decisions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/decisions.md b/docs/decisions.md index b9f26b1..7509867 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -48,3 +48,4 @@ Format: date · decision · why. Add at the bottom. Never edit an old entry; sup - 2026-10-14 · **Pages also runs privately on hb-5, and the maths site lives there.** At the operator's word, maths.teahub.xyz stays off the internet and is served on hb-5 only. It's the same `pages/server.py`, run from a checkout in `~/local-pages/teahub` under launchd `xyz.teahub.local-pages` and bound to `127.0.0.1:8093` (new `PAGES_HOST`; prod keeps 0.0.0.0). It reads `matcha/maths` straight from the old local Gitea's storage (`file://`, `safe.directory` through `GIT_CONFIG_*`, no token) and pulls every 30 s: `maths.localhost:8093` → `matcha/maths#main/site/public`. The tea-garden page, which existed only in `~/sites/maths`, is now in the repo (maths 08aeaf2). Token 39 (`localpages-20261014`) pushed this and is deleted by id right after; the table is checked. Why: the operator looks at it in the Mac's browser, and a push to the repo should be all it takes. - 2026-10-14 · **Pages serves byte ranges and media types.** `.mp4`/`.webm`/`.mp3`/`.m4a`/`.wav`/`.zip` get real content types, and a single `Range: bytes=` request gets a 206 (416 when it's out of bounds), with `accept-ranges: bytes` on every file. Safari won't play a video without ranges, and the maths site's tea-garden film is the first video on pages. Token 40 (`range-20261014`) pushed this and is deleted by id right after; the table is checked. Why: video on a pages site should just play. - 2026-10-14 · **Orgchain: Super Testnet in lineage's clothes, at lineage.yolopreneur.lol/orgchain/.** The same lab and code as supertestnet.lol, restyled with lineage's tokens (concrete, black rule, hazard yellow, monospace) and a rehearsal guide: root, birth (the parent is spent to make each child), generations and badges, as inscriptions; graduation and closing are named as not in the lab yet. Source is branch `orgchain` on `supertestnet/app` (`6d48c5c`; `ORGCHAIN.md` says how to rebuild). The build lives at `ventures/lineage/orgchain/` on time's `gh-pages` (`280d6a8`), and `ventures/lineage/_headers` gives `/orgchain/*` supertestnet.lol's headers while the key tree at `/` keeps its own meta CSP; the key tree's footer links to it. Inscriboor only connects on supertestnet.lol, so the local test wallet is the path here. Checked live in Chrome at 1280 and 390 px, light and dark, through root → birth → recursive inscription: no CSP or script errors and no overflow (the two `net::ERR_ABORTED` preview loads happen on supertestnet.lol too). Token 41 (`orgchain-20261014`, `write:repository`) did the two pushes and was deleted by name right after; the table listing shows only 25 (`time`). It was never printed. Why: the operator asked for lineage's testnet half, matched to lineage's styling. +- 2026-10-15 · **hb-5 is the shell of the old factory, and Boring can show pictures.** The operator's framing: the hb-5 Gitea is the shell of the old factory, where their maths and other experiments live. It isn't a second factory to migrate, and Boring, the operator's admin lane, stays there. So the rule sits at the door: a project that graduates to prod moves with its history, and the copy left in the shell is archived with a pointer. phast, persims, phly, supertestnet, inscriboor and notplanned now carry that sign; persimmons was already archived. Boring's instructions and AGENTS.md, and the shell's matcha/teahub AGENTS.md and docs/self-map.md, now describe this layout. Boring has two new tools that return MCP images instead of text: `boring_mac_screenshot` (Peekaboo; the whole screen or one app's window) and `boring_mac_view_image` (an image under ~/claude/shots or /tmp). They were deployed by matcha/boring's own `deploy-boring-runtime` workflow (source 8742f9c; verification passed, no rollback). That workflow's clone URL had to move from https://teahub.xyz/matcha/boring.git, which is prod now, to the shell at 192.168.5.2:3000. Found on the way: macminid's `use_vision` snapshot hangs and wedges the daemon (restarted twice; avoid it), and matcha/boring `board-tick` has failed every 5 minutes since the move because it reads the old board through https://teahub.xyz (401 on prod). Token 42 (`shell-20261015`) pushed this and is deleted by id right after; the table is checked. Why: the earlier regression came from a second copy with no sign, and an agent that can't see a page can't check it.