The Problem
Two agents want to editcreateSubscription. One has it reserved; the other needs it. Without a protocol, the second agent either blocks indefinitely, edits in a fork, or escalates prematurely.
The Protocol
Negotiations are a state machine with bounded turns and a deadline.Actions
Auto-resolution
If the counterparty doesn’t respond beforedeadline_ms (default: 5 minutes), the negotiation auto-resolves in the initiator’s favor — because a silent lockholder is no better than no lockholder.
Escalation
Hittingmax_turns without a terminal action marks the negotiation escalated and surfaces it in the web dashboard for a human to resolve.
When to Open One
The file-reservation denial message includes the holder’s session id and current task. If routing around is impractical (the symbol is the point), callnegotiate_open with a clear rationale.
Don’t negotiate for symbols you’ll touch once and move on — route around. Negotiate when you genuinely need the symbol and the other agent should know.
Discovery
Callnegotiate_list at session start (or after a long break) to catch anything waiting on your response.