Build Log · June 22, 2026

Hearth: Phase 3 UI

Wired /today to real access helpers, built /me, /people, /people/[profileId], and added the capture destination selector — HOUSEHOLD_ID hardcode gone from the critical path.

  • Hearth
  • Multi-member
  • UI
  • Auth
new routes
3

new routes

auth bridge helper
1

auth bridge helper

access helpers wired
5

access helpers wired

tsc errors
0

tsc errors

Timeline

  1. Start

    Ignition + orientation

    Read last retro, implementation plan, access.ts, existing pages

  2. 20m

    getHouseholdForUser()

    Auth bridge added to lib/access.ts — maps Clerk userId to { householdId, memberId }

  3. 35m

    /today wired

    auth() + getHouseholdForUser() + getSharedHearthItems() — HOUSEHOLD_ID gone

  4. 50m

    /me built

    Personal view: getMemberPersonalItems(), grouped by type

  5. 1h

    /people + /people/[id]

    Profile list + profile page using getProfileItems()

  6. 1.5h

    Capture destination

    Page loads spaces + profiles, NotebookList gets destination selector

  7. 1.75h

    Nav + tsc

    My Space + People added to nav. tsc --noEmit: clean.

What shipped

  • lib/access.ts — getHouseholdForUser(userId): maps Clerk userId to { householdId, memberId }

  • /today/page.tsx — replaced hardcoded HOUSEHOLD_ID with auth() + getHouseholdForUser() + getSharedHearthItems()

  • /me/page.tsx — personal view: getMemberPersonalItems(), shows private tasks + assigned items, grouped by type

  • /people/page.tsx — profile list grouped by type (adult/child/pet/house/vehicle), links to profile pages

  • /people/[profileId]/page.tsx — profile page: getProfileItems(), today + upcoming items, 404 on unknown profileId

  • /capture/page.tsx — loads sharedSpace + personalSpace + profiles, builds typed destination[] array

  • capture/actions.ts — routeToDate accepts optional { spaceId, visibility } destination

  • NotebookList.tsx — CaptureDestination type exported, destinations prop, selector renders when >1 option

  • layout.tsx — My Space (/me) + People (/people) added to desktop sidebar + mobile overflow nav

“The hardcode is gone. The auth bridge is in. The household knows who you are.”
— Session close