Documentation Index
Fetch the complete documentation index at: https://docs.signalrooms.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Approvals
Status: Current reference for the approval-gate model. App-level approval evidence is In progress. Approvals are the seat in the loop that distinguishes “an agent inspected something” from “an agent did something.” Read methods are always free; action methods sit behind two gates, an explicit operator-intent step and a global automation-enabled toggle.The two-gate model
Gate 1: automation enabled
Warmr has a global Automation Enabled toggle in the app. When it’s off, the control plane refuses every action method and returns a domain error:- On during posting runs and active workflows.
- Off during setup, debugging, configuration edits, or any time the operator wants the host to be observable but inert.
status, devices.list, templates.list, thread.list, logs.subscribe) work in both states. You can fully inspect the host with automation off, you just can’t change anything.
What’s gated by this toggle
Currently gated:thread.start, start a posting run / activity workflow / onboarding run.thread.stop, gracefully stop a running thread.evidence.export, write a evidence bundle to disk.app.start/app.stop/app.restart. Warmr lifecycle.warmrctl install/upgrade/uninstall, installer surfaces.
Gate 2: operator intent
The second gate is caller-side: the agent or operator running the command needs explicit intent to issue an action. For human operators, intent is the click in Warmr.app or the typed command in a terminal. For AI agents, intent is more structured:- The operator named the action: “start configuration X” or “stop the run on lane 2.” Generic instructions like “run my morning routine” need a durable record of what that routine is.
- The agent ran pre-flight inspection:
status,devices list,thread listto confirm the action wouldn’t collide with existing work. - The agent confirmed the configuration matches the operator’s description: same template, same accounts, same lanes.
- The agent captured pre-action state as pre-action evidence.
What “approval” means for each action
| Action | What needs operator intent | Reversible? |
|---|---|---|
thread.start | Operator named the configuration ID | Yes (thread.stop) |
thread.stop | Operator approves stopping mid-run | Yes (restart) but in-flight publication state may not survive |
evidence.export | Operator approves writing the evidence bundle | Each export creates a separate bundle; you can re-export |
app.restart | Operator approves interrupting every lane on the host | Hard to reverse, in-flight runs lose state |
app.stop | Operator approves shutting Warmr down | Hard to reverse if other agents/operators are mid-action |
warmrctl install (install helpers) | Operator approves modifying the host | Some helpers are install-only, no automated uninstall |
app.restart and the install helpers are the most destructive of this set. Treat them as “operator must be present and aware,” not “operator nodded at it last Tuesday.”
Agents and action commands
The rule from Agent docs:
Read-only methods are always safe. Action methods require operator-approved intent and require automation to be enabled. If an action method returns automation disabled, don’t try to enable it, surface the error to the operator and stop.
Agents that try to work around an automation disabled error are violating the policy. The expected response is:
app.start to try a workaround. It doesn’t poll. It reports and stops.
Approval evidence (In progress)
Each action’s response frame is the immediate evidence of intent. Including:- The JSON-RPC
request idthe agent sent. - The action method.
- Timestamp.
- Schema version.
Operator-side approval checklist
Before issuing an action that touches a lane:- Automation enabled in Warmr.app.
- Lane connected (
isConnected: true), runner installed, profile trusted. - No conflicting thread already running on the lane.
- Template and account list match expectation.
- Cooldowns and pacing reviewed for this configuration.
- Logs visible (either Warmr’s Logs view or
warmrctl logs --followin a terminal).
Related
- Agent docs, full agent-side workflow including pre-flight, action, and evidence capture.
- Failure recovery, what to do when a gated action fails.
- Logs and evidence, capturing the artifacts that make an action reviewable after the fact.
- Forbidden agent actions, actions that even the automation toggle won’t authorize.