@openwop/spec-artifacts 2.5.0 → 2.6.1
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/CORPUS-STAMP.json +31 -31
- package/api/seams-v2.yaml +1 -1
- package/api/v2/asyncapi.yaml +1 -1
- package/api/v2/openapi.yaml +1 -1
- package/package.json +1 -1
- package/schemas/v2/certification-bundle.schema.json +1 -1
- package/schemas/v2/run-event-payloads.schema.json +1 -1
- package/schemas/v2/trigger-event.schema.json +1 -1
- package/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v2/core/capabilities.md +1 -1
- package/spec/v2/core/conformance.md +1 -1
- package/spec/v2/core/connection-packs.md +1 -1
- package/spec/v2/core/errors.md +1 -1
- package/spec/v2/core/events.md +1 -1
- package/spec/v2/core/form-content-packs.md +1 -1
- package/spec/v2/core/headers.md +1 -1
- package/spec/v2/core/idempotency.md +1 -1
- package/spec/v2/core/identity.md +1 -1
- package/spec/v2/core/interop.md +1 -1
- package/spec/v2/core/interrupt.md +1 -1
- package/spec/v2/core/overview.md +1 -1
- package/spec/v2/core/packs.md +1 -1
- package/spec/v2/core/persistence.md +1 -1
- package/spec/v2/core/replay.md +1 -1
- package/spec/v2/core/runs.md +1 -1
- package/spec/v2/core/security-defaults.md +2 -2
- package/spec/v2/core/versioning.md +1 -1
- package/spec/v2/core/webhooks.md +1 -1
- package/spec/v2/core/workflow-chain-packs.md +1 -1
- package/spec/v2/release.json +2 -2
package/CORPUS-STAMP.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "Provenance of @openwop/spec-artifacts (RFC 0168 §D.2). files: SHA-256 per file; the conformance suite compares the installed peer against dist/spec-artifacts.lock.json at start.",
|
|
3
3
|
"package": "@openwop/spec-artifacts",
|
|
4
|
-
"version": "2.
|
|
5
|
-
"corpusTag": "v2.
|
|
4
|
+
"version": "2.6.1",
|
|
5
|
+
"corpusTag": "v2.6.1",
|
|
6
6
|
"files": {
|
|
7
7
|
"api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
|
|
8
8
|
"api/asyncapi.yaml": "d5ecb9ee6114582be3b1f662c84bfac9ae96dae7bacb853e461168f70a8e1c7d",
|
|
9
9
|
"api/grpc/openwop.proto": "c3e72bb17cba514ee98feb6434e6c9b6ea6795bfd086489ec69fd882dd1ad977",
|
|
10
10
|
"api/openapi.yaml": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
|
|
11
11
|
"api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
|
|
12
|
-
"api/seams-v2.yaml": "
|
|
13
|
-
"api/v2/asyncapi.yaml": "
|
|
14
|
-
"api/v2/openapi.yaml": "
|
|
12
|
+
"api/seams-v2.yaml": "daa6cb47c2fb29b8c1ff596c7c00a494a9a48c795ddd0485f9d89e3a1656baf6",
|
|
13
|
+
"api/v2/asyncapi.yaml": "29f449a6b3386b4d6db141bc3cf0342f45850a9b3cc74dcf999bbdc5d8d1a57d",
|
|
14
|
+
"api/v2/openapi.yaml": "a09adf882b9ac3a344caf16d1ea916cc1795a38544eb2e5df923f84129e86c6f",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"schemas/v2/audit-verify-result.schema.json": "a748dfadb5155adfde8a91045e76b0db6695005fe559035d71670fdd55edb3ba",
|
|
117
117
|
"schemas/v2/budget-policy.schema.json": "c7449daeb6e1d95e7a047b8c2814d3d54748697c27046972834874867d9b5f4c",
|
|
118
118
|
"schemas/v2/capabilities.schema.json": "fa9b80a9107fc322ecadbac808e7fbe5e16ccf0af1a6bf673181faa8379dde33",
|
|
119
|
-
"schemas/v2/certification-bundle.schema.json": "
|
|
119
|
+
"schemas/v2/certification-bundle.schema.json": "0bcf8f297266505ca39d30eea8100e3c0fb048f2651717fd746da8129fcb7920",
|
|
120
120
|
"schemas/v2/channel-presence-payload.schema.json": "1c20ad810cb311d47aa0b95d928490826b2468fd161f884cd29e867053e6782f",
|
|
121
121
|
"schemas/v2/channel-written-payload.schema.json": "ccecff3c71a3275ad8db035ac0e04db25e6f8d23cf091ddbcd5a60d1be1cbb6b",
|
|
122
122
|
"schemas/v2/chat-card-pack-manifest.schema.json": "8df0d9d273ae22efc6876d5586833f1d4c2e551edc3ac6cf6e8f0719329f03dd",
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"schemas/v2/residency.schema.json": "3fd23c9732beb140504e81560fc426eb6764d547e56da5fb92c5a5c7bf04db3a",
|
|
170
170
|
"schemas/v2/run-ancestry-response.schema.json": "334c17f2062dea62726ca1d07b8be3f169cdc422af843c1def5fb317039814c9",
|
|
171
171
|
"schemas/v2/run-diff-response.schema.json": "8bdb2045c274580038bd74781f7d062f5049839797c164a89de4ed89edc53a74",
|
|
172
|
-
"schemas/v2/run-event-payloads.schema.json": "
|
|
172
|
+
"schemas/v2/run-event-payloads.schema.json": "ec5c934b9ef80404bd4ddc9e715cd1629fc7e7934d09d3eb81b65dcef2e2ff9a",
|
|
173
173
|
"schemas/v2/run-event.schema.json": "2f0d7416bd376c56affe97b6b2b49981532e8e9ff45c0a162cf806c78b3e7fb7",
|
|
174
174
|
"schemas/v2/run-list-response.schema.json": "c2dbc34768dcf64528914a213aa3cb55952e8e3e90a64b04a9423b2a19749d38",
|
|
175
175
|
"schemas/v2/run-options.schema.json": "f0e9f494d80086c2ed2cf9fe87df54e5b4e66601699c4a1089f4edbc7ba58867",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
"schemas/v2/subject.schema.json": "094e981fb20052a911393e219ea5f2065d8b8417b65080a70c5ea99fd960a8fe",
|
|
184
184
|
"schemas/v2/suspend-request.schema.json": "4a0dda88a257cdb21c9b57fc9ad898d91de0d75bc4944a693eb950b709f58c91",
|
|
185
185
|
"schemas/v2/tool-descriptor.schema.json": "658b18ef173e0f12d732f92d4866a9b3daeb8f88b493db8b025a577e09dd681c",
|
|
186
|
-
"schemas/v2/trigger-event.schema.json": "
|
|
186
|
+
"schemas/v2/trigger-event.schema.json": "4e61e5a761b7eb71c9d36536eea4341dd5db21262e64d720f9c81b18d57c4dd0",
|
|
187
187
|
"schemas/v2/trigger-subscription-registration.schema.json": "04bc314a07c7e8b565577cb8df5821d968ce2af915900dfdccd4a24e928d20db",
|
|
188
188
|
"schemas/v2/trigger-subscription.schema.json": "c887d4b9a12be0133f8c9dfd3a8bafcb518e27ecc2e800447ebc4d1fef111503",
|
|
189
189
|
"schemas/v2/ui-plugin-message.schema.json": "879d65867c01656b3962d64283e66364dcb8f626ad26c5fcf2d2d55a79ae0ce9",
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
201
201
|
"spec/v1/alias-detectors.json": "e90916db12d2297e2e560b2d54d2c4702d6cb3bef7179a575844687a7ec17262",
|
|
202
202
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
203
|
-
"spec/v1/core-standard-manifest.json": "
|
|
203
|
+
"spec/v1/core-standard-manifest.json": "530dedda95648cf9eedd160bf8c0e582ec2a1b8daccbfe81b884d90e4eb81eec",
|
|
204
204
|
"spec/v1/deprecations.json": "c81c8f71460936c8d489d8270477c7661cf4a5d7b7bad86c98899750b5656027",
|
|
205
205
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
206
206
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
@@ -213,26 +213,26 @@
|
|
|
213
213
|
"spec/v1/operation-path-manifest.json": "5f5f4e3842669371730ebbd1aace3fb794192615f0018dc144f484ba5db82ac3",
|
|
214
214
|
"spec/v1/spec-gaps.json": "eb3bfcb9c7d05c9a6845d4a40ec9493cfaa5a671932daf1af561310136fdabe8",
|
|
215
215
|
"spec/v2/README.md": "5d49f56f41e06b44312c61ad8144b786c9a90ec42fd0660a40d89520ef206137",
|
|
216
|
-
"spec/v2/core/capabilities.md": "
|
|
217
|
-
"spec/v2/core/conformance.md": "
|
|
218
|
-
"spec/v2/core/connection-packs.md": "
|
|
219
|
-
"spec/v2/core/errors.md": "
|
|
220
|
-
"spec/v2/core/events.md": "
|
|
221
|
-
"spec/v2/core/form-content-packs.md": "
|
|
222
|
-
"spec/v2/core/headers.md": "
|
|
223
|
-
"spec/v2/core/idempotency.md": "
|
|
224
|
-
"spec/v2/core/identity.md": "
|
|
225
|
-
"spec/v2/core/interop.md": "
|
|
226
|
-
"spec/v2/core/interrupt.md": "
|
|
227
|
-
"spec/v2/core/overview.md": "
|
|
228
|
-
"spec/v2/core/packs.md": "
|
|
229
|
-
"spec/v2/core/persistence.md": "
|
|
230
|
-
"spec/v2/core/replay.md": "
|
|
231
|
-
"spec/v2/core/runs.md": "
|
|
232
|
-
"spec/v2/core/security-defaults.md": "
|
|
233
|
-
"spec/v2/core/versioning.md": "
|
|
234
|
-
"spec/v2/core/webhooks.md": "
|
|
235
|
-
"spec/v2/core/workflow-chain-packs.md": "
|
|
216
|
+
"spec/v2/core/capabilities.md": "35696991582729c86b5760f292251734e37cee45398fa5179764cefa5a91037f",
|
|
217
|
+
"spec/v2/core/conformance.md": "a451c0a2ba79d93c55e540ccef480eba7de9602d59bbb03eead05daafde0beac",
|
|
218
|
+
"spec/v2/core/connection-packs.md": "2e53c92476f68304139faf0c370874dc27bbba56a127a07e0906ff06edbb8ff1",
|
|
219
|
+
"spec/v2/core/errors.md": "c3ac131dff970ab7574629d72735ace52cc56cd4a7ab5d1206ce91f382bc9a68",
|
|
220
|
+
"spec/v2/core/events.md": "6ab8c727df3ebc5a60de3837c82a0075b4357d6f7e28435c6f80585687d41a76",
|
|
221
|
+
"spec/v2/core/form-content-packs.md": "d4c5295dfd28972be205c87c34d0d34ced64f4a2561ebff7f9d24b436d83df25",
|
|
222
|
+
"spec/v2/core/headers.md": "6c5eb48d998c141b5f0cb61fea926833a072748fdc4034e1a90a4dfe5448659c",
|
|
223
|
+
"spec/v2/core/idempotency.md": "803cd85947b1b2151cd2fb42cf0e0c52c9bcd19cdc6c23dcf34b1eddc600921a",
|
|
224
|
+
"spec/v2/core/identity.md": "ae24870df315b527dfe9ecf7a4c26582bcc1113da7954f44acf69bf463ac390d",
|
|
225
|
+
"spec/v2/core/interop.md": "8d8f4b040cb3625044c6aa586c8dcf5e9d15797de3d3b1cea631f44b8924701c",
|
|
226
|
+
"spec/v2/core/interrupt.md": "bdb2879a52a2504d84146e46108c4a4c2dd3a6f27865a295c80375b331cced21",
|
|
227
|
+
"spec/v2/core/overview.md": "7dc00ace32d4e4ce929a383651f0029fc4b7091ec87487b1bf26ead1be209e0e",
|
|
228
|
+
"spec/v2/core/packs.md": "3254fd060c2b690cea70ef2b1b1a119711bb04fb5f13bf8936d4d718df9b2322",
|
|
229
|
+
"spec/v2/core/persistence.md": "e75c6d8cc6a31747f8559931c420ed0debbdec16ae01fed28df5aa79a51e5899",
|
|
230
|
+
"spec/v2/core/replay.md": "dee513b6ca313a0647c853e713af94a3e077f3e58f71851ddb0ef8adcb3b0afe",
|
|
231
|
+
"spec/v2/core/runs.md": "b4c0bb2869077fcbf26e15bc6bbac06819f68b8241944b903a275a37db1c71fa",
|
|
232
|
+
"spec/v2/core/security-defaults.md": "9ab1d1a88ccd0929f354422b151ec6d3164e8cd3784f8e58bb6f11cb7ee1e7d5",
|
|
233
|
+
"spec/v2/core/versioning.md": "27b88cde88f9060567ef7e46f4897b6be8892ade9f4a46c2ab16e314c515eabd",
|
|
234
|
+
"spec/v2/core/webhooks.md": "ecec4d22a35aeafd34276bb0579ae28610e79ab8850ebf42188cb51bc946a093",
|
|
235
|
+
"spec/v2/core/workflow-chain-packs.md": "26bb65721f826285b7d90c3cb62fa7e9fb2414c1bc6e0fd25b33209168c3102e",
|
|
236
236
|
"spec/v2/declaration.json": "a09bac61c1b825e4a77b5abc0f86f1f8c20c381e0650eb08c2f6d0ef0aaec1dc",
|
|
237
237
|
"spec/v2/declaration.schema.json": "c86e3083fb9789c1958ecb4576cc6f71aa90e6f339521139238543ed08211dd4",
|
|
238
238
|
"spec/v2/errors.json": "4ff032033f02d7e3fb4204581456408ba5e7642b438c1f349bbd1c264e63e419",
|
|
@@ -271,8 +271,8 @@
|
|
|
271
271
|
"spec/v2/path-manifest.json": "a6f4e652e866889e8bde815874062f62929aee95dc8e58e7152c56adee262163",
|
|
272
272
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
273
273
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
274
|
-
"spec/v2/release.json": "
|
|
274
|
+
"spec/v2/release.json": "5f3133ef7b959b76bb72c6b8e0fc7249bd93744c0b2431bdacb5fab43e4ae4a7",
|
|
275
275
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
276
276
|
},
|
|
277
|
-
"corpusCommit": "
|
|
277
|
+
"corpusCommit": "11c348ccb11f58a9bdb413030ab9d0366f71642d"
|
|
278
278
|
}
|
package/api/seams-v2.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP conformance seams profile (openwop-conformance-seams-v2)
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.1
|
|
5
5
|
description: 'GENERATED by scripts/derive-v2-api.py. RFC 0168 §C: the seams are a versioned conformance profile with their
|
|
6
6
|
own document and path space (/conformance/seams/…), validated against the canonical v2 schemas with no tolerance path,
|
|
7
7
|
forbidden from the capability namespace (a host advertises the profile, never a testSeams flag). This document carries
|
package/api/v2/asyncapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
asyncapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 event streams
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.1
|
|
5
5
|
description: GENERATED by scripts/derive-v2-api.py (RFC 0171 §E.1, RFC 0172 §C.2). One run-events channel whose address
|
|
6
6
|
is the OpenAPI path key; the server pathname is empty (bare origin). streamMode is a pattern over the closed set and its
|
|
7
7
|
comma-separated combinations (`values` never combines). hostEvents has a real address (RFC 0171 §E.1) — the documented
|
package/api/v2/openapi.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.1.0
|
|
2
2
|
info:
|
|
3
3
|
title: OpenWOP v2 API
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.1
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: GENERATED by scripts/derive-v2-api.py from api/openapi.yaml and the RFC 0167 children (v2 charter Phase 3,
|
|
7
7
|
P3-C). Bare origin, unversioned path keys, negotiation by `OpenWOP-Version` + `protocolVersions[]` (RFC 0172 §A). No seam
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "The OpenWOP machine-readable contract: api/ (OpenAPI, AsyncAPI, the seams profile), schemas/ (v1 and v2 JSON Schemas), the spec/v1 and spec/v2 registries (errors, event codemap, declaration, deprecations, migrations, gaps) and CORPUS-STAMP.json — published from the openwop/openwop corpus tag; the peer dependency @openwop/openwop-conformance digest-checks at start (RFC 0168 §D.2).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
"properties": {
|
|
260
260
|
"id": {
|
|
261
261
|
"type": "string",
|
|
262
|
-
"pattern": "^openwop\\.(?!it\\.(?:artifact-schema-compile-bounded|artifact-type-legacy-ids|capability-example-root-layout|certification-floor-enforcement|chain-subchain-unsupported-refused|compensation-profile|core-manifest-and-extension-registry|discovery-canonical-family-no-shadow|edge-condition-truthy-falsy|effect-identity-composition|effect-identity-cross-scope|error-envelope-canonical-shape|event-codemap-complete|form-content-packs|multi-region-effect-vocabulary|normative-example-extraction|openapi-asyncapi-sdk-parity|pack-manifest-extensions|protocol-version-grammar|registry-declarative-kinds|rfc-0147-self-audit|rfc-lifecycle-coherence|semantic-digest-v2|spec-corpus-validity|spec-section-citations|tool-result-trust-monotone|v2-alias-covers-reword|v2-corpus-tag-pinned|v2-declaration-parity|v2-eos-clock|v2-error-registry-prose-parity|v2-event-naming-rule|v2-events-channel-parity|v2-externally-gated-never-stable|v2-id-kinds-bound|v2-
|
|
262
|
+
"pattern": "^openwop\\.(?!it\\.(?:artifact-schema-compile-bounded|artifact-type-legacy-ids|capability-example-root-layout|certification-floor-enforcement|chain-subchain-unsupported-refused|compensation-profile|core-manifest-and-extension-registry|discovery-canonical-family-no-shadow|edge-condition-truthy-falsy|effect-identity-composition|effect-identity-cross-scope|error-envelope-canonical-shape|event-codemap-complete|form-content-packs|multi-region-effect-vocabulary|normative-example-extraction|openapi-asyncapi-sdk-parity|pack-manifest-extensions|protocol-version-grammar|registry-declarative-kinds|rfc-0147-self-audit|rfc-lifecycle-coherence|semantic-digest-v2|spec-corpus-validity|spec-section-citations|tool-result-trust-monotone|v2-alias-covers-reword|v2-corpus-tag-pinned|v2-bundle-signature-attributable|v2-declaration-parity|v2-eos-clock|v2-error-registry-prose-parity|v2-event-naming-rule|v2-events-channel-parity|v2-externally-gated-never-stable|v2-id-kinds-bound|v2-one-signing-scheme|v2-path-parity|v2-release-identity|v2-req-only-assertions|v2-retention-floors|v2-seams-not-in-canonical|v2-security-defaults-table|v2-spec-artifacts-digest|v2-threat-model-template|v2-umbrella-alias-covered|v2-umbrella-child-parts|v2-umbrella-codemod-at-active|v2-umbrella-codemod-legs|v2-umbrella-migration-deprecation|v2-witness-required|versioned-composition-profiles|workflow-chain-internal-flag|workload-identity-profile)\\.)(requirement|it|scenario|floor|profile|family)\\.[a-z0-9]",
|
|
263
263
|
"description": "RFC 0168 §A.1 — `openwop.<area>.<slug>`. The suite mints six areas: `requirement` (an explicit `req()` id), `it` (a per-test id from the scenario file and title), `scenario` and `floor` (per-file rows), `profile` (a claimed-profile row) and `family` (a capability gate). The lookahead refuses every id minted from a corpus-coherence file: those run in the spec repo’s CI and MUST NOT appear in a host bundle (conformance.md §\"Two products, two ledgers\"; RFC 0168 §D.1). `scripts/check-req-only.mjs` fails when the list drifts from `conformance/src/coherence/`."
|
|
264
264
|
},
|
|
265
265
|
"scenario": {
|
|
@@ -3703,7 +3703,7 @@
|
|
|
3703
3703
|
},
|
|
3704
3704
|
"runId": {
|
|
3705
3705
|
"$ref": "ids.schema.json#/$defs/runId",
|
|
3706
|
-
"description": "MAY \u2014 the run started by a `delivered` outcome
|
|
3706
|
+
"description": "MAY \u2014 the run started by a `delivered` outcome. Absent for `retrying` / `dead-lettered`. **It does NOT carry this delivery's id as `causationId`:** `deliveryId` is tenant-bound and REQUIRES a `/`, while `causationId` is bound to the `eventId` kind whose grammar admits none \u2014 no string is both. An earlier revision asserted that equality here and in `trigger-event.schema.json`; 2.6.0 corrected the latter and missed this one, which is the more load-bearing of the two: `triggerDeliveryAttempted` is a DURABLE event-log payload and rides replay and `:fork`, where `trigger-event` is an in-run payload that never reaches the log. How a run points back at its causing delivery is deliberately left open \u2014 RFC 0040 \u00a7Alternatives already rejected overloading `causationId` for a cross-space pointer in favour of a sibling field, and the v2 seat needs a trigger-ingestion document that `spec/v2/core/` does not yet have."
|
|
3707
3707
|
}
|
|
3708
3708
|
},
|
|
3709
3709
|
"patternProperties": { "^(openwop-|x-|vendor\\.)": { "description": "Vendor / host extension escape hatch (RFC 0185 \u00a7B). This def was `additionalProperties: true` in v1 and closed in v2 with no hatch and no migration row, so every extra key a host LEGITIMATELY recorded under v1 became invalid at the cut with nowhere to put it. Two production hosts independently lost data to that: one drops 32 distinct keys at the major-2 read (the conversation content among them), the other projects era-3 rows ON WRITE and lost a variable's value AT REST. A property matching this pattern is carried opaquely \u2014 a host MUST NOT interpret it, and MUST NOT silently drop it (RFC 0185 \u00a7C)." } },
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"deliveryId": {
|
|
31
31
|
"$ref": "ids.schema.json#/$defs/deliveryId",
|
|
32
|
-
"description": "Stable per-delivery id for this trigger delivery, tenant-bound per `identity.md` \u00a75. **It is NOT the `causationId` stamped on `run.started`.** An earlier revision of this description said it was; that claim was unsatisfiable from the moment RFC 0184/0187 made this kind tenant-bound \u2014 `deliveryId` REQUIRES a `<tenant>/<opaque>` form and `causationId` is typed as `eventId`, whose grammar admits no `/`, so no string can be both. No host emitted the pairing (the kind has no v2 read surface at all), so nothing was relying on it. How a run points back at the delivery that caused it is deliberately left open: RFC 0040 \u00a7Alternatives already rejected overloading `causationId` for a cross-space pointer in favour of a sibling field, and the v2 seat
|
|
32
|
+
"description": "Stable per-delivery id for this trigger delivery, tenant-bound per `identity.md` \u00a75. **It is NOT the `causationId` stamped on `run.started`.** An earlier revision of this description said it was; that claim was unsatisfiable from the moment RFC 0184/0187 made this kind tenant-bound \u2014 `deliveryId` REQUIRES a `<tenant>/<opaque>` form and `causationId` is typed as `eventId`, whose grammar admits no `/`, so no string can be both. No host emitted the pairing (the kind has no v2 read surface at all), so nothing was relying on it. How a run points back at the delivery that caused it is deliberately left open: RFC 0040 \u00a7Alternatives already rejected overloading `causationId` for a cross-space pointer in favour of a sibling field, and the v2 seat does NOT belong in `spec/v2/core/webhooks.md` \u2014 that document is OUTBOUND (a host POSTs matching events to a registered URL) while this pointer is INBOUND (an external event arrives, a run starts). It belongs on the durable event-log payload, in a trigger-ingestion document `spec/v2/core/` does not yet have (RFC 0187 \u00a7Acceptance criteria tracks the gap). A normative cross-field rule does not belong in a schema description in the first place."
|
|
33
33
|
},
|
|
34
34
|
"dedupKey": {
|
|
35
35
|
"type": "string",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.
|
|
7
|
+
"version": "2.6.1"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -419,5 +419,5 @@
|
|
|
419
419
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
420
420
|
}
|
|
421
421
|
],
|
|
422
|
-
"digest": "
|
|
422
|
+
"digest": "2752bd707ded939b2fc724e7f0523636d57836e3102dbd5a94fdb21d3ff242a8"
|
|
423
423
|
}
|
package/spec/v2/core/errors.md
CHANGED
package/spec/v2/core/events.md
CHANGED
package/spec/v2/core/headers.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Headers
|
|
2
2
|
|
|
3
|
-
> **Status: Stable ·
|
|
3
|
+
> **Status: Stable · RFC 0171 §C.1, RFC 0172 §A.3–§A.4.** GENERATED by `scripts/derive-v2-api.py` from `api/v2/openapi.yaml`; do not edit.
|
|
4
4
|
|
|
5
5
|
## Why this exists
|
|
6
6
|
|
package/spec/v2/core/identity.md
CHANGED
package/spec/v2/core/interop.md
CHANGED
package/spec/v2/core/overview.md
CHANGED
package/spec/v2/core/packs.md
CHANGED
package/spec/v2/core/replay.md
CHANGED
package/spec/v2/core/runs.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Security Defaults
|
|
2
2
|
|
|
3
|
-
> **Status: Stable ·
|
|
3
|
+
> **Status: Stable · RFC 0173 (§A–§E), 0164 §22, 0170 §B.**
|
|
4
4
|
|
|
5
5
|
## Why this exists
|
|
6
6
|
|
|
@@ -61,7 +61,7 @@ A relaxation, where one is legitimate — a development deployment, a single-ten
|
|
|
61
61
|
| --- | --- |
|
|
62
62
|
| `session` | Lost on restart. |
|
|
63
63
|
| `deployment` | Set at deploy time. |
|
|
64
|
-
| `
|
|
64
|
+
| `persisted` | Survives restarts and is auditable. |
|
|
65
65
|
|
|
66
66
|
A bundle that records a relaxation MUST NOT certify the profile the relaxed obligation belongs to; the `relaxation-recorded` scenario verifies it unaided (conformance.md). RFC 0158's ladder is the model: evidence lives in the bundle, and a field that let a host assert a property with nothing behind it is the failure the ladder prevents.
|
|
67
67
|
|
package/spec/v2/core/webhooks.md
CHANGED
package/spec/v2/release.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "RFC 0172 §D.1 — the one release identity the v2 artifacts derive from. `version` is the next corpus tag `v<version>` (the publish workflow's coordinated-release tag pattern `v*`; RFC 0172's `openwop/v2.<minor>.<patch>` spelling is amended to this at its flip). api/v2/*.yaml info.version, the suite's 2.x version and @openwop/spec-artifacts read it. Bumped by the release PR that cuts the tag, never by hand elsewhere.",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"corpusTag": "v2.
|
|
3
|
+
"version": "2.6.1",
|
|
4
|
+
"corpusTag": "v2.6.1",
|
|
5
5
|
"updated": "2026-09-18"
|
|
6
6
|
}
|