Build Log · June 22, 2026

Forge: Interaction Depth

Tap any event, understand what happened, see what Forge already did, act — without navigating away.

  • Forge
  • UX
  • Mobile
  • Event Sheet
  • Memory
event detail bottom sheet (mobile + desktop)
1

event detail bottom sheet (mobile + desktop)

shared event presentation layer (event-display.ts)
1

shared event presentation layer (event-display.ts)

Customer Detail rebuilt as Memory Hub
1

Customer Detail rebuilt as Memory Hub

files built or rewritten
5

files built or rewritten

TypeScript errors
0

TypeScript errors

Timeline

  1. Start

    Session contract declared

    Focus: interaction depth. North star: tap → understand → trust → act.

  2. 30m

    event-display.ts extracted

    Chip labels, colors, mobile summary, and getEventDetailSections() pulled into shared module.

  3. 1h

    EventDetailSheet shipped

    Mobile bottom sheet + desktop modal. Story-driven layout: What happened / Why it matters / What Forge did.

  4. 1h 30m

    TodayCard wired

    Both layouts tappable. Done/Snooze get stopPropagation. Sheet mounts only when open.

  5. 2h

    Customer Detail → Memory Hub

    Forge Memory panel, Needs Attention, Active Jobs with handling state, Automation History, Past Jobs.

  6. 2h 20m

    Automations language cleanup

    Business-language rule names, trust behavior spelled out, 90s cancel window visible.

  7. 2h 30m

    tsc clean, seed fixed, session closed

    Dev org ID seeded correctly. Working tree committed.

What shipped

  • lib/forge/event-display.ts — shared chip labels, colors, getMobileSummary(), getEventDetailSections()

  • components/events/EventDetailSheet.tsx — mobile bottom sheet / desktop modal, story-driven layout

  • components/dashboard/TodayCard.tsx — fully tappable, sheet wired, stopPropagation on Done/Snooze, imports from event-display.ts

  • app/(dashboard)/contacts/[id]/page.tsx — Memory Hub: Forge Memory, Needs Attention, Active Jobs with handling state, Automation History, Past Jobs, Call/Text quick actions

  • app/(dashboard)/messages/page.tsx + AutomationCard.tsx — plain-language rule names, trust behavior in descriptions

“The sheet should feel like a field note, not a database receipt.”
— Zeb — Session 2 brief