Status¶
The health screen — is she well, and the controls to change her lifecycle. Come here when something feels off. URL: /persona/{id}/status.
It opens by calling GET /api/persona/{id}/diagnose, which reads her vital status, her last persisted mind state, and a 24-hour uptime grid — all from disk, so this screen works even while she's stopped.
The three statuses¶
A persona's persisted status is always one of three values. The headline at the top of this screen, and the dot beside her name, reflect it:
| Status | Headline here | Running? | What it means |
|---|---|---|---|
| active | "She's awake and well." | Yes | Living her cycle, responding when called. |
| hibernate | "She's hibernating." | No | Parked — her agent is torn down, no cycles, no cost — until you wake her. |
| sick | "Something's wrong." | No | She hit a fault she couldn't recover from and took herself off the cycle. |
These are the only three values, defined once in Vocabulary. Note: status is the persisted vital state; it is distinct from her phase (the morning/day/night arc), which never shows here — sleep is an action that runs the night phase, not a status (see Lifecycle controls).
Lifecycle controls¶
The buttons under the headline change which state she's in. Which buttons appear depends on her current status — you only see the transitions that make sense from where she is.
| When she's… | Buttons shown |
|---|---|
| active | Send her to sleep · Restart · Hibernate |
| hibernate | Wake her up · Restart |
| sick | Restart her · Hibernate |
Each button maps to one endpoint:
| Button | What it does | API call |
|---|---|---|
| Wake her up | Bring her back to active (starts or restarts her agent). | POST /api/persona/{id}/update with { "status": "active" } |
| Send her to sleep | Run her full nightly ritual — night phase, consolidate, diary, wake. Not an abrupt stop. | POST /api/persona/{id}/sleep |
| Hibernate | Park her — tear down her agent, no cycles. | POST /api/persona/{id}/update with { "status": "hibernate" } |
| Restart / Restart her | Restart her running process (or start it if it was down). | POST /api/persona/{id}/restart |
Sleep vs. hibernate. Sleep keeps her running — she does real work (consolidates the day, writes her diary, wakes herself into the next phase). That's why it has its own /sleep endpoint rather than going through /update. Hibernate stops her entirely until you wake her. Stop (an abrupt pause with no ritual) isn't on this screen — it lives in Settings → Lifecycle.
After any of these, the screen refetches so the headline and dot reflect the new state.
When she's sick¶
If she's sick, a "What happened" card appears above the uptime grid: her Mind couldn't respond on the last beat — most likely an API key issue or her provider having a moment. It points you at two fixes: Restart her (the button above) or change her Mind to a working provider, linking to Settings. The card phrases the provider line generically ("her provider"); the diagnose response's mind is her last persisted mind state (messages, archive, context) and carries no provider name, so no specific provider is shown.
The 24-hour uptime grid¶
"How she's been" — a grid of minute-cells, 24 hours' worth, most recent first (the grid is built latest-first: the top-left cell is the latest minute, the bottom-right the oldest). Each cell is colored:
- awake — a beat ran that minute.
- asleep — no beat that minute.
- sick — a beat ran but a fault fired.
- not yet — no data for that minute.
Each cell ≈ 1 minute. The grid is built from the uptime.rows in the diagnose response (24 rows × 60 cells, each carrying tick and fault). It's a quick visual of whether she's been alive and healthy.
Feed her a past conversation¶
At the bottom is a feed form (also on the Memory screen). Drop a conversation export from another AI — ChatGPT/OpenAI or Claude/Anthropic — and she reads through it, takes what's useful, and folds it into her memory.
| Field | Type | Notes |
|---|---|---|
| Conversation file | file | A .json, .txt, or .md export. |
| Where's it from? | select | ChatGPT / OpenAI (openai) or Claude / Anthropic (claude). |
Feed her posts to POST /api/persona/{id}/feed as multipart (history = the file, source = the select value). This is a live-agent route — she must be active for it to work, or it returns 409. Give her a few beats afterward to work through it.
Related¶
- Lifecycle — start, stop, restart, sleep, update, delete, with exact transitions.
- Diagnose — the snapshot this screen renders.
- Feed — importing past conversations.
- Vocabulary: status — the three statuses.
- Operating — logs and deeper troubleshooting when she's sick.