Build Log
Forge: Wiring the Attention Engine
June 21, 2026
context_retrieved metric wired, attention scoring on read, Twilio write paths connected, auth redirect root-caused and fixed, Forge live on app.forgekits.build with demo data.
Timeline
What shipped
context_retrieved event fires server-side on contact detail page when context panel has data — the product metric proving memory surfaces at the right moment
recalculatedScore() pure function in dashboard/page.tsx — estimate_sent ages from 15 → 20 at 3 days, → 30 at 7 days, no Inngest needed
Twilio webhook wired: missed_call (no-owner path) → writeEvent missed_call
Twilio webhook wired: dialCallStatus=completed → writeEvent answered_call
Twilio webhook wired: dialCallStatus=no-answer/busy/failed → writeEvent missed_call
Twilio webhook wired: inbound SMS reply → writeEvent message_received
Root page simplified: splash removed, redirect('/dashboard') only
lib/auth.ts: hardcoded https://accounts.forgekits.build/sign-in replaced with /sign-in — root cause of 45min auth spin
ClerkProvider given explicit signInUrl/signUpUrl props
proxy.ts auth.protect() given explicit unauthenticatedUrl
Forge deployed to prod at app.forgekits.build — build clean, tsc clean
seed.ts: ORG_ID now reads from SEED_ORG_ID env var, defaults to prod org — dev/prod org IDs documented in comment
Prod Neon DB seeded with Gino's Electric demo data under prod Clerk org
“Four write paths, two lines each. The abstraction held.”