Build Log
Known Lens Engine v0.2 — Product Glow Pass
June 27, 2026
Made the engine tell the truth: Handoff is now operational notes, Known Card is ruthless, What Helps gives exact words, and the Portrait finally shows who he actually is.
Timeline
What shipped
Added optional fields to KnownContextObject: cardLabel (short topic label), suggestedPhrase (exact words to use), offerableCue (physical/sensory thing to offer)
Rebuilt WhatHelpsCard type: whatMayBeHappening, doNotSay, trySaying, tryOffering, environmentalAdjustments, ifThisKeepsHappening
Differentiated seed data: standing context (15–45 days old) vs recent care observations (1–2 days old)
Added ctx-021: yesterday shower went better after coffee — change_signal + observed improvement
Added ctx-022: wife-asking pattern after lunch increasing this week — change_signal + handoff note
Added ctx-023: TV caused visible agitation today, settled after it was turned off — change_signal + trigger
Added isRecentCareObservation() helper: gates Handoff content to caregiver_observation and handoff_note sources only
Known Card: youShouldKnow widened (boundary/dignity now included), sections capped at 3, safeTopics uses cardLabel not full guidance, whatHelps uses offerableCue first
What Helps: six structured sections with exact phrases quoted in UI, trySaying shows only objects with suggestedPhrase
Portrait: whoHeIs changed from emotionalTone === 'identity' to tags.includes('identity') — now shows actual identity facts
Handoff: isRecentCareObservation() gates all content, fallback to repeated-pattern calming cues only if no recent observations
Print polish: debug info hidden in print via print:hidden, underlined tab nav, calmer headings, max-width content column
Fixed groupBy generic constraint (Record<string, unknown> → T) so it accepts typed interfaces
tsc --noEmit: 0 errors. npm run build: clean. GET /known/prototype: 200
“The danger now is not 'can we build it?' The danger is accidentally building a clever renderer that produces bad care artifacts.”