-
OpenWOP v2 Core — Overview
Stable · v2.1.0 · 2026-09-11
spec/v2/core/ is the front door a host implements to pass the 2.0.0 floor. This document fixes the reading order, restates the six axioms, and states once the rules other…
-
Discovery and Capabilities
Stable · v2.1.0 · 2026-09-11
v1 discovery had 91 root properties on an open root, supported in four shapes, and four machine registries with no schema of their own. v2 has one capability record type on a…
-
Versioning and Release
Stable · v2.1.0 · 2026-09-11
v1 negotiated on one scalar, could not advertise two majors, split engineVersion across two types, and presumed a /v2/ path space that the /v1/v1 defect already showed is the…
-
Runs
Stable · v2.1.0 · 2026-09-11
A run is the unit of execution, ownership and observation. This document is the run surface of api/v2/openapi.yaml: how a run is created, read, streamed, cancelled, paused, forked…
-
Events
Stable · v2.1.0 · 2026-09-11
A run is its append-only event log; every snapshot, stream, poll, fork and diff is a projection of it. v2 has one event envelope, one closed type registry with one naming rule,…
-
Errors
Stable · v2.1.0 · 2026-09-11
Every error a v2 host returns is a row in one registry. A client routes on error, never on message, and a code that is not registered is not a protocol error. The registry is the…
-
Headers
Stable · v2.1.7 · 2026-09-13
RFC 0171 §C.1: every non-standard header is OpenWOP-<Name> and every header is declared in OpenAPI, so this table — generated from the same declaration — enumerates all of them. A…
-
Idempotency
Stable · v2.1.0 · 2026-09-11
A retried request MUST NOT create a second run, and a retried node MUST NOT issue a second external effect. A host MUST implement Layer 1 for every mutating endpoint and Layer 2…
-
Identity
Stable · v2.1.0 · 2026-09-11
v1 carried a principal beside an optional Subject, a legacy rule that was advisory, a SubjectLink with no schema, and resume tokens with no scheme. v2 makes the Subject the owner…
-
Interrupt
Stable · v2.1.0 · 2026-09-11
interrupt is the one primitive by which a run waits for something outside itself: a human decision, an answer, an external event, a conversation turn. Every kind shares one…
-
Replay and Fork
Stable · v2.1.0 · 2026-09-11
The event log makes any past state of a run reconstructible by folding events up to a sequence. POST /runs/{runId}:fork turns that into a wire surface: a replay proves that…
-
Persistence and Coexistence
Stable · v2.1.0 · 2026-09-11
The v2 cut renames event types that are persisted, indexed, and unique-keyed in production stores, and fork and replay read those rows verbatim. This document states how a v2 host…
-
Webhooks
Stable · v2.1.0 · 2026-09-11
Polling a run for progress is inefficient, and SSE cannot reach systems that need server-to-server delivery. A client registers a URL and an event filter once; the host POSTs…
-
Security Defaults
Stable · v2.1.0 · 2026-09-11
v1 protected a tenant only when a host volunteered a boolean: fourteen auth-family flags, replay.sideEffectSuppression, webhooks.durable, interrupt.approverRouting, and…
-
Packs
Stable · v2.1.0 · 2026-09-11
Every one of the 282 pack versions published under v1 either pins <2.0.0 or declares no ceiling at all, four peer-dependency grammars were signed into the registry, and two…
-
Connection Packs
Stable · v2.1.0 · 2026-09-11
A connection pack is a signed provider definition — the endpoints, scope catalog, and reach a connector's auth.provider string resolves against. v1 let two definitions claim one…
-
Form Content Packs
Stable · v2.1.0 · 2026-09-11
A form-content pack ships declarative form templates a host renders in its own chrome. v1 templates had no conditional visibility, no localization, and no validation beyond…
-
Workflow Chain Packs
Stable · v2.1.0 · 2026-09-11
A workflow-chain pack ships a reusable fragment a host expands into a concrete definition, and may compose other chains as co-registered children. v1 left three lifecycle…
-
Interop
Stable · v2.1.0 · 2026-09-11
v1 advertised a supportedTransports list that could only honestly say rest, carried two legacy embedded-protocol profiles with dated sunsets, and let an unauthenticated peer steer…
-
Conformance
Stable · v2.1.0 · 2026-09-11
v1 could say a host passed and could not say what it witnessed: test ids were derived from titles, the witness class was recorded on extensions but not requirements, nine…
Core
The normative front door a host implements to pass the 2.0.0 floor — discovery, versioning, runs, events, errors, and the pack families.