@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.
- package/guide.md +14 -0
- 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
|