Enabling autopilot
The Autopilot chip appears in the composer header for active sessions. Tapping it opens a confirm sheet that warns the toggle will interrupt the current turn. Confirm to proceed. Per-repo trust gate: If the current repo is not on the trust list, the confirm sheet shows “Trust this repo for autopilot?” The CTA becomes “Trust repo + enable autopilot”, which callsAutopilotState.trustRepo(repoKey) before enabling. A repo you have never trusted cannot have autopilot enabled without this explicit step.
The trust list persists at ~/.clawdmeter/autopilot-trusted-repos.json.
Daemon enforcement: handleSetAutopilot returns HTTP 403 when req.enabled is true and the repo is not on trustedRepoKeys. Token-holding peers — including iPhone — cannot bypass this check at the wire level.
Rate limits
The daemon enforces rate limits per session:| Action | Limit |
|---|---|
| Prompt send | 1 per second |
| Model / effort / mode swap | 1 per 5 seconds |
HTTP 429. The mobile command outbox will retry after backoff rather than surfacing the 429 as a failure.
Audit logs
Every write action is recorded as hash-only JSONL (no plaintext content, no PII) under~/.clawdmeter/audit/:
| File | Contents |
|---|---|
sends.jsonl | Prompt-send events |
swaps.jsonl | Model, effort, mode changes; plan-approve respawns |
autopilot.jsonl | Autopilot enable/disable events |
mobile-commands.jsonl | All idempotent write commands from the outbox |
mobile-commands.jsonl are replayed to re-seed the idempotency dedup cache, so in-flight retries from the phone are still caught after a daemon restart.
Diagnostics
Settings → Diagnostics has two surfaces:- Audit Log browser
- Wire Inspector
Shows
sends, swaps, and autopilot logs with a text + session-ID filter. Tap any entry to expand the raw JSONL. The “Open in Finder” button reveals the log directory at ~/.clawdmeter/audit/.