I3198 — A peer is offered an assignment by capability under a fenced lease, and accepts or refuses it with a reason
Add assignment offer, accept, refuse and return as mesh events and capabilities: the offer names the issue, the required capabilities and the lease; a peer whose declared capabilities do not satisfy it refuses with the missing one; a lease lost mid-run returns the work and says so; nothing executes yet.
BLOCKED wave 1 · p3 · deep-work profile · parallel safe
Blocked. This issue cannot start until I3174, milestone:mesh-peers-execute-assigned-work are done. The status is derived from that, not declared.
Objective
Add assignment offer, accept, refuse and return as mesh events and capabilities: the offer names the issue, the required capabilities and the lease; a peer whose declared capabilities do not satisfy it refuses with the missing one; a lease lost mid-run returns the work and says so; nothing executes yet.
Why
Release R3 of the 10-13 plan: distributed execution without a second workflow database. The mesh today carries claims, handovers and reviews and executes nothing (docs/MESH.md). Proposed in ADR 0202 (The mesh routes work to an identity, never an address, and selects among proven transports instead of implementing NAT traversal); ADR 0205 (What a runtime can do is a set of separately evidenced facts, and detection never authorises) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c245#2.
Current state
Verified: no assignment kind in mesh/cooperation.rs; ADR 0167 seats are claims.
Desired state
assignment.* capabilities and events; mesh lab scenario for offer and loss.
Scope
- apps/majordomus-cli/src/mesh/cooperation.rs
- apps/majordomus-cli/src/capability/builtin/mesh.rs
- test/mesh-lab/run
Out of scope
- Running the work on the peer (a second issue, after its decision)
Dependencies
What waits on this
Acceptance criteria
- A peer lacking the capability is never assigned and says why
- Cancellation reaches the holder
- A duplicate completion is harmless
Validation
- majordomus plan validate
- cargo test --lib mesh::cooperation
Evidence required
- mesh_lab_assignment
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/I3198.yaml. Read it back with majordomus plan show I3198.