Build Log · Oct 30, 2026
Living accepted, made default, and the builds stop depending on Google
Acceptance review of the Living Workshop on production, the switch to Living as default, the fixes daily use surfaced, website polish, and self-hosted fonts for every app.
- alloy
- website
- acceptance
- fonts
- owner-loop
- commits, all pushed
- 14
- apps on self-hosted fonts
- 8
- Home reads after an idle gap (local)
- 14.0s → 2.5s
- owner approvals carried out (#9 merged + deployed, #19 unparked)
- 2
commits, all pushed
apps on self-hosted fonts
Home reads after an idle gap (local)
owner approvals carried out (#9 merged + deployed, #19 unparked)
Timeline
Morning
Acceptance review on production
Five Living pages at desktop and phone, Command graph and Explore interaction, a write-free decision submit, anonymous and non-owner access
Midday
Release checks and the default switch
Cold Home load fixed (24 h stale window, boot warm, self-refresh), stale health labelled last known, Command graph fills its canvas, Living made the owner's default
Afternoon
What daily use surfaced
Answered items, Answer vs Approve verbs, a preselected Reply, approved work with nowhere to be seen; #9 merged and GODgle deployed, #19 unparked
Afternoon
Website polish
About photo, hero and closing art regenerated sharp, one positive CTA, quotes closed, café photo centred, Research drops old links
Late
Builds stop fetching fonts
next/font/google failed intermittently in Turbopack; every app now uses next/font/local
What shipped
products/alloy/lib/living/home.ts — lede counts today's decisions; readAt/readStale; per-source read timing log; In motion data
products/alloy/lib/command/read.ts + lib/cache/swr.ts + instrumentation.ts — 24 h stale window, globalThis cache, boot warm of readCommand
products/alloy/components/living/RefreshWhenStale.tsx — Home refreshes itself while showing an old reading
products/alloy/components/command/ArchitectureGraph.tsx + CommandCockpit.tsx — graph fills its canvas, mounts once visible, freshness dated from the reading, phone strip fade and one-line Show the map
products/alloy/app/w/[slug]/home/page.tsx + components/WorkbenchShell.tsx — Living is the owner's default, Classic stays one click away
products/alloy/lib/command/sources/flow.ts + decisions.ts + lib/home/board.ts — pendingWith, flowStatus, handedTo; verbs Approve/Merge/Answer; In motion rows
products/alloy/components/living/decide/item/DecidePanel.tsx + app/w/[slug]/living/item/[number]/page.tsx — preselect the acting decision; an awaiting task links to its pull request
forgekit-website/app/about/page.tsx, app/page.tsx, app/research/page.tsx, app/start/page.tsx, components/v2/Frame.tsx, components/Nav.tsx, components/Footer.tsx, next.config.ts — photo crops and sizes, CTA wording, closing quotes, Research links, /case-studies redirect
forgekit-website/public/v2/landscape.jpg + idea.jpg — regenerated at 1536x1024 and 1024x1536 from the existing art
forgekit-os/scripts/fonts/self-host-google-fonts.mjs — downloads latin woff2 and prints localFont entries
products/alloy, forgekit-website, experiments/godgle, experiments/arcade, experiments/canvas-1, experiments/canvas-2, experiments/reality-draft, experiments/windowseat — next/font/local with checked-in fonts
“we dont leave things broke”