Thursday, May 7, 2026
A long day. v0 of neil.godfreylabs.com became v1, blog cutover, journal stood up. Notes below.
Worked on
- gl-neil — full-day session
- v0 → v1 of neil.godfreylabs.com — specs locked, Astro static, CloudFront, auto-deploy
- BriefForm wired to live Lambda → SES
- Chat island wired through Cloudflare Tunnel to local Ollama
- Repo restructured to vault / api / web / blog / mobile (canonical project layout)
- Blog migration: gl-godfreylabs/blog → gl-neil/blog
- Journal scaffolded + deployed
Shipped
- https://neil.godfreylabs.com — live, end-to-end HTTPS
- Brief endpoint live (HTTP API + Lambda + SES)
- Chat endpoint live (qwen3:8b on Mac via Cloudflare Tunnel)
- 9 Behaviors locked in graph
- blog.godfreylabs.com cutover — source moved + deploys from gl-neil
- https://journal.godfreylabs.com — bullet-journal aesthetic, daily logs + sprints
- Letterhead nav: Journal ↗ + Blog ↗ on neil.godfreylabs.com
Got stuck
- Function URL 403'd at org level — pivoted to API Gateway HTTP API
- pnpm/action-setup needs
package_json_fileafter monorepo restructure (defaults.working-directory only affectsrun:steps, notuses:actions) - JSONResponse + custom CORS headers → Content-Length mismatch → truncated chat replies. Fix: CORSMiddleware
- CloudFront with OAC needs a Function to rewrite
/foo/→/foo/index.htmlfor nested paths - Astro lowercases collection slugs — link href needs
.toLowerCase()to match emitted file paths
Tomorrow
- v1.1 chat: declarative LLM responder module + RAG + few-shots + bump to qwen3.6:27b
- Eval suite — 30 questions, ideal answers, score script
- Cal.com link, OG image (image-prompt curation → per-use approval)
Notes
The canonical project layout (vault / api / web / blog / mobile) is a
durable rule now — applies to every new internal project. Declarative
LLM modules aren't memory; graph-resident behaviors are. Different
concerns.
Three GL surfaces live tonight: neil.godfreylabs.com (chat-first),
blog.godfreylabs.com (trading-desk weekly content), journal.godfreylabs.com
(this — bullet-journal building-in-public). Three jobs, three voices.
Late additions: journal home is now the calendar (replaced "latest sprint" /
"recent logs"). Per-day stat block at the top of each entry — big oxblood shipped
count + tier tag (light/medium/heavy) + breakdown row. "§ Ask the journal" popup
chat in the corner reads vault/ AND journal/src/content/ from the same bridge —
RAG without RAG, ~35K char corpus, qwen3:8b context handles it. Backfilled
W19 Mon/Tue/Wed daily logs from session notes (sessions/{2026-05-04,-05,-06}.md
- git activity). Drafted blog post stub: I built a journal site that knows what I shipped each day (dev-deep-dive, status: draft, expand tomorrow morning).
