# Supabase and localStorage Verification > [!summary] > Platform readiness requires Supabase truth, UI truth, and compact client persistence to agree. --- ## Supabase truth check For the 60-run gate, Supabase returned: ```text ready | 60 | 3000 | 3000 | 3000 | 3000 ``` That maps to: - status: `ready` - runs: `60` - expected prompts: `3000` - run items: `3000` - Lucia responses: `3000` - reviews: `3000` This confirms persisted cloud data matched the expected platform gate count. --- ## localStorage compactness target The target diagnostic is: ```text persistedLocalFullPayloadSessionCount = 0 persistedLocalHasItemLevelData = false persistedLocalItemLevelDataSessionCount = 0 ownedSessionCount = expected run count otherOwnerSessionCount = 0 ownerlessSessionCount = 0 ``` --- ## Final verified diagnostic ```text sessionCount = 60 persistedLocalFullPayloadSessionCount = 0 persistedLocalHasItemLevelData = false persistedLocalItemLevelDataSessionCount = 0 ownedSessionCount = 60 otherOwnerSessionCount = 0 ownerlessSessionCount = 0 rawByteSize around 68,815 ``` --- ## Interpretation This proves the tested owner context did not persist full item-level payloads locally after the gate. It also proves no other owner or ownerless sessions were visible in the diagnostic for that tested context. It does not prove: - all future accounts are safe - backend/RLS authorization is complete - external evaluator security boundaries are ready by themselves Keep this distinction explicit in future release and onboarding work. --- ## Behavioral label persistence check Behavioral Observatory labels use a separate table: ```text public.eval_behavioral_labels ``` This table is not part of the original 60-run platform readiness count. The 60-run gate verified: ```text eval_runs eval_run_items eval_item_reviews localStorage compactness ``` Behavioral label verification must separately confirm: - the `eval_behavioral_labels` table exists - RLS policies exist - the one-label-per-reviewer-per-run-item constraint exists - a saved label reloads after refresh - failed saves are not counted as persisted labels Read next: [[06 - Behavioral Label Persistence|Behavioral Label Persistence]].