Skip to main content
This page records what is true right now. It should be updated whenever Lucia’s runtime, routing, or launch reality changes.

Live Transition Status

Status: active live-transition
Current baseline: v0.1.3.6
Primary client context: Villa Valentin
Primary active environment: Development
Validation environment: Staging
Production: future
Marketing/waitlist surface: live
Guest Agent lab: live-development public lab
Lucia v0.1.3.6 is the first clean development baseline where Engine behavior, Admin UI, CI gates, Codex project identity, and Eval Labs target routing all align around the live internet workflow. Current live-dev build identity:
The live-dev topbar displays Admin and Engine build identity.
Admin build identity is injected at Admin build time.
Engine build identity is fetched from the Engine root endpoint.
The Admin/Engine build identity tag is runtime evidence for the currently deployed Admin/Engine pair, not decorative copy. Canon must not hardcode or fake deploy identity and should not record volatile commit hashes as doctrine. Staging promotion is intentionally held until Eval Labs captures and reviews the v0.1.3.6 Development behavior baseline.

Current Version Stack

Engine local workspace: engine-v0.1.3.6
Admin local workspace: admin-v0.1.3.6
Guest Agent local workspace: lucia-guest-agent
Guest Agent product milestone: v0.1.0 - Guest Identity + Magic-Link Lab
Engine branch: dev
Admin branch: dev
Current payment truth development proof snapshot:
Admin live-dev visible commit tag: 7c9683a
Engine live-dev visible commit tag: 88a09a1
Payment truth proof environment: Development/live-dev
Production readiness: not claimed
Staging promotion: not claimed

Current Product Lines

HelloLucia, LLC currently owns three major product lines:
Lucia AI - Operator / Owner-Facing OS
Lucia AI - Public / Guest-Facing Concierge
Eval Labs - Evaluation + Regression System
Current Canon boundary:
operator-facing Lucia = calm operating partner and action cockpit
guest-facing Lucia = public front-of-house concierge and claim/signal bridge
Eval Labs = proof, review, and regression system
This product-line framing does not claim that guest-facing Lucia is fully production-hardened.

Active Public Surfaces

Development:
https://dev.hellolucia.ai
https://api-dev.hellolucia.ai
Current payment truth development surfaces tested:
https://dev.hellolucia.ai/property
https://dev.hellolucia.ai/payments
https://dev.hellolucia.ai/bookings/29110012
https://dev.hellolucia.ai/ops/actions?intent=payment_reconciliation&booking_id=29110012&focus=payment_reconciliation
Staging:
https://staging.hellolucia.ai
https://api-staging.hellolucia.ai
Evaluation:
https://evaluationlabs.ai
Guest-Facing Lucia:
https://lucia-guest-agent.netlify.app/lucia-lab/
Marketing / Waitlist:
https://hellolucia.ai
https://hellolucia.ai/api/waitlist
Documentation Library:
https://helloluciallc.com

Documentation Library

The Canon and Eval Labs docs are now published as a single unified Mintlify library at helloluciallc.com — two products (Lucia, Eval Labs) under one site with a product switcher.
Source of truth: hello-lucia/lucia-library (git, MDX) — deploys on push
Live: https://helloluciallc.com
Old sites: docs.hellolucia.ai + docs.evaluationlabs.ai → redirect to the library (cutover in progress)
Obsidian Publish: being retired as the docs publishing path
This replaces the two Obsidian Publish sites. See ADR - Unify Docs into Mintlify Library. Design refinement of the library is ongoing.

Current External Routing

Twilio SMS/MMS → api-dev
Twilio WhatsApp → api-dev
Postmark inbound email → api-dev
Eval Labs v0.1.3.6 dev baseline → https://api-dev.hellolucia.ai/admin/operator-focus
Resend waitlist and guest verification outbound email → send.hellolucia.ai
Guest Agent operational signals → api-dev /v1/guest/signals
Staging can receive these signals but is not targeted unless provider webhooks are manually switched. The live Eval Labs app should use:
VITE_LUCIA_EVAL_ENDPOINT=https://api-dev.hellolucia.ai/admin/operator-focus
A Netlify redeploy is required after changing that Vite environment variable.

Operating Loop

Lucia is moving away from localhost-first development.
Live internet development infrastructure → real operating loop
localhost → isolated debugging only

Workspace OS Milestone

