Crisis Mode
When everything is on fire right now. Breathing timer first, then a 1-sentence action, then your child's regulator, then a log button. No AI lag, no chips, no inputs.
When to use this
Use Crisis Mode when the meltdown is happening, not after. Tap the ๐จ floating button or go to /crisis. Pick the scenario closest to what's in front of you. Beacon runs you through a 30-second breathing timer (skippable), then shows ONE thing to do, then names your child's regulator (pulled from the profile). After it's over, you can log it in 1 tap so the pattern shows up later.
How it works
8 scenarios on the picker
Parent SOS, full meltdown, shutdown (nonresponsive), aggressive (hitting/kicking/throwing), self-harm, public meltdown, elopement (running), stuck transition. Each one routes to its own response page.
Breathing timer first
30-second guided breath before any instruction shows. You can skip ('Skip, show me what to do' button). The skip fires breathing_timer_skipped so we can tell who needs it bypassed in the redesign.
One action + your child's regulator
After the breath, ONE bold sentence (what to do). Below it: your child's name + the regulator you wrote in onboarding ('Avery calms down with deep pressure'). Pulled live from child_profiles.
Log it in 1 tap
After the crisis passes, tap Log. Saves to crisis_logs (scenario + timestamp + optional note). Pattern shows up in Behaviors over time so you can see the cluster (e.g., 'meltdowns at 5pm every Tuesday').
What Beacon stores when you use it
crisis_logs: One row per logged crisis. Different from generator_uses (no AI generation, no content blob). Powers the Behaviors trend view.
| Column | Type | Example |
|---|---|---|
| id | UUID | 1a2b... Auto-generated. |
| user_id | UUID | your-user-id RLS-locked. |
| scenario | text | meltdown One of the 8 scenario ids: parent, meltdown, shutdown, aggressive, self-harm, public, elopement, transition. |
| note | text | After dinner, dropped fork Optional. What was happening when it kicked off. |
| created_at | timestamp | 2026-05-16T17:42:00Z Crisis time. Drives the time-of-day pattern. |
A real example
Maya is in the grocery store. Avery is on the floor. Maya taps ๐จ, picks 'Public meltdown, everything is unraveling'.
| Phase | Whats_on_screen | What_Maya_does |
|---|---|---|
| 1. Breath | 30-second timer + 'Take a breath first. Then we'll help.' Maya skips after 5s. | Stops talking. Stands still. |
| 2. Action | ONE bold line: 'Get to the floor. Get small. Don't fix this in public.' | Drops to knees beside Avery. Doesn't try to pick her up. |
| 3. Regulator | 'Avery's regulator: deep pressure hug, 10 seconds.' | Offers the hug. Avery refuses at first, then accepts after 30s. |
| 4. Talk to Beacon | Button at bottom: 'Talk to Beacon' (opens /chat?crisis=public). | Skips. Doesn't need chat. Heads to the car. |
| 5. Log (in car) | Crisis logger. Note: 'Cereal aisle, music too loud'. | Taps log. Drives home. Sees the pattern in Behaviors next week. |
What Beacon auto-knows
- Your child's name + regulator (from onboarding / settings).
- Every crisis you've logged (scenario + timestamp + note).
- Time-of-day cluster: which scenarios cluster at which hours.
- Whether you skipped the breathing timer (the data shapes the redesign).
How it fits with Chat
- Crisis Mode itself has no Discuss button. The page is for the moment, not the analysis.
- But the logs feed Behaviors, and the Behaviors page DOES have Discuss. From there: 'My meltdowns cluster at 5pm. Why?' Beacon reads the logs + scenarios + notes and walks the pattern.
Try these with Beacon
โI just had 3 elopements this week. What's the pattern?โ
Reads the last 30 days of crisis_logs filtered by scenario=elopement. Returns time-of-day + day-of-week cluster + any notes you logged. Suggests an intervention (e.g., 'all 3 were 2-4pm, post-lunch transition; add a sensory break at 1:45').
โAvery's regulator changed. Update it.โ
Routes to Settings โ child profile editor (cannot edit from chat). Tells you which field to update. Next Crisis Mode pull will use the new regulator within 1 second.
โThe breathing timer is too long. Can I shorten it?โ
Currently fixed at 30s with a skip. Feedback noted; the skip fires the analytics event so the team sees the demand. In the meantime, tap Skip and skip the analytics fight.
โShow me last month's crisis logs.โ
Returns the count by scenario, the time-of-day distribution, and the 3 most-noted triggers (parsed from the note field). Useful for an IEP meeting or therapist update.