Skip to main content
This log records meaningful product, architecture, and launch decisions so Lucia remembers why it has its current shape.

2026-06-23 — Unify docs into a Mintlify library

Decision: Migrate both documentation sets (Lucia Canon and Eval Labs Canon) off Obsidian Publish onto a single Mintlify library — two products with a switcher — served at helloluciallc.com, with docs.hellolucia.ai and docs.evaluationlabs.ai redirecting in. New repo hello-lucia/lucia-library becomes the source of truth for published docs. Why: A unified library splits and groups the content better and presents both brands as one home. Mintlify’s Products feature fits directly; founder accepted leaving the Obsidian authoring workflow for git/MDX. Status: Accepted; implementation in progress (Phase 1 conversion complete and pushed, not yet deployed/live). See: ADR - Unify Docs into Mintlify Library

2026-05-11 — Use Resend for waitlist outbound email

Decision: Use Resend for Lucia waitlist outbound welcome emails, while keeping Postmark focused on inbound operational/system email intake. Why: Resend is lightweight, already available, easy to operate, and better suited to this specific public waitlist confirmation path than a heavier marketing platform. Implementation: The hello-lucia/lucia-marketing Cloudflare Pages Function at functions/api/waitlist.js now sends the welcome email after a new Supabase waitlist insert succeeds. Verified behavior: send.hellolucia.ai is verified in Resend, live new-signup email delivery passed, and duplicate signup behavior returns ok:true duplicate:true without sending a second email. Known gap: The endpoint returns Resend message id/status, but message id and send status are not yet persisted back into Supabase.

2026-04-29 — Add Branding and Identity as a Canon section

Decision: Add a dedicated Branding and Identity section to the Lucia Canon. Why: Lucia’s visual identity, color system, voice, and brand guardrails are now first-class source-truth concerns, not side notes. Consequence: Brand work should be documented in the Canon and treated as connected to product trust, operator calm, and emotional containment.

2026-04-27 — Adopt Canon v1.0 architecture

Decision: Restructure the Lucia Canon around the real system: Foundation, System Architecture, Intelligence, Evaluation, Operations, Infrastructure, Properties, Roadmap, Decisions, Releases, Templates, and Archives. Why: The previous structure mixed doctrine, runtime, intent, Eval Labs, and live transition notes across overlapping folders. Consequence: Old folders are moved into Archives. The new Canon becomes the source of truth.

2026-04-27 — Treat Lucia as a dual-surface intelligence system

Decision: Lucia is canonically defined as a dual-surface system.
Operator IntelligencecontrolsGuest Intelligence
Why: The Operator System is the control layer today, while Guest Intelligence and concierge flows are downstream execution surfaces. Consequence: Guest-facing work must not bypass operator truth-state and permission rules.

2026-04-27 — Development is active external intake during live transition

Decision: Twilio and Postmark target api-dev.hellolucia.ai during current live-transition testing. Why: Dev is the active iteration environment. Staging validates promoted code but does not receive live provider traffic unless manually switched. Consequence: Staging tests require temporary provider webhook changes or smoke tests.

2026-04-27 — Defer Postmark attachment rendering

Decision: Email attachment rendering is deferred until a Postmark API retrieval path is implemented. Why: Current webhook payloads provide email body and attachment metadata but not reliable binary attachment content. Consequence: Email body and metadata are usable now; images are supported through SMS/MMS and WhatsApp.

2026-04-27 — Bunny is required for provider media rendering

Decision: Maintenance media should render through Bunny CDN, not provider URLs. Why: Twilio media URLs require authentication and break in browser rendering. Consequence: Provider media must be fetched server-side, uploaded to Bunny Storage, and rendered from Bunny CDN.

2026-04-26 — Upgrade toward GPT-5.5 and Responses API

Decision: Lucia should move toward GPT-5.5 and the Responses API for model-assisted text paths. Why: The model layer needs a controlled upgrade path and stronger reasoning for the intent layer and operator OS. Consequence: Model upgrades must not break response contract, truth-state discipline, or operator calm.