M10: job and service blocks #7

Open
opened 2026-10-02 00:16:05 +00:00 by jhgaylor · 0 comments
Owner

Depends on: #6

S8 may reshape or drop this milestone.

From PLAN.md, section "M10".


Structured views of work that has no human typing into it. These are
Superlogical's "automatic work disappears into jobs and logs".

  • Job block.
    • Config: { host, cmd, cwd, env, retries, timeout }, or an adapter
      reference, { hal0: job_id } or { ci: url }.
    • It runs without a PTY: stdout and stderr go into the block log,
      separately.
    • State: queued, running, succeeded or failed with an exit code, the
      attempt number, and duration.
    • Attention maps to working / done, or needs-input on failure.
    • Methods: retry, cancel, logs.
    • illogical run --job creates one.
    • Adapters: local and host processes first. hal0 jobs and a CI provider
      are separate, optional adapters with the same state shape.
  • Service block.
    • Config: { host, cmd, port?, restart }.
    • On sprites it maps onto sprite-env services; on other hosts the daemon
      supervises it.
    • State: up or down, restarts, the last exit, and the port.
    • If it has a port, "open" makes an M6a browser block next to it.
  • Done when:
    • a job block runs a build on a VM tab, fails, and shows as needs-input
      on the phone;
    • retry from the phone succeeds;
    • a service block keeps a dev server up across a cold wake, and opens a
      browser block on its port.
**Depends on:** #6 S8 may reshape or drop this milestone. _From PLAN.md, section "M10"._ --- Structured views of work that has no human typing into it. These are Superlogical's "automatic work disappears into jobs and logs". - **Job block.** - Config: `{ host, cmd, cwd, env, retries, timeout }`, or an adapter reference, `{ hal0: job_id }` or `{ ci: url }`. - It runs without a PTY: stdout and stderr go into the block log, separately. - State: queued, running, succeeded or failed with an exit code, the attempt number, and duration. - Attention maps to `working` / `done`, or `needs-input` on failure. - Methods: `retry`, `cancel`, `logs`. - `illogical run --job` creates one. - **Adapters:** local and host processes first. hal0 jobs and a CI provider are separate, optional adapters with the same state shape. - **Service block.** - Config: `{ host, cmd, port?, restart }`. - On sprites it maps onto `sprite-env services`; on other hosts the daemon supervises it. - State: up or down, restarts, the last exit, and the port. - If it has a port, "open" makes an M6a browser block next to it. - **Done when:** - a job block runs a build on a VM tab, fails, and shows as `needs-input` on the phone; - `retry` from the phone succeeds; - a service block keeps a dev server up across a cold wake, and opens a browser block on its port.
Sign in to join this conversation.
No description provided.