Skip to content

I3386 — The economics runner runs one job as several concurrent workers in worktrees of one workspace sharing the treatment's server, and records the job's wall time to an integrated, accepted tree

Add a coordinated topology to the runner, declared by the arm I3298 adds: one workspace with the pinned release installed, a shared server started with serve ensure, a registered number of headless sessions each in its own worktree created with majordomus worktree create, each given the batch task's members as issues to claim, and an integrating step that merges the workers' branches into the workspace trunk in a fixed order. Record each session's span, every claim refusal from the ledger, every merge conflict, and the job's wall time from first start to the hidden tests passing on the integrated tree. Prove the pipeline with the replaying harness.

BLOCKED wave 4 · p1 · implementation profile · parallel safe

Part of the-mesh-is-measured-against-one-agent — Coordinated workers on the mesh are compared with a single agent on the same batch tasks, at quality held by a registered non-inferiority guard.

Blocked. This issue cannot start until I3375, I3298 are done. The status is derived from that, not declared.

Objective

Add a coordinated topology to the runner, declared by the arm I3298 adds: one workspace with the pinned release installed, a shared server started with serve ensure, a registered number of headless sessions each in its own worktree created with majordomus worktree create, each given the batch task's members as issues to claim, and an integrating step that merges the workers' branches into the workspace trunk in a fixed order. Record each session's span, every claim refusal from the ledger, every merge conflict, and the job's wall time from first start to the hidden tests passing on the integrated tree. Prove the pipeline with the replaying harness.

Why

T4 of the owner's report of 2026-10-19 needs a mesh arm, and the critique found no issue built one: I3298 only declares arms as data and the runner runs one job's sessions in sequence. Building the arm in the one runner keeps every arm under the same provenance and freshness rules.

Current state

apps/majordomus-cli/src/economics/runner.rs:1-26 runs a job's sessions in one workspace in sequence; runner.rs:103 RunOptions has no concurrency; I3298 is READY at p3.

Desired state

economics run --dry-run lists coordinated jobs; a replayed coordinated job writes one record with per-session spans and integration results.

Scope

  • apps/majordomus-cli/src/economics/runner.rs
  • apps/majordomus-cli/src/economics/model.rs
  • apps/majordomus-cli/tests/economics.rs
  • docs/ECONOMICS.md

Out of scope

  • Running live (I3389)
  • Machines other than the runner's host
  • Lease-based assignment (I3198)

Dependencies

What waits on this

Acceptance criteria

  • A replayed job with three workers writes one record with three session spans, the integration order and the job wall time
  • A replayed claim refusal and a replayed merge conflict are recorded
  • Every worker's worktree is removed after the job, and nothing outside the work directory is written
  • The single-agent arm is unchanged

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
  • cargo fmt --manifest-path apps/majordomus-cli/Cargo.toml --check

Evidence required

  • test_coordinated_arm_replayed

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3386.yaml. Read it back with majordomus plan show I3386.

Searches the titles and descriptions of every page this site publishes.