Inbox
This page explains the inbox in sMind by Spacing Mind: one list of permission requests, host pairing requests and host link problems, validator verdicts and stalled task trees that need a person, on the web and on a phone. It is for anyone who runs agents and wants one place to look instead of watching each task.
sMind by Spacing Mind, version 0.17.0. This page describes the 0.17.0 release.
The inbox is one list of what needs a person. It is derived live from the real state of the daemon on every read: the permissions a run is waiting on, the validator verdicts waiting for your decision, the task trees that have gone quiet, and, when connected hosts are on, the pairing requests and host links that need a look. Nothing is stored except what you did to an item: seen, snoozed or resolved. An item that no longer derives (a permission answered, a verdict superseded, a stall cleared) leaves the list on its own, and a restart cannot lose or duplicate anything because there is no stored list to drift.
What appears here
Eight kinds of item:
| Kind | What it is | When it leaves |
|---|---|---|
| permission | A tool a run wants to use and is waiting for you to allow. The row shows a redacted line (the tool and, for a file, its path); the full request stays in the card. | When you answer it, or the run ends and retires it. It cannot be snoozed, resolved or hidden: it blocks a run. |
| verdict | The newest validator verdict of a task that needs you: a fail, a blocked verdict or a scope violation, or a pass at the current commit that is ready for your merge decision. The validator itself is described in Orchestration. | By itself when it is superseded: a push makes its commit stale, a newer validation replaces it. Or when you resolve it. |
| stall | A task tree with unfinished work but no run and no queued prompt for a while. | When the tree runs again, or when you resolve it. |
| host_pair | Another host asked to pair with this one and waits for you to approve it. Compare the code both hosts show, then approve or reject on the Hosts page (see Hosts). | When you approve or reject it. |
| host_refused | A link to a paired host was refused: the host's key changed, or its smind version does not support what this link needs. The row carries the update guidance. | When the cause is fixed and the link comes up, or when you resolve it. |
| host_down | A link to a paired host has been down for more than five minutes. A brief reconnect never shows here. | When the link comes back, or when you resolve it. |
| review | A finished Steward review of a task, labelled Steward review. The row carries the verdict as its chip, the pull request and head commit, and the gates that failed; a BLOCKED review is marked high attention. Open it for the review card. | When its head commit moves, a newer contract or review replaces it, or you resolve it. An open review with no verdict yet never shows. |
| run_failed | A run that failed with a class that has a next step (auth_expired, model_not_in_plan, plan_window_exhausted, rate_limited, or a transient_429 that is not already being retried). The row shows the next step (for example Sign in again, or the models the plan allows) as a button, and auth_expired and model_not_in_plan are marked high attention. cli_exited keeps the Continue button on the run instead. See Why a run failed. | When a later run of the task replaces it, or you resolve it. |
Host rows only exist when connected hosts are turned on. A remote host's permission request is not a host row: it is an ordinary permission row, shown on the host that runs the agent.
On the web the list is grouped Needs you now (permissions), Host pairing, Hosts refused, Hosts unreachable, Validator verdicts and Stalled. The phone uses the same groups.
Open it
On the web, the sidebar footer has an Inbox button with a badge; it opens the inbox screen over the app. On a phone, the Tasks screen's header has an Inbox button with the same badge (see Mobile and relay pairing).
Act on an item
A permission can only be answered, one request at a time. On the web the row has Review request, which expands the same permission card the task page shows, with the full request, path and diff, and you answer it there. On a phone the row opens the task and you answer on the task screen. There is no approve-all, and no snooze, resolve or hide for a permission.
A verdict, a stall or a host row can be:
- marked seen;
- snoozed — on the web for 1 hour, 4 hours or Tomorrow (24 hours); on a phone for 1 hour, 4 hours or until tomorrow. Every snooze is under 24 hours, and when the time has passed the item is new again;
- resolved, which takes it out of the list;
- opened: Open task goes to the task the item is about; a host row has Review hosts instead, which opens the Hosts page (Settings → Hosts on the web, the Hosts screen on a phone).
Keyboard (web)
j/k and the arrow keys move between rows. Enter opens the focused row: for a permission it expands the request, for anything else it opens the task. s snoozes with the first option (1 hour) and e resolves. s and e never act on a permission.
Who can do what
Reading the inbox works over the relay too, so a paired phone sees the same list. seen, snooze and resolve change only your own view, so they work from a phone as well, but every inbox call is refused for agents and for tasks an automation started: no run can touch your inbox. Answering a permission from the inbox goes through the same path as on the task page, with the same checks; the inbox adds no new way to answer one. The inbox never merges anything, and a paused automation is not an inbox item (see Automations).
Badge
The badge on the Inbox button counts the new items plus every pending permission: a permission always counts, even once the row is marked seen. A snoozed item is not counted until its time has passed. Over 99 the badge shows 99+.