Lumen
Use the workbench

Understand parallel agents

Read product-owned tasks and attempts without confusing them with disposable runtime processes.

Outcome

You can distinguish durable product delegation from disposable attempt processes and inspect a bounded parallel task graph.

Prerequisites

Understand plans, tasks, and attempts.

Steps

  1. Treat every task as PostgreSQL-owned durable intent.
  2. Treat every attempt as one immutable try with its own generation and event sequence.
  3. Distinguish durable attempts from subagents.delegate. That runner-local tool creates bounded, non-recursive child Agent sessions inside one attempt, shares the parent's budget, and returns bounded reports. A child has no durable task/attempt identity and its process state is not a handoff.
  4. Use product-level messages, approvals, budgets, and cancellations for durable coordination rather than runtime-local state.
  5. Inspect each dependency edge's named/classified immutable artifact before trusting a join. Confirm its ID, digest, size, media type, predecessor attempt generation, and plan revision; the successor initially receives those exact frozen bytes in its locally materialized context.
  6. Read waiting counts separately for dependencies, inputs, budget, capacity, approvals, and operator intervention. The scheduler admits ready tasks in deterministic order under the run concurrency and nested budget limits.
  7. Treat Temporal child workflows as durable coordination. PostgreSQL remains the authority for graph readiness, attempt generations, results, and cancellation fences.

Verify

No local runtime session, scratch Python variable, ephemeral child report, or process record is the sole copy of user-visible work. Exercise a fork/join fixture, a worker restart, capacity and budget waits, cancellation propagation, duplicate results, and a process death. The process death must become an immutable failed, retryable attempt, and a late durable result must not cross the current generation or plan revision.

Recover

For an accepted pause, Lumen parks the exact sandbox lease and resumes the same scratch filesystem under a rotated lease token; the Pi and Python processes restart, so reload process-local state from files. When an attempt process disappears without that canonical pause, inspect canonical events and provider state, mark the attempt terminal through the owning workflow, and retry as a new identity only after ambiguity is reconciled.

Next task

Inspect artifacts, claims, and evidence.

On this page