Lucia has crossed the Workspace OS / context-aware operator companion milestone in Development/v0.1.x. The product transition is:
from: AI chat embedded in a dashboard
to: context-aware hospitality operating system with Lucia beside the operator
Current doctrine:
Lucia is becoming the operating layer for hospitality work.
The operator can keep Lucia beside the app while moving through the workspace.
The same Lucia conversation should survive route changes and mode changes.
Lucia can orient to the current surface and recommend the next safe move.
This is Development/live-dev runtime truth. It is not a production-readiness or staging-promotion claim.

Guest-Facing Lucia Milestone

Guest-facing Lucia has crossed from future concept into a distinct live-development product surface. Current guest-facing runtime truth:
Product milestone: Guest Agent v0.1.0 - Guest Identity + Magic-Link Lab
GitHub repo: hello-lucia/lucia-guest-agent
Local path: /Users/avivhadar/Desktop/lucia-guest-agent
Live lab: https://lucia-guest-agent.netlify.app/lucia-lab/
Guest Agent build tag is visible on the page
Guest Agent model is selected through VV_AI_MODEL
Current requested model doctrine: GPT-5.5
Guest Agent v0.1.0 definition:
first working guest-facing Lucia lab
GPT-5.5 guest-facing concierge
identity orientation handshake
booked-guest claim collection
claim fragment memory
Engine candidate lookup
Resend magic-link verification
verified session state
guest operational signal bridge
Admin Signal Stream visibility foundation
Versioning boundary:
commit tag = engineering truth
product version = milestone/product truth
future UI target = Guest v0.1.0 · <commit>
Current guest-facing UI truth:
Villa/Lucia-style lab page created and polished
editorial visual system: Canela, nucleus divider, black top bar, refined chat card
guest identity orientation lives inside Lucia's first message
guest must select identity orientation before chatting
orientation prompt appears in the composer
guest sends the orientation prompt
identity buttons disappear
normal conversation begins
Identity orientation options:
I'm already booked
I'm joining someone's stay
I'm planning a trip
Just exploring
Current guest verification and signal truth:
identity/linkage contract implemented
guest operational_signal v0 generated
guest agent signs and POSTs signals server-side to Engine
Engine accepts signed guest signals through /v1/guest/signals
Engine persists guest signals safely
Admin /admin/dashboard exposes sections.guest_signals
Admin Signal Stream renders guest signals
candidate/unlinked guest signals do not open fake DAW
Magic Link Booking Verification v0 implemented
Resend-backed verification email delivery implemented
verified session state implemented
This is implemented live-development state. Runtime files, persistence, rate limits, replay/spam protection, Admin review/link tooling, and launch privacy copy still need hardening before production readiness is claimed. Guest-facing Lucia also requires a first-class Guest-Facing Lucia Eval Track in Eval Labs, separate from operator-facing Lucia evals. Manual testing cannot cover every possible guest phrasing, so Eval Labs must stress-test guest identity, verification, privacy, tone, and guest-to-operator routing at scale.

Payment Truth Foundation

Lucia has completed the Development payment truth foundation across Stripe sandbox movement truth, Lucia Core durable ledger storage, LIEA payment attention suppression, and Admin read-only rendering. Current implemented Development truth:
Stripe sandbox checkout foundation implemented in Engine
Lucia Core Supabase development project exists: lucia-core-dev / jgnxomyzqotnqsmlxlsz
Durable Stripe ledger tables exist: stripe_financial_records and stripe_financial_events
RLS is enabled on both durable ledger tables
No anon/auth read policies exist for the durable ledger tables
Engine uses service-role-only Supabase access
Admin never talks directly to Supabase
Engine durable ledger mode is configured as dual with durable-required in Render Development
Admin /payments renders global durable Engine payment truth
Booking detail renders a read-only Payment Truth card
Admin /property renders Payment Policy Baseline v0 as read-only/draft-safe only
DAW payment reconciliation can open context without mutating payment state
Tested live-dev proof:
Harper Quinn booking #29110012 completed a $500.00 Stripe sandbox checkout
Durable Supabase record and event were written
Engine restarted via Render
GET /admin/stripe/payment-status/29110012 still returned known=true and financialTruthState=confirmed_paid
GET /admin/stripe/payment-status still included Harper Quinn
/admin/operational-attention suppressed Harper Quinn as a payment blocker
Arrival readiness remained as the non-payment issue
Admin /payments, /bookings/29110012, /property, and payment DAW proof routes loaded in live-dev
Current boundaries:
Durable Stripe movement truth is implemented.
Durable property payment policy truth is not implemented yet.
Property Payment Policy v0 is Admin-visible as a no-persistence baseline only.
LIEA consumes Stripe financial truth for payment attention suppression.
LIEA does not yet consume durable property payment policy truth.
Signal Stream is not yet wired to LIEA.
Admin-local Signal Stream scoring remains a bridge.
Admin has no payment write controls.
Admin has no charge/refund/mark-paid/create-checkout UI yet.
Eval Labs Supabase remains separate and untouched.
See Lucia Payment Truth Foundation for the detailed payment truth architecture, route contracts, proof set, and deferred gaps.

