ContractSpec docs

OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

GraphSubscriptionEvent — live graph update discriminated union

Discriminated union covering all live graph patch events: node-added, node-updated, node-removed, edge-*, and snapshot-replace. Consumed by SSE adapters and client hooks.

field.key.label
GraphSubscriptionEvent — live graph update discriminated union
field.version.label
field.type.label
field.title.label
GraphSubscriptionEvent — live graph update discriminated union
field.description.label

Discriminated union covering all live graph patch events: node-added, node-updated, node-removed, edge-*, and snapshot-replace. Consumed by SSE adapters and client hooks.

field.tags.label
graph,subscription,sse,live,events,m3,p5
field.owners.label
field.stability.label
public

Discriminated union for live graph update events.

| `kind` | Payload | Notes | | --- | --- | --- | | `node-added` | `node: SubscriptionNode` | New node arrived | | `node-updated` | `node`, `previous?` | Partial patch; previous is optional | | `node-removed` | `nodeId: string` | Node deleted | | `edge-added` | `edge: SubscriptionEdge` | New edge | | `edge-updated` | `edge`, `previous?` | Edge attribute change | | `edge-removed` | `edgeId: string` | Edge deleted | | `snapshot-replace` | `nodes[]`, `edges[]` | Full resync — replace all state |

`snapshot-replace` is emitted on initial connect, reconnect after gap, or server invalidation. Clients must exhaustively switch on `kind` for forward-compatibility.