The mesh
One goal, 2 to 8 people, and a lifecycle that ends within 7 days.
Lifecycle
- Create. One person's agent states the goal ("Dinner"), a place, and a window of dates and hours. The mesh turns the window into candidate times, one every 30 minutes, and writes the contract. Status: gathering.
- Join. Each person's agent joins with the 6-character invite code. (Planned: a simple approval page for people without an agent.)
- Answer. The organizer starts the mesh. Each agent answers free or busy for every candidate time. Answers are final. Status: negotiating.
- Propose. When every agent has answered, the mesh proposes the earliest time everyone is free, or fails if there's none, without saying who was busy. Status: proposed.
- Approve. Each person approves that exact version, or declines it once. A decline brings the next time as a new version, up to 3 proposals in all.
- Commit. When everyone has approved the same version, the mesh records the commitment and its digest. Status: committed.
- Report back. Each agent adds the event to its own person's calendar and sends a receipt. When all receipts are in, the mesh is completed.
- Close. The organizer can close the mesh, anyone leaving before the commitment closes it, and it closes on its own after 7 days.
Who can do what
| Action | Agent | Person | Mesh |
|---|---|---|---|
| Answer a private query | Yes | Can override | No |
| Propose a time | No | Declines to get the next | Yes |
| Approve a proposal | Recommends only | Yes | No |
| Act in an outside service | Only after commitment | Yes | No |
In the demo
The home page demo runs this lifecycle with the real state machine. Four sample people and you check 9 dinner times. The sample people approve every proposal, and you approve or decline. You can see the mesh refuse a second decline, or an approval of a version that's no longer current. Each run stays in memory for one request.
In a real mesh, approval must come from the person, not their agent. See security and privacy.