build-pages
Live git-as-DB build journal for every shipped project. The page you're reading.
Search the build
-
a16bd032026-07-28 auto-discover every ~/Projects git repo (541) with a background warmer + TTL cache: git scans run off the request path so home stays ~80ms; curated projects stay featured-first -
0a570422026-07-28 deploy.conf: tailnet-proxy model; live at build-pages.agentabrams.com -
46c7d222026-07-28 server: honor HOST env (default 127.0.0.1) so it can bind tailnet-reachable for the Kamatera vhost -
c96a3d62026-07-28 move build-pages target domain → build-pages.agentabrams.com (projects.agentabrams.com reassigned to the project viewer) -
ff6ee372026-05-31 Add per-site favicon (kills /favicon.ico 404) -
c5fae602026-05-19 smoke: 6 snapshot-path 404-guard checks (.bak / .bak.N / .pre- / .orig / .rej / ~) -
07bd1a82026-05-19 server: 404-guard for *.bak / *.pre-* snapshot paths before static mount -
50c56b72026-05-19 gitignore: exclude *.bak / *.pre-* / *.orig snapshot files -
3d15f852026-05-13 home: linkify 'latest YYYY-MM-DD' to its commit detail page + 1 smoke -
f1d86db2026-05-13 home: per-project today-PT chip on each project card + 1 smoke -
83730dd2026-05-13 home: trend delta arrow (↑/↓/—) between today and yesterday + 1 smoke -
7aefa062026-05-13 smoke: track 'last 24h' line instead of removed 'velocity:' label -
ca0922f2026-05-13 home: today vs yesterday side-by-side counts (Steve's PT calendar days) + 1 smoke -
b57cacd2026-05-13 refactor: extract startOfDayInTz + todayInTz helpers — DRY the tz math across /api/fleet/today + home -
b7091842026-05-13 home: today-PT counter (Steve's calendar day, not rolling-24h) + 1 smoke -
1db956d2026-05-13 api/fleet/today: default to America/Los_Angeles (Steve's tz), ?tz= override — UTC at PT-evening was misleading -
e0c1cd72026-05-13 api: /api/fleet/today — calendar-day commit slice (different from rolling-24h since=) + 2 smoke -
e19ef882026-05-13 home: Deepest rationale rail (top 5 commits by body length) + 1 smoke -
5ffc20a2026-05-13 api: /api/fleet/longest — top commits by body length (the design-rationale essays) + 2 smoke -
fafcc172026-05-13 Makefile: add 'make stats' target — pretty-print fleet stats from /api/fleet/all -
9419dd02026-05-13 favicon: /favicon.svg + /favicon.ico routes serve real brand mark (referenced by OpenSearch) + 3 smoke -
89a50462026-05-13 opensearch: /opensearch.xml descriptor + autodiscovery <link rel=search> in shell + 4 smoke -
eff2d002026-05-13 static pages: Cache-Control max-age=3600 SWR=86400 on /about /privacy /terms + 1 smoke -
451c6ad2026-05-13 alias: /search?q= 302→/?q= (convention path) + 2 smoke -
3af9a442026-05-13 ui: /privacy + /terms boilerplate (no-tracking + as-is) — sitemap + footer + 6 smoke -
e4c31da2026-05-13 ui: /about page explaining build-pages + sitemap + footer link + 3 smoke -
e8b65d22026-05-13 api: /api/fleet/buckets — daily commit buckets with ISO labels (fleet + per-project) + 3 smoke -
fdee5642026-05-13 refactor: extract sparkline(commits, days) helper — DRY across home + /p/:slug -
59b12082026-05-13 p/:slug: per-project 7-day sparkline in meta line -
b6fe68d2026-05-13 home: 7-day velocity sparkline (Unicode block-chars, scales to max bucket) + 1 smoke -
b806ffd2026-05-13 api/fleet/authors + Authors chip rail on /p/:slug — uses canonAuthor() for alias collapse + 2 smoke -
c7c77632026-05-13 api: canonAuthor() collapses 'SteveStudio2'/'Steve Abrams'/etc into 'Steve' — authors[] no longer fragmented -
4acf48a2026-05-13 api: /api/projects/:slug now includes authors[] breakdown -
66f43352026-05-13 smoke: X-Response-Time + rendered-in footer assertions on /p/butlr + 2 smoke -
2047a042026-05-13 p/:slug: 'rendered in Xms' footer (parity with home) -
f7526482026-05-13 perf: X-Response-Time header on every response (via writeHead hook) + 1 smoke -
77e85e82026-05-13 home: 'rendered in Xms' footer — request-time visibility (typically ~15-25ms warm) -
7fbdfa02026-05-13 ui: commit-list <li id="hash"> deep-link anchors + :target highlight CSS + 1 smoke -
035207b2026-05-13 smoke: 3 ?since= assertions across /api/search + /api/projects/:slug/commits -
4a5298c2026-05-13 refactor: parseSince() helper — apply ?since= filter to /api/search + /api/projects/:slug/commits -
d9657412026-05-13 api/recent: ?since= filter (24h|7d|YYYY-MM-DD) + 2 smoke -
552db5e2026-05-13 home: color-coded host load badge (green <8, yellow <20, red ≥20) + 1 smoke -
bae50632026-05-13 api/health: include loadavg {1m,5m,15m} for host-overload monitoring + 1 smoke -
a633cb52026-05-13 ui: commit-detail prev/next history nav — walk forward/backward through a project's commits + 1 smoke -
0c0d61c2026-05-13 ui: prev/next project nav on /p/:slug — wraps at registry ends + 1 smoke -
b6ddd072026-05-13 api: /api/fleet/all one-shot aggregate (projects + velocity + recent + top skills/agents) + 4 smoke -
982149f2026-05-13 p/:slug: per-project velocity (last 24h + last 7d) in meta line -
ba6940a2026-05-13 api: /api/fleet/velocity — rolling-window commit counts (last_24h + last_7d + by_project) + 4 smoke -
1af9c2a2026-05-13 home: velocity counter (commits in last 24h + last 7d) — 200-tick milestone -
83d27122026-05-13 home: top skills + agents rail (fleet-wide tallies surfaced as chips) -
232a2532026-05-13 api: /api/fleet/{agents,skills} — cross-project aggregated facet tallies + 4 smoke -
8fd3a312026-05-13 home: auto-refresh 'Recent across the fleet' rail every 60s via /api/recent -
98d376b2026-05-13 security: Permissions-Policy header (geolocation/microphone/camera/payment all denied) + 1 smoke -
d4bc9ad2026-05-13 seo: theme-color meta (light + dark variants matching CSS palette) + 1 smoke -
c814a152026-05-13 Makefile: audit target -
29d618d2026-05-13 ui: visible export affordances — fleet.csv in footer + commits.csv/feed.atom/json on each project page + 2 smoke -
f2d73632026-05-13 csv: /fleet.csv — every commit across every project in one file + 3 smoke -
fedcbfa2026-05-13 csv: /p/:slug/commits.csv spreadsheet export (RFC-4180 quoting) + 4 smoke -
0cb94e62026-05-13 api: per-project facet endpoints (/agents, /skills, /ideas) + 6 smoke -
afcaaa32026-05-13 home: 'Recent across the fleet' rail — server-rendered top 10 commits date-sorted (no JS required) + 1 smoke -
86268fd2026-05-13 api/recent: fleet-wide most-recent commits, date-sorted + 3 smoke -
d1c2c502026-05-13 commit page: diff +/- syntax highlighting (green add, red remove, muted file headers) + smoke -
f727cc72026-05-13 smoke: /healthz <50ms perf budget (regression guard for a no-DB literal) -
a8b4a3e2026-05-13 seo: BreadcrumbList JSON-LD on commit detail page + 2 smoke -
734d4422026-05-13 seo: SoftwareSourceCode JSON-LD on each project page + 1 smoke -
70698d82026-05-13 ui: footer links to /api + /sitemap.xml (asim/sod parity) + 2 smoke -
929b3db2026-05-13 api: /api discovery doc listing all 13 endpoints + 3 smoke -
e2faa472026-05-13 search: fleet search ?q= deep-link — hydrate input + replaceState + fire-on-load + 1 smoke -
4287f442026-05-13 ui: fleet search now shows by_project breakdown — '26 hits — AsSeenInMovies 13 · Stars of Design 12 · build-pages 1 (showing 20)' -
aafba882026-05-13 api/search: round-robin merge + by_project breakdown (no single project monopolizes the page) -
94949342026-05-13 ui: fleet-wide search input on home (wired to /api/search, 150ms debounce) + 1 smoke -
eb2ab402026-05-13 api: /api/search?q= — cross-project commit search (min 2 chars, limit 1-200) + 4 smoke -
0158ff52026-05-13 404: branded page on unknown routes (fleet parity) + 3 smoke -
254d1d02026-05-13 api: /api/projects/:slug/commits — paginated raw JSON (limit + offset) + 4 smoke -
c196cfd2026-05-13 feed: Atom 1.0 per project (/p/:slug/feed.atom) + autodiscovery <link> + 4 smoke -
cb504862026-05-13 smoke: gzip /p/butlr + Vary: Accept-Encoding (compression regression guard) -
2218b5e2026-05-13 seo: WebSite + ItemList JSON-LD on home + 2 smoke -
230a1f72026-05-13 seo: /sitemap.xml lists home + 4 project pages + Last-Modified; robots.txt advertises it + 5 smoke -
5c8c27d2026-05-13 seo: canonical + og:title/desc/url + twitter:card on every shell-rendered page + 2 smoke -
e8ee5722026-05-13 smoke: assert home renders fleet totals line -
822388f2026-05-13 home: pull counts from shared bundle cache + show fleet totals (projects/commits/ideas) -
52734632026-05-13 api: /api/projects/:slug detail endpoint (commit count, top agents/skills, head SHA) + 4 smoke -
91732aa2026-05-13 smoke: warm /p/butlr render <250ms perf budget (cache regression guard) -
b4e3a282026-05-13 perf: cache commit bundle per-repo, keyed on HEAD SHA — page hit 80ms→17ms warm -
f8e102d2026-05-13 smoke: assert /p/:slug?q= hydrates search input on server-render -
9cd86d62026-05-13 search: ?q= deep-link — input hydrates from URL + replaceState keeps URL in sync -
99da4a92026-05-13 registry: add asseeninmovies + starsofdesign + build-pages (self-doc) — now 4 journals -
7ebd20c2026-05-13 Makefile + .deploy.conf + /robots.txt + 2 smoke (parity with asim/sod) -
6e352302026-05-13 smoke: 23-assertion harness covering healthz, /api/health, /api/version, /api/projects, butlr page, 404 -
27818e52026-05-13 api: add /api/health + /api/version (joins fleet-status digest) -
cd737262026-05-13 initial scaffold — build-pages live git-as-DB doc site (port 9700, Butlr first)
Authors
- Steve91
Agents used
Skills used
- /fleet11
- /search6
- /projects6
- /commits5
- /favicon3
- /today3
- /butlr3
- /recent3
- /health3
- /all2
- /about2
- /privacy2
- /terms2
- /next2
- /agents2
- /feed2
- /skills2
- /ideas2
- /sitemap2
- /sod2
- /version2
- /longest1
- /opensearch1
- /buckets1
- /authors1
- /backward1
- /velocity1
- /microphone1
- /camera1
- /payment1
Creative ideas + design notes
c5fae60 · 2026-05-19 · smoke: 6 snapshot-path 404-guard checks (.bak / .bak.N / .pre- / .orig / .rej / ~)
Guard middleware lives in server.js and runs before express.static. Until now no smoke check covered it, so a regression that disabled the guard would have shipped silently. 158 checks pass against a live server on :9700. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>