Skip to content

Machine pool: onboard additional machines as fleet job nodes and redesign placement around a pool #2179

Open

Description

@dezren39

What this is

Drew, 2026-10-29: the fleet's job execution runs on effectively one machine (the laptop, amd-6 — OpenCode server, queue workers, OpenClaw gateway). He wants (1) additional machines set up so they can be used for jobs the same way the laptop is used now, and (2) the fleet structure redesigned to connect to a pool of machines instead of a single host.

Work

  1. Machine onboarding standard. Define what a machine needs to join the pool: NixOS config from the flake, SSH access pattern, OpenCode server (attach pattern), queue worker capability, health reporting, and the secrets it may hold (by name only). A machine joins by applying the standard, not by hand-crafting.
  2. Bring the additional machines online. The hardware exists (the Threadripper fleet in the basement, Osseo WI) — the on-site evidence cluster (code#1095/task(cluster): verify NIC and switch-gear facts #1097/task(cluster): collect current BIOS/BMC versions and settings - core machines #1099/task(cluster): bring core machines to the golden baseline #1101) is the inventory input and is Drew's physical step. As machines are inventoried and installed, onboard them one by one against the standard. Relationship to the lab-cluster goal (Talos/Cozystack): that program stands up the Kubernetes cluster; THIS issue is about machines as fleet job-execution nodes. Where a machine serves both, the standard says so explicitly — do not let the two programs silently diverge.
  3. Redesign the fleet structure for a pool. Today: hardcoded laptop assumptions (the 12-session cap, SSH target, scheduler residency, watchdog locality). Target: a machine registry (identity, capabilities, capacity, health), placement that picks a machine per job/session (the route-pool idea, one level down: machine pools beside model pools), and schedulers (Muse cron, OpenChamber scheduled tasks OpenCode scheduled tasks: migrate the Muse→OpenCode cron wrappers into OpenChamber scheduled tasks (waves, monitoring gates) #2174, OpenClaw automations OpenClaw scheduled tasks: use the native automations scheduler for watchdog-class and laptop-local work #2177) placing work across the pool. Observability follows the same move: per-machine attribution joins the per-job/per-model attribution in External-system observability: unified PM + queue + quota attribution (webhooks, hot list, session IDs, projections) #2072 and the Supabase mirror.
  4. Failure shape. A machine leaving the pool (off, overloaded, network) drains cleanly: its sessions/jobs are visible as orphaned in one place, and no other machine's state is corrupted (the plaza-objects/shared-state lessons).

Acceptance

  • The onboarding standard written and applied to the first additional machine end-to-end: it runs a real queue job and an OpenCode session, reviewed like laptop work.
  • The registry exists and the watchdog covers every pooled machine.
  • A written placement design (which scheduler places what, on which signals) with the first placement rule live.

Related

Hardware evidence cluster code#1095/#1097/#1099/#1101 (Drew, on-site) · lab-cluster goal · #2072 observability · #2174 OpenChamber scheduled tasks · #2177 OpenClaw scheduled tasks · #2173 quota utilization (pool quotas are the other half of the throughput ceiling).

Activity

  1. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  2. added
    kind/infrastructureInfrastructure / host-portability work
    source/humanFiled directly by a human
    priority/highImportant and time-sensitive
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 29, 2026
  3. dezren39 commented on Oct 29, 2026

    @dezren39
    MemberAuthor

    Intake review

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  5. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 7308 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  6. added
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  7. 5 remaining items

  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: handed-off
    task: 7308
    follow_up_task: 8927
    worker: repo-worker-code
    lane: aea12c82-c5af-4e5a-9b66-f8e360f87177
    at: 2026-11-03T23:52:56Z
    The triage task is complete; the first reviewable onboarding-standard and registry-shape step is queued as task 8927. Physical inventory and installation remain explicitly out of scope for that task.

  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: picked_up
    task: 8927 (small_fix, repo-health-code-pilot; worker repo-worker-code; lane code-d, execution lane direct)
    by: repo-queue-worker lane D

    Picked up task 8927: draft the machine onboarding standard and registry shape for issue #2179 (first reviewable, non-physical phase). Revalidated fresh: issue #2179 is OPEN with no hard-stop labels (no held / user/owned / do-not-merge / do-not-auto-edit) and no existing PR covers this doc. Working on the laptop in a dedicated worktree on branch queue/8927-2179-machine-onboarding-standard; deliverable is a PR referencing issue #2179 (the issue stays open — physical onboarding remains blocked on the inventory issues).
    labels: work/assigned + queue/claimed + status/in-progress added; queue/queued removed.

  10. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: done (pr_opened)
    task: 8927 (small_fix, repo-health-code-pilot; worker repo-worker-code; lane code-d, execution lane direct)
    by: repo-queue-worker lane D

    Delivered: PR #5292 — #5292 — drafts the machine onboarding standard and registry shape for #2179 as doc/2026-11-04T05-15-02Z_design_machine-onboarding-standard-v1/ (branch queue/8927-2179-machine-onboarding-standard, commit f3177da, from origin/main ac14972; laptop worktree ~/git/fleet/queue-8927-2179-onboarding).

    Coverage against task 8927's acceptance: §1 onboarding contract (NixOS flake configuration via ./nixos/hosts, SSH access pattern, OpenCode server attach pattern, queue-worker capability, health reporting); §3 registry schema (identity / capabilities / capacity / health, registry identity distinct from the Talos inventory); §0 execution-node vs Talos/Cozystack boundary explicit; §1.6 secrets named by class only, no values; §5 separates software work that can proceed now from the physical blockers (#1095/#1097/#1099/#1101) and claims no onboarded node.

    Issue #2179 stays open for the review round and the remaining acceptance (first-machine application, live registry, first placement rule), tracked in §6 of the doc. Labels set by this claim (work/assigned, queue/claimed, status/in-progress) are removed on completion per protocol.

  12. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

effort/lLarge: multi-day or open-ended; expect staged check-inskind/infrastructureInfrastructure / host-portability workmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivesource/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions