I3392 — The mesh lab injects the three faults into work in progress, and its evidence holds the conservation reading of each scenario
Add three scenarios to test/mesh-lab/run after the existing nine: a node holding an exclusive claim and an open task is killed, its claim expires, another node resumes from its published handover and finishes; the connection is cut while a claim and a handover are in flight and healed; two nodes take the same issue. Each scripted worker uses start, check, handover and finish through the CLI; each scenario ends with the conservation reading on every node and passes only with zero lost commits and zero duplicate completions. Add the scenarios to scripts/ci/mesh-lab-evidence's required set, to case 414 and to the note of mesh-network-acceptance in docs/CLAIMS.yaml.
BLOCKED wave 3 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I3390, I3391 are done. The status is derived from that, not declared.
Objective
Add three scenarios to test/mesh-lab/run after the existing nine: a node holding an exclusive claim and an open task is killed, its claim expires, another node resumes from its published handover and finishes; the connection is cut while a claim and a handover are in flight and healed; two nodes take the same issue. Each scripted worker uses start, check, handover and finish through the CLI; each scenario ends with the conservation reading on every node and passes only with zero lost commits and zero duplicate completions. Add the scenarios to scripts/ci/mesh-lab-evidence's required set, to case 414 and to the note of mesh-network-acceptance in docs/CLAIMS.yaml.
Why
T5 of the owner's report of 2026-10-19. The lab already breaks the network on purpose and is judged by a reader other than itself (case 414), so work-level faults belong there rather than in a second harness.
Current state
test/mesh-lab/run:187-245 runs claim_conflict, cross_node_handover, network_partition and process_crash_recovery among nine scenarios; scripts/ci/mesh-lab-evidence refuses an incomplete record; case 414 holds the required set equal to the scenarios the lab reaches.
Desired state
target/mesh-lab/evidence.json carries the three scenarios with their conservation readings; case 414 requires them.
Scope
- test/mesh-lab/run
- test/mesh-lab/node-entrypoint
- scripts/ci/mesh-lab-evidence
- test/cases/414_mesh_lab_evidence.sh
- docs/CLAIMS.yaml
Out of scope
- Agent sessions in the lab (I3393 runs those)
- A routed or WAN topology
Dependencies
- I3390BLOCKED One conservation reading counts completions per issue, unreachable task commits, stranded claims and multiply-consumed handovers, each violation with its records
- I3391BLOCKED The T5 protocol registers three fault kinds, the trials each needs and what a trial must show, before any fault is injected
What waits on this
Acceptance criteria
- Each scenario records its fault, timings and conservation reading
- A scenario with a duplicate completion or a lost commit fails
- Case 414 refuses a record missing any of the three scenarios
- The existing nine scenarios still pass
Validation
- test/mesh-lab/run
- bash test/run.sh 414_mesh_lab_evidence
- majordomus shell check
Evidence required
- mesh_lab_work_faults
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/I3392.yaml. Read it back with majordomus plan show I3392.