Skip to content

Crisis live flip log

Gate: Gate 1 Radio Check / Phase C crisis UI
Clinical artifact: lastvet-gates/docs/compliance/crisis.blocklist_advisor_signed.md
Protocol: lastvet-gates/CRISIS_PROTOCOL.md Section 2 (verbatim)


PREPARED (not executed) — re-flip sequence after remaining gates

Do not run until: (1) item 5 dismiss→reopen→re-fire verified on device, (2) Ryan explicit GO. Mic clinical v1.5 is MET. Counsel is not a gate. Clinical sign-off alone is not enough for the crisis flag.

Clinical sign-off reference (already landed): Mic (Matt Miclette) signed v1.5 by email 2026-09-21. Cite that email + Muster crisis-protocol-v1-3-pre-go-live-reflip note of the same date in the executed flip entry below when run.

Sequence (staging first, then prod)

  1. Confirm checklist greens in CRISIS_PRE_GO_LIVE_VALIDATION.md (items 1-4, 6, 7 still green; item 5 newly cleared; item 9 clinical MET). Counsel is not required.
  2. Staging only: on lastvet-api VM, set LASTVET_CRISIS_LIVE_ENABLED=true in /etc/lastvet-api/lastvet-api-staging.env (Bitwarden-synced). Restart staging API so crisisLiveHandoffEnabled becomes true. Leave prod false.
  3. Device verify (staging): Need support / Meridian Ask crisis path shows Section 2 card (not stub). Walk: dial/text/chat affordances, Hide for now → Crisis Support reopen → new qualifying turn re-fires. Do not place real emergency calls.
  4. If staging verify fails: set staging back to false, log rollback row, fix, do not touch prod.
  5. Prod: only after staging green + Ryan GO. Set LASTVET_CRISIS_LIVE_ENABLED=true in /etc/lastvet-api/lastvet-api-prod.env, restart prod API.
  6. Device verify (prod build / TestFlight): same Section 2 + dismiss/reopen/re-fire spot check.
  7. Log this file: append an executed section with before/after, environments, Mic v1.5 email reference, verifier, time. MERIDIAN_M1_ELIGIBLE is a separate env flip (Service Matches live labeling). Do not conflate the two.

Rollback: set LASTVET_CRISIS_LIVE_ENABLED=false on the affected env(s), restart API, log a rollback row (same pattern as 2026-09-16 evening).


2026-09-16 (evening) — ROLLBACK to stub (Mic scoped follow-up)

Variable Before After Environments
LASTVET_CRISIS_LIVE_ENABLED true false (988 stub) staging + prod

Why: Mic’s follow-up scoped the sign-off as clinical-content only and listed before-go-live conditions we had not met (four new blocklist categories, full validation checklist, counsel review, consolidated dated protocol for version-specific sign-off). Live Section 2 was ahead of those conditions.

B-028: Meridian crisis_gate does fire on B-028 roleplay + multi-turn tests pass — not the sole reason for rollback. Rollback is for the broader unmet go-live list + blocklist category additions.

Re-flip rule: Only after validation checklist in CRISIS_PRE_GO_LIVE_VALIDATION.md is green and Mic signs a dated protocol version that includes the four new categories.


2026-09-16 (afternoon) — Initial flip (superseded by evening rollback)

Clinical sign-off (later scoped)

  • Who: Mic (Matt Miclette), clinical advisor of record
  • How: Phone + written “yes confirmed on all fronts.”
  • Later nuance: Follow-up = clinical-content endorsement conditional on go-live validation + blocklist category additions. See updated artifact.

Env flip (later rolled back)

Variable After afternoon flip After evening rollback
LASTVET_CRISIS_LIVE_ENABLED true false
MERIDIAN_M1_ELIGIBLE unchanged (false) unchanged (false)

Device verification (afternoon)

Verifier: Ryan — GREEN for Section 2 UI on Build 84 while flag was true (compliant handoff, not stub/legacy). Useful engineering proof; does not clear Mic’s full pre-go-live list.

Meridian m1_eligible (held)

Separate product flip from the crisis flag. When true, Service Matches payloads label live (not preview). Does not send chart PHI to Meridian servers. Clinical crisis endorsement alone does not flip MERIDIAN_M1_ELIGIBLE. Counsel is not a gate on this flip either.