Skip to content

I4006 — Machine.slot is a counting machine-wide slot for heavy work

machine.slot: a counting slot, N and the disk floor read from rule data, taken by pre-push, coverage and builds; a full queue answers a bounded wait naming its holders.

READY wave 0 · p1 · implementation profile · parallel safe

Part of a-session-proceeds-through-the-mesh — A session proceeds through the mesh: it finds the work, claims it once, runs it watched and stops when the intent is met.

Ready. Every dependency is done, so majordomus plan start I4006 will be accepted.

Objective

machine.slot: a counting slot, N and the disk floor read from rule data, taken by pre-push, coverage and builds; a full queue answers a bounded wait naming its holders.

Why

Heavy work serialises on one lock or starves on it; nine sessions make the machine the bottleneck and a waiter cannot tell who holds it.

Current state

Not built: this issue is planned by the milestone a-session-proceeds-through-the-mesh and nothing of it exists.

Desired state

The acceptance criteria below hold and case 4006 proves them.

Scope

  • apps/majordomus-cli/src/capability/builtin
  • apps/majordomus-cli/src/machine
  • docs/MACHINE.md
  • test/cases/4006_machine_slot_shares_heavy_work.sh
  • .ai/repo/project/issues/I4006.yaml

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • At most N holders run at once and below the disk floor none starts
  • A full queue answers within a deadline naming each holder, never waits unbounded
  • A holder that died releases its slot by deadline, and the slot adds no new store

Validation

  • env -u MAJORDOMUS_SHARE -u MAJORDOMUS_HTTP_HOST -u MJ_ROOT bash test/run.sh 4006_machine_slot_shares_heavy_work

Evidence required

  • case_4006_machine_slot_shares_heavy_work

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/I4006.yaml. Read it back with majordomus plan show I4006.

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