# Release and Validation History > [!summary] > This page captures the major Eval Labs hardening steps that made the system ready for real Lucia development. --- ## April 2026 milestone Eval Labs became usable for active Lucia development after the custom prompt, review, tester identity, environment, CORS, and persistence work landed. --- ## Key product changes ### Custom prompt launcher Commit: ```text 884f194 evals: add custom prompt launcher and saved suites ``` Added: - fork landing page - custom 1–10 prompt launcher - saved custom suites - custom run history - `runSource: custom` - shared Review Queue reuse --- ### Review completion and navigation Commit: ```text 3ef6fb5 evals: improve review completion and navigation ``` Added: - final prompt button changes from **Save & Next** to **Save** - completion action area - top-left brand home navigation - clickable breadcrumbs - `dist/` removed from Git tracking --- ### Tester identity exports Commit: ```text 16f53cd evals: attach tester identity to exports ``` Added: - `TesterIdentity` - prompt-level `savedBy` - top-level `exportedBy` - reviewer identity in CSV/Markdown exports - Clerk identity normalization --- ### Supabase run item conflict target Commit: ```text d51f9b1 evals: fix run item upsert conflict target ``` Changed initial `eval_run_items` upsert target from `id` to `run_id,item_index`. --- ### Supabase row identity reconciliation Commit: ```text fd8a366 evals: reconcile run item ids before upsert ``` Fixed primary-key collisions by reusing existing run item row IDs for the same logical `run_id + item_index` slot. --- ## Environment hardening ### Netlify Changed Eval Labs endpoint to: ```text https://api-dev.hellolucia.ai/admin/operator-focus ``` ### Render dev Engine Updated `ADMIN_ALLOWED_ORIGINS` to include: ```text https://evaluationlabs.ai https://www.evaluationlabs.ai ``` --- ## Validation outcome Validated: - Eval Labs deployed site calls `api-dev` - Engine returns 200 - custom prompt run succeeds - Supabase persistence succeeds - no CORS error - no `eval_run_items` 409 after latest bundle - exported identity metadata works --- ## Current status ```text Eval Labs is ready for active Lucia dev refinement and has passed the AI-reviewed platform readiness gate. ``` Use custom prompt suites as the primary tool for behavior-family refinement. Do not overclaim this as human Lucia-quality approval. --- ## May 2026 review-layer milestone Eval Labs gained a full layered review architecture: - adjudication-ready review schema - guided Employee Review fields - suggested review layer - Human Guidance Evaluation - Quick Review UX for non-expert reviewers - review state controls and routing - adjudication queue filters - canon-candidate workflow - JSON, CSV, and Markdown export parity for structured review evidence - lifecycle finalization - Supabase `promptRecord` payload persistence - dirty/completion state preservation - semantic stepped rating sliders - native-feeling confidence bar visual design Current doctrine: ```text Employee reviewers capture reaction. Senior adjudication assigns canonical meaning. ``` This should be treated as a major product and Canon milestone, not a cosmetic UI change. --- ## May 2026 product-surface and access milestone Eval Labs was refined into a more complete internal product surface: - top app shell owns page identity - in-page blog-style mastheads were removed from the app - Custom, Auto-generated, and Controlled Batch Runner surfaces were split - `/lucia/auto-generated` became the canonical normal generated tester route - `/lucia/automated` remains a legacy alias - `/analysis` became the canonical Global Analysis route - `/experiments` remains a legacy alias - Single Run Analysis was added at `/analysis/runs/:sessionId` - Run rows were standardized with two-zone layout and Copy dropdown patterns - Copy Session ID / Copy Deep Link controls were added across key surfaces - Global Analysis loading was fixed to show immediately - role-gated owner/admin/evaluator behavior was added as the initial product gate Historical access limitation at this milestone: ```text Backend/RLS enforcement still required before external evaluator rollout. ``` Current role and RLS posture is documented in [[03 - Current System State|Current System State]] and [[08 - Eval Labs Roles and Access Matrix|Eval Labs Roles and Access Matrix]]. --- ## May 2026 AI-reviewed platform readiness gate Final gate result: ```text 60 / 60 completed runs 3,000 expected prompts 3,000 eval_run_items 3,000 Lucia responses 3,000 reviews ``` Supabase verification result: ```text ready | 60 | 3000 | 3000 | 3000 | 3000 ``` localStorage verification: ```text sessionCount = 60 persistedLocalFullPayloadSessionCount = 0 persistedLocalHasItemLevelData = false persistedLocalItemLevelDataSessionCount = 0 ownedSessionCount = 60 otherOwnerSessionCount = 0 ownerlessSessionCount = 0 rawByteSize around 68,815 ``` This proves: - run creation - Lucia response capture - review generation - review persistence - run finalization - Run History truth - Global Analysis truth - Supabase/UI count agreement - localStorage compactness - controlled batch lifecycle - no visible cross-owner local leak in the tested owner context This does not prove: - Lucia is human-approved - Lucia is ready for real operator use - employee rollout is complete - human evaluators agree with AI scoring - backend/RLS permissions are complete by themselves Read next: [[04 - AI-Reviewed Platform Readiness Gate|AI-Reviewed Platform Readiness Gate]].