@xema/omni-protocol 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/guide.md +14 -0
  2. package/package.json +1 -1
package/guide.md CHANGED
@@ -926,6 +926,11 @@ snapshot is the answer; Omni waits for it rather than calling `snapshot()` itsel
926
926
  transport is up, a result says the provider accepted the command, and the event that follows —
927
927
  `task-updated`, `break-state` — says what it did.
928
928
 
929
+ **Classify on the rejection, never on a connection status published separately from it.** The
930
+ status is a report about the wire and races the rejection; the rejection is the event. A rejection
931
+ is the provider's answer only when it carries the provider's answer — a failure the provider
932
+ named. Every other rejection is transport loss, whatever the last `provider-status` said.
933
+
929
934
  A command therefore carries no key. The provider names its own records — a task, a lead request, a
930
935
  member — and Omni refers to them by those names; **Omni never asks a provider to remember a name
931
936
  Omni made up.**
@@ -2585,6 +2590,15 @@ decides who leads a team: no roster means nothing is shown, which is the correct
2585
2590
  agent who leads nobody. The same rule governs `TeamRoster.breakControl` — present when this lead
2586
2591
  decides their team's breaks, absent when they do not.
2587
2592
 
2593
+ **The roster never carries the agent it is published to — not in `members`, and not in
2594
+ `requests`.** A lead does not report to themself: their own break request and their own ask for a
2595
+ lead go up to whoever leads them and appear on *that* person's roster, while the requester sees
2596
+ only their own `BreakState` and their task's `lead` move. An adapter whose platform lists the lead
2597
+ among their own members filters the signed-in identity out before publishing. **Entitlement is a
2598
+ role the provider knows, never inferred from who is listed:** a lead with nobody in their team
2599
+ publishes `[]`, an agent with no such role publishes nothing, and no member count can tell those
2600
+ two apart.
2601
+
2588
2602
  ### Lead commands
2589
2603
 
2590
2604
  One method, `executeTeamBreak`, taking a discriminated command exactly as `execute` takes a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xema/omni-protocol",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "The Omni protocol: the contract every provider adapter implements",
5
5
  "type": "module",
6
6
  "license": "MIT",