Skip to content

Tracking: cross-agent batch coordination layer (heartbeats, leases, status) for multi-machine batch engineering #3974

Description

@justin808

Umbrella for the cross-agent coordination layer ("batch engineering v2"). Today's operating reality: 3 concurrent batches (1× Claude Fable on hardest items, 2× Codex on simpler), 2 machines (M5 mobile laptop, M1 wired desktop), 3 launch surfaces (Claude Desktop, Codex Desktop, conductor.build), 2+ repos (react_on_rails, react_on_rails_rsc). The two acute pains: (1) manual copy-paste of status between agents with cross-batch dependencies, (2) no guard against two agents working the same issue/PR.

Design decision (made 2026-06-12)

Coordination state lives in a private GitHub repo — not public scratch-pad issues (visibility), not GitHub Projects (no CAS, awkward API), not Linear/Jira (new auth surface on every agent × machine, new subscription). Rationale and schemas: #3969. Core principles:

  • Liveness is derived from heartbeat timestamps, never asserted by labels — a closed laptop or dead internet self-expires, no cleanup.
  • Claims are leases with atomic acquire (GitHub Contents API sha precondition = compare-and-swap), expiring when the holder's heartbeat dies.
  • Dependencies are declared in batch plans and polled via one command, not relayed by a human between desktop apps.

Child issues (dependency order)

Suggested rollout

  1. Batch coordination backend: private agent-coordination repo with CAS-safe state files #3969 + Agent heartbeat protocol: timestamp-derived liveness for multi-machine batches (no stale labels) #3970 first (pure additions, no skill changes) — run one normal 3-batch day with heartbeats only, confirm the status table reflects reality.
  2. Lease-based claims: make it near-impossible for two agents to work the same issue/PR #3971 gates next — start advisory (warn on conflict), flip to hard-stop after one clean week.
  3. batch-status command + declared lane dependencies: end manual copy-paste between concurrent agents #3972 + Document the multi-batch operating model (machines, launchers, conductor.build handoff, cross-repo) #3973 last — retire manual status relaying.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    TRACKINGParent tracking issue for multi-task initiativesci-toolingCI workflows, checks, and tooling

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions