R1 · daemon mode

Daemon Mode.

R1 as a process, not a shell one-shot. Persistent queue. Append-only WAL. Resizable worker pool. HTTP control plane. Crash resumes from disk.

The shape of the system

Daemon Mode turns R1 into the harness and the loop at the same time. Instead of depending on external cron plus an orchestration wrapper, one long-running R1 process owns task admission, queue persistence, worker scheduling, WAL emission, underdelivery checks, and operator control. The failure boundary moves from shell glue into a single process with explicit state on disk.

Queue. Workers. WAL. One resumable loop.

Ten workers orbit the persisted queue while the WAL keeps a proof trail. Pausing the loop drains active work and preserves the queue; resuming restores scheduling without a restart.

loop live · queue restored
daemon.wal
admission queue
05 tasks waiting to enter the pool
queue.json 00 queued
recent completions proof flushed
queued running done underdelivered
POST /enqueue · GET /status · POST /workers · GET /wal
What the animation is proving

Queued work moves into the pool, workers drain or underdeliver, and every outcome lands in the WAL before the loop restores the next task set. That is the claim: the same harness guarantees survive across hours, retries, and restarts.

Operator surface

SurfaceWhat it does
POST /enqueueAccepts new work without bouncing the daemon. Tasks land in the persisted queue immediately.
GET /statusReports worker counts, queue depth, pause state, and hook inventory.
POST /workersRaises or lowers concurrency at runtime.
POST /pause / POST /resumeStops admission into the pool, then restores the previous pool size later.
GET /walStreams the append-only execution ledger used for audit and recovery.
POST /hooks/installInstalls new safe hooks while the process stays hot.

Why it matters

The claim is not “background jobs.” The claim is that the same harness-driven guarantees survive when work stretches across hours, retries, and restarts. Receipts still exist. Gates still exist. Underdelivery checks still exist. The loop no longer depends on external shell orchestration to remember where it was.