Maintenance Intake

InputStatusNotes
SMSWorkingTwilio inbound
MMS imagesWorkingAuth fetch → Bunny CDN
WhatsAppWorkingTwilio WhatsApp webhook
WhatsApp imagesWorkingAuth fetch → Bunny CDN
Email bodyWorkingPostmark inbound
Email attachment metadataWorkingMetadata only
Email image renderingDeferredRequires Postmark API retrieval path

Waitlist Outbound Email

Current waitlist outbound email status:
provider: Resend
sending domain: send.hellolucia.ai
sender: Lucia from HelloLucia.ai <hello@send.hellolucia.ai>
reply-to: hello@hellolucia.ai
runtime owner: hello-lucia/lucia-marketing
function: functions/api/waitlist.js
route: POST /api/waitlist
status: implemented / configured / tested live
Current verified behavior:
new signup → Supabase insert → Resend welcome email sent
duplicate signup → ok:true duplicate:true → no resend
Resend message id returned by endpoint on send success
Known gap:
Resend message id and send status are not yet persisted back into Supabase.

Media Pipeline

Current media pipeline:
Twilio media URLauthenticated Engine fetchBunny StorageBunny CDNAdmin UI render
Known correct CDN base:
https://Lucia-Maintenance-Inbox.b-cdn.net

Model Layer

