Using One Connect
Inbox, approvals and decisions
Everything that needs you lands in one inbox. Approvals answer an agent's tool request; Decisions authorize one exact action, and nothing irreversible happens without a second confirmation.
The inbox#
The Inbox button in the top bar shows how many things are waiting for you. The drawer has three sections:
- Questions and approvals: agents waiting on an answer or a tool permission.
- Decisions: merges, releases, connector access, settings changes, Docker actions, cost approvals and other gated actions.
- Alerts: stalled runs, idle agents, sync problems and anything else the rules flagged, critical first.
A new item plays a short sound when UI sounds are on. The same inbox is available on a paired phone.
Questions#
An agent calls ask_human when it needs a product, cost, security or scope decision, or when something is ambiguous. Its run waits until you answer. The question shows its context and any options the agent offered; your answer goes straight back to the agent and is recorded with who answered, when, and through which channel.
Approvals#
Approvals are tool permission requests from a running agent, routed to One Connect by the harness (Claude Code's --permission-prompt-tool, and OpenCode's permission requests).
- Edits inside the assignment's scope, and non-destructive shell commands when the agent has
allow_shell, are allowed automatically. - Pushes, deploys, migrations, publishing and messaging always wait for you. The list is
policies.require_approval: by defaultpush_protected,deploy,prod_db_write,migration_apply,publishandsend_message. - The shell prefixes pre-approved for every run exclude anything that deletes files or rewrites shared git refs.
- An approval that waits longer than
policies.stall.approval_pending_minutes(default 15) raises an alert.
Decisions#
A Decision authorizes one exact action. It is built for a phone: the question, the options with a recommendation, the evidence behind it, the risk and urgency, and a second confirmation for anything irreversible.
- Bound. The Decision records a hash of the exact action: the commit SHAs for a merge, the Compose inputs for a Docker action, the full configuration for a settings change, the payload for a message. If anything changes, the Decision no longer applies.
- Expiring and single-use. Most action Decisions expire within minutes (two for a clone or a Docker action, ten for a tunnel launch or an outbound message, fifteen for a cost approval) and work once.
- Durable. A button never grants permission by itself; the daemon acts only on a recorded answer. Answers and their audit events commit together and survive a restart.
- Human only. Agents, Jev and system recommendations can suggest, but they can never answer a Decision.
Each Decision has an Audit history of who prepared, answered and executed it. Merge Decisions say Local merge only. Nothing is pushed or deployed.
What creates a Decision#
| Action | Where it comes from |
|---|---|
| Merge into the integration branch | Review & merge |
| Settings change | Review settings changes in Settings |
| Cost approval for a metered agent | Review cost approval in the agent builder |
| Docker start, stop, restart, build, pull or down | Terminal and containers |
Clone or git init | Projects |
| Connector inventory and each tool call | Connectors |
| Release step, rollback or inspection | Release cockpit |
| Tunnel launch and each outbound notification | Phone and alerts |
| A workflow decision you own | Canvas |
Alerts#
Alerts come from rules watching the event log. Each is deduplicated per condition with a cooldown and redacted.
| Alert | Raised when |
|---|---|
| Stall | A run has produced no events for stall.no_event_minutes (default 10) |
| Approval pending | An approval has waited stall.approval_pending_minutes (default 15) |
| Idle with work | An agent has been idle idle_alert_minutes (default 5) with work queued |
| Usage limit | An agent hit an included-usage limit; a reassignment is suggested |
| Missing handoff | A run finished without a handoff; a skeleton is offered |
| Out of sync | Two tracker deliveries failed, or the tracker drifted from the log |
| Scope violation | An agent edited files outside its allowed paths |
| Model mismatch | The vendor served a different model than requested |
| Login expired | A subscription CLI is no longer signed in |
| Orphaned run | A run could not be reattached after a restart |
| Checks and infrastructure | Required checks failed or were unavailable, or a hosting probe found a problem |
Resolve an alert once you have dealt with it. Rules can be turned off individually under policies.rules.
Jev decision advice#
Jev (TypeSafe's System One model) is an optional advisor for the Decisions inbox. It is off by default, and enabling it needs your explicit cost, network and data confirmation for the exact host, plus a jev key in your Keychain.
- Every request previews exactly what would leave your Mac: the bounded, redacted evidence and the exact request body. You confirm that body's hash before it is sent.
- Jev returns a suggested option with a probability distribution and confidence. Its advice is shown separately from agent suggestions and human answers.
- Advice is invalidated when the evidence changes. Jev can recommend; it can never record a human approval.
Turn it on under Settings → Agents and sign-in → API keys (pay per token) & optional services.