Build Log · June 20, 2026

The Capture Notebook

ForgeHome stopped being a task manager and started being a household mind — a place where thoughts land before they have a shape.

  • ForgeHome
  • Capture
  • AI
  • Hardening
ChatGPT bugs fixed
4

ChatGPT bugs fixed

new table (captureItems)
1

new table (captureItems)

new shared utils (date.ts, chatgpt.ts, calendarImportStatus)
3

new shared utils (date.ts, chatgpt.ts, calendarImportStatus)

files hardened (UTC drift, zero-duration events, sortOrder magic number, day-brief cache)
7

files hardened (UTC drift, zero-duration events, sortOrder magic number, day-brief cache)

Timeline

  1. Start

    ChatGPT's bug report

    4 real issues identified from last session's retro

  2. 30m

    All 4 bugs fixed

    UTC drift, zero-duration events, sortOrder:40, day-brief caching

  3. 1h

    Notebook design agreed

    Capture is a landing pad, not a task queue

  4. 2h

    Notebook built and deployed

    captureItems table, NotebookInput, NotebookList, Today nudge

  5. 2.5h

    ChatGPT research wired in

    openInChatGPT extracted to shared util, proven in 2 places

  6. Close

    Deployed to home.forgekits.build

    Clean build, all 22 pages, DB migrated

What shipped

  • forgehome/lib/date.ts — localDateStr() and localDateOffset() using Intl, timezone-safe for US East

  • forgehome/lib/chatgpt.ts — openInChatGPT({ text, context, type }) shared util, context-aware prompts, clipboard fallback

  • captureItems schema table with status enum (raw/suggested/routed/calendar_created/saved_note/archived/dismissed)

  • calendarImportStatus column on routeItems (unconfirmed/confirmed/dismissed) — replaces sortOrder:40 magic number

  • Capture Notebook page — textarea-only input, no form fields, voice support, AI classifies in background

  • NotebookInput component — drop thought, hit 'Drop it', save is instant, classification is async

  • NotebookList component — Needs sorting / Still here / Saved notes sections with inline expand-to-act cards

  • Today nudge — quiet count badge below header, links to Notebook, no guilt tone

  • Research in ChatGPT — context-aware prompt per capture type, opens new tab + copies to clipboard

  • RouteItemCard — Search icon in action row on every active route item, same openInChatGPT util

  • Google Calendar write-back fix — end = start + 60min, never zero-duration again

  • Day-brief caching — in-process Map keyed by household+date+itemHash, same state = same brief

“Capture is not a task queue. It's a place where thoughts go to become something.”
— Session reframe — the product soul of the Notebook