Current Development truth:
GPT-5.5 default model
Lucia JSON model gateway migrated from Chat Completions to OpenAI Responses API
Semantic conversational intent assist live in Focus Ops
GPT-5.5 response refinement sits over verified context packs with truth/routing guardrails
Strict brain quality eval reached 178/178 after workspace-context awareness
Model changes must preserve:
response contract
truth-state discipline
operator calm
routing correctness
Current live-dev product architecture:
Calendar = root operational reality
Booking Pulse = granular intelligence lens over booking/calendar reality
Signal Stream = what needs attention
Lucia Workspace = reasoning partner beside the operator
Focus Ops = shared reasoning and conversation
Dynamic Action Workspace = action/save surface
Full Booking Page = record/review surface
Guest-Facing Lucia = public concierge and claim/signal bridge
Guest-to-Operator Bridge = structured privacy-safe operational signal path
Eval Labs = behavioral proof and regression protection
Current product pillar:
Workspace OS / context-aware operator companion
Calendar-rooted operating intelligence
Signal → Action → Save → Reminder loop
Guest-facing public concierge with identity/linkage discipline
Guest signal → Operator review/link/action loop
Current doctrine:
Calendar is Lucia's temporal spine.
Lucia Workspace is the reasoning partner beside the operator.
Infinite real-world property tasks.
Finite beautiful action workspaces.
Lucia routes the human to the right one.
Lucia Workspace + DAW is the cockpit.
Full Booking Page is the record/review surface.
Guest-facing Lucia is a front-of-house teammate.
Operator-facing Lucia is a calm operating partner.
Eval Labs is the proof/regression system.
This is Development/live-dev runtime truth. It is not a production-readiness claim. Current Admin runtime truth:
Lucia Workspace Sidebar Mode is implemented
Top shell opens Workspace from the top-left icon and Open Workspace
Old sidebar navigation is bypassed/removed from active shell behavior
Topbar spans the full browser width
Workspace body sits below the topbar
Lucia sidebar and app workspace are side-by-side at 1000px+
Lucia sidebar is resizable from 260px to 460px
Lucia sidebar width preference persists
Workspace open/closed state persists across refresh
Lucia Workspace remains open across route changes
Same Focus Ops conversation is shared between Dashboard embedded mode and Workspace Sidebar mode
Signal Stream Chat seeds the shared Lucia conversation
Reset clears the shared conversation and context
Workspace context is sent through active_context.workspace
Workspace sidebar visual polish is complete for 260/320/380/460px widths
Dashboard Focus Ops composer breakpoint bug is fixed around 1280px
Calendar is second in the main nav
Calendar route is /calendar
Calendar reads /admin/bookings
Calendar shows monthly booking/stay-window reality
Calendar supports bounded continuous scroll: 12 months back, 24 months forward
Calendar booking clicks route to /bookings/:bookingId, not DAW
Booking Pulse derives from the same booking source
Signal Stream expands up to 20 rows with Show More
Signal Stream supports move-to-top persistence and dismiss persistence
Guest signals render in Admin Signal Stream
Actionable guest signals are visible before collapsed rows
Unlinked guest signals show honest review/link language
Candidate/unlinked guest signals do not fake DAW routing
Signal Stream wraps due reminders as Open Reminder cards
Got it acknowledges a due reminder; it does not resolve the underlying issue
Dashboard polling brings due reminders in without manual refresh
Lucia Workspace / Focus with Lucia is the active conversation workspace
Dynamic Action Workspace at `/ops/actions` is the default CTA surface for structured Focus Ops actions
Resolver Matrix exists as a routing proof layer
Admin shell topbar is sticky/stable
Route changes reset scroll to top
Current Engine runtime truth:
Engine normalizes active_context.workspace safely
Lucia can answer workspace-orientation and workspace-next-step prompts using current surface context
Supported surfaces: Dashboard, Calendar, DAW, Full Booking, Bookings, Maintenance, Concierge, Tasks, Reconciliation
Explicit prompt subject still wins over page context
Engine avoids raw metadata language like active_context, current_surface, payload, and metadata
Prior recommendation memory implemented
Newest verified recommendation replaces older active recommendation
Prior offer context implemented: yes confirms the last offered action instead of generic fallback
Filler/preamble normalization implemented
Next-step sequencing resolves What is next / Now what / What should I handle next through workspace and prior context
Payment priority hardened: near-arrival open payment/balance outranks normal concierge extras unless verified habitability/safety/access issues outrank or tie it
Saved DAW workflow awareness implemented
Engine can distinguish DAW workflow saved from underlying issue unresolved
Development bootstraps realistic demo fixture: 36 bookings across 18 occupied months
Demo fixture has no impossible overlaps and no stale arrival_profile days
Villa Valentin is modeled as one rentable inventory unit
real operator reminder persistence
relative reminder timing: in one minute, in X minutes, in X hours, tomorrow, next week
due reminders exposed through dashboard data
reminder acknowledge endpoint
Engine build identity exposed on GET /
Focus Ops scoped entity routing fixed: named guest/service/request overrides generic ranking
Focus Ops supports active_context from Signal Stream Chat
Focus Ops supports prior recommendation memory for short follow-ups
Newest verified concrete recommendation replaces prior recommendation memory
Strict brain quality eval reached 178/178 after workspace-context awareness
Payment DAW hydrates known guest identity when available
DAW saved state is sent to Lucia through active_context.workspace
Engine normalizes guest signals into explicit identity/linkage contract fields
Anonymous/unlinked guest signals default to public_only / review_only / no mutations
Guest-claimed bookings default to candidate_booking / operator_link_required / no mutations
Verified guest sessions use verified_booked_guest / verified_booking boundaries
Engine accepts signed guest signals through /v1/guest/signals
Candidate lookup supports conservative booking verification matching
Magic-link verification token/session state is implemented
Verification emails go only to the booking email already on file

Repositories

hello-lucia/lucia-admin
hello-lucia/lucia-booking-engine
hello-lucia/lucia-marketing
hello-lucia/lucia-guest-agent
Branches:
dev
stage
Admin Development CI:
npm ci
npm run lint
npm run build
Admin dev deploys after checks pass.

Current Deferred Items

Postmark API attachment retrieval
Resend message id/send status persistence to Supabase
full maintenance inbox integration into Engine Focus Ops prioritization
richer Calendar visible-month and booking-detail context sent to Engine
automated testing of guest verification combinations
Eval Labs guest identity battery
Admin guest signal review/link surface
verified session use in guest-agent conversation context
durable persistence for guest signals and verification state
rate limiting / replay / spam hardening
operator-linked booking verification
inquiry record support
guest-of-guest verification paths
production privacy/consent copy
onboarding/property profile/payment policy capture
users/permissions
billing/payment gateway/subscriptions
production environment routing
guest-surface production hardening
v0.1.3.6 staging promotion
Villa Valentin exclusive live launch
mobile/tablet Workspace UX later

See Also