@openwop/spec-artifacts 2.46.0 → 2.46.2
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 +13 -13
- 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/spec/v1/core-standard-manifest.json +2 -2
- package/spec/v1/gaps.json +5 -5
- package/spec/v2/core/capabilities.md +2 -2
- package/spec/v2/declaration.json +2 -2
- package/spec/v2/profiles.json +3 -3
- package/spec/v2/release.json +3 -3
- package/spec/v2/surface-baseline.json +1 -1
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.46.
|
|
5
|
-
"corpusTag": "v2.46.
|
|
4
|
+
"version": "2.46.2",
|
|
5
|
+
"corpusTag": "v2.46.2",
|
|
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": "ac6de5303872664b78ff419c035915593e01599e02835e777a0123de1baeb398",
|
|
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": "26eaead22194d03d4d8027eb6b9450ab66c8c15eb1bc77adba2118aa3384d32f",
|
|
13
|
+
"api/v2/asyncapi.yaml": "e8e435d575d9ea7312d3dc5e0191f0a9e389e2edc3775975df67b455ff293c4a",
|
|
14
|
+
"api/v2/openapi.yaml": "f77e9a4a0f61391341efbc426fa4b4eba215f731cbab0ddde7a229b640d4e6fc",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "276fc1d51eb08e14e9127b9fd27761d7046ee33c12000f3a64a801322db8bf58",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
|
|
@@ -208,14 +208,14 @@
|
|
|
208
208
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
209
209
|
"spec/v1/alias-detectors.json": "22444c22bb88c568339ef512553f9fc38146e22b566d11ab8608f655d688d19c",
|
|
210
210
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
211
|
-
"spec/v1/core-standard-manifest.json": "
|
|
211
|
+
"spec/v1/core-standard-manifest.json": "ca8ad2e3392b1cc1c1cd6ce6072f8a000c1a8a68ced7c319944297d90f114f87",
|
|
212
212
|
"spec/v1/deprecations.json": "e723bc11d7272c71789ad1303bb7f21809a8a024abf57594f9d5c35dc199ece9",
|
|
213
213
|
"spec/v1/deprecations.schema.json": "3e393c405d2a41b467d8c5e3c468549078df1ce6a6d2588fc488097b95d9b55b",
|
|
214
214
|
"spec/v1/end-of-support.json": "35f0bf3b70fe78b16e2a2fd81a153fc27e703f6c16376c6fe7cdf1f4f2c4e6d4",
|
|
215
215
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
216
216
|
"spec/v1/event-codemap.schema.json": "d05933b2e88103aff51a2f774df97b9bda065e0fc88dbd9b114cc47a32189174",
|
|
217
217
|
"spec/v1/extensions.json": "79a60754aa16cbdbdb604f8e5c00038af535a1690a4d07bd5ff7c38f0256a7bc",
|
|
218
|
-
"spec/v1/gaps.json": "
|
|
218
|
+
"spec/v1/gaps.json": "2415b9a2152cb526fa7296b82a433d53ce19194a52389d44f43a81539ac26a1c",
|
|
219
219
|
"spec/v1/gaps.schema.json": "8fd83259f556553c9df0f53e7a82ca8c2a4771d471197f69b4e2ae0ceeacfd66",
|
|
220
220
|
"spec/v1/migrations.json": "4c50760be70cb644d02427bcaf5749606700edf4513f423903cf3b1d12f5c300",
|
|
221
221
|
"spec/v1/migrations.schema.json": "886779aa6c22e646db097f5df210adb018a4dd14a7b815465a18c8a7056c8f72",
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
"spec/v1/spec-gaps.json": "ea9612af55bea9dae3e82223d4f714243f8f590b0193f1188257b13491a38afc",
|
|
224
224
|
"spec/v2/README.md": "c58acd84bb67c69043d9f777cbaa16d03e4f0f0a8158d2984526b69981067a14",
|
|
225
225
|
"spec/v2/core/artifact-type-packs.md": "f734740cc3963f86c9f273a7dace26291bba2855161ddd3540618131a2c8d13e",
|
|
226
|
-
"spec/v2/core/capabilities.md": "
|
|
226
|
+
"spec/v2/core/capabilities.md": "6b766bcc1ec8c8dd8054defd8a93d8f5ceb046f16d256aef24d1a98bd89a1f73",
|
|
227
227
|
"spec/v2/core/conformance.md": "3ca291e63bc70a6ef829ae8759ad0ded3741ea7aa507bbbdffc57de443ab2ae2",
|
|
228
228
|
"spec/v2/core/connection-packs.md": "c80f95bd6a03698f35c72cdb2b46bd973f49203bbd786c26760e35fa86e6f23d",
|
|
229
229
|
"spec/v2/core/conversation.md": "8d6abedf6af408a74577753bfca24719d318e2632e10b45ff5d63bdcf31a8aaa",
|
|
@@ -254,7 +254,7 @@
|
|
|
254
254
|
"spec/v2/core/workflow-chain-packs.md": "fdce7a8477e269950a2bac05ee6eddbd66eb0b670b464d00054f7196ec05d29c",
|
|
255
255
|
"spec/v2/corrections.json": "3a8d93e33865b692d26a3b6bfd3819766e206b2e0c2a69669baa4bf833d05a49",
|
|
256
256
|
"spec/v2/corrections.schema.json": "46bbffb954d13bd9995aebc912ceeb2544f7064331abf25fd6ab85c81a5cec94",
|
|
257
|
-
"spec/v2/declaration.json": "
|
|
257
|
+
"spec/v2/declaration.json": "6fa19c3a68df5a951f9dabea13afbd4ee3b288a110002461f373b191b3eca99b",
|
|
258
258
|
"spec/v2/declaration.schema.json": "ef951633e4070899f64828f5cf1b5f4870270a0360f81dbb49b5b4d6cd407550",
|
|
259
259
|
"spec/v2/eos-override.json": "4c72d2f6a658943b01c1de1643cf294642091933af7832f38ee5495df684cb2d",
|
|
260
260
|
"spec/v2/errors.json": "1f0e29455edbd22e28f67f221766209c3c55ac4987beb77993b5702dd7cae131",
|
|
@@ -312,10 +312,10 @@
|
|
|
312
312
|
"spec/v2/migrations.schema.json": "b91ade6320ad1b1185c9495b9424f3aa63438ed8e412c45171c227d82c0afd86",
|
|
313
313
|
"spec/v2/path-manifest.json": "7b5679a4dad98c80d855361d88a98c8a4e045af15e310862a05b285b815dc9fc",
|
|
314
314
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
315
|
-
"spec/v2/profiles.json": "
|
|
316
|
-
"spec/v2/release.json": "
|
|
315
|
+
"spec/v2/profiles.json": "b382b261c7844798575f7c1b37c934f0da19846016a2337d883d4f5ef6e05479",
|
|
316
|
+
"spec/v2/release.json": "20e2ffa6bf1e1b10a4e0404a1f27fabdf9bc502ea705118b2ae0a9a0aaa60f40",
|
|
317
317
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
|
|
318
|
-
"spec/v2/surface-baseline.json": "
|
|
318
|
+
"spec/v2/surface-baseline.json": "473b133e092e3107893e23f5d7e8d42d117ad894e4d3db5042a780431302ee84"
|
|
319
319
|
},
|
|
320
|
-
"corpusCommit": "
|
|
320
|
+
"corpusCommit": "24368a14552d28c785adeea7b72647e8f6ae664e"
|
|
321
321
|
}
|
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.46.
|
|
4
|
+
version: 2.46.2
|
|
5
5
|
description: 'The OpenWOP conformance seams profile (`openwop-conformance-seams-v2`): test-only operations in their own
|
|
6
6
|
path space, `/conformance/seams/…`. The profile is versioned and validated against the canonical v2 schemas with no tolerance
|
|
7
7
|
path. It is not a capability: a host advertises the profile, never a `testSeams` flag.
|
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.46.
|
|
4
|
+
version: 2.46.2
|
|
5
5
|
description: 'OpenWOP v2 event streams over SSE. The run-events channel''s address is the OpenAPI path key, and the server
|
|
6
6
|
pathname is empty (bare origin). `streamMode` is a stream mode from the closed set, or a comma-separated combination of
|
|
7
7
|
them; `values` never combines. `hostEvents` has a default address, `/host/events`; a host MAY declare another under `heartbeat.deliveryChannel`.
|
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.46.
|
|
4
|
+
version: 2.46.2
|
|
5
5
|
summary: REST surface for declaring, executing, suspending, resuming, and observing multi-step workflows.
|
|
6
6
|
description: 'The OpenWOP v2 REST API. Paths are unversioned and served at the bare origin; a client selects a version with
|
|
7
7
|
the `OpenWOP-Version` header from the host''s `protocolVersions[]`. Conformance seams and test-mode operations are not
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.46.
|
|
3
|
+
"version": "2.46.2",
|
|
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": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"provenance": {
|
|
5
5
|
"suite": {
|
|
6
6
|
"package": "@openwop/openwop-conformance",
|
|
7
|
-
"version": "2.46.
|
|
7
|
+
"version": "2.46.2"
|
|
8
8
|
},
|
|
9
9
|
"note": "Derived from the corpus at generation time. Regenerate with --write; verify with --check."
|
|
10
10
|
},
|
|
@@ -426,5 +426,5 @@
|
|
|
426
426
|
"$id": "https://openwop.dev/spec/v1/workspace-file.schema.json"
|
|
427
427
|
}
|
|
428
428
|
],
|
|
429
|
-
"digest": "
|
|
429
|
+
"digest": "b94248e490ce5281b9512b6f52f4a069c7f23f405eb4fd5d2befe2dcbe4d7baa"
|
|
430
430
|
}
|
package/spec/v1/gaps.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./gaps.schema.json",
|
|
3
3
|
"version": 1,
|
|
4
|
-
"updated": "2026-10-
|
|
4
|
+
"updated": "2026-10-12",
|
|
5
5
|
"witnessClasses": [
|
|
6
6
|
"witnessable-unaided",
|
|
7
7
|
"witnessable-gated",
|
|
@@ -14470,8 +14470,8 @@
|
|
|
14470
14470
|
"surface": "No host records an inbound negotiation as a host event or lists the reserved type, so B.2 and B.3 have no witness.",
|
|
14471
14471
|
"witness": "unclassified",
|
|
14472
14472
|
"requirementId": null,
|
|
14473
|
-
"disposition": "
|
|
14474
|
-
"target":
|
|
14473
|
+
"disposition": "closed",
|
|
14474
|
+
"target": null,
|
|
14475
14475
|
"sources": [
|
|
14476
14476
|
{
|
|
14477
14477
|
"file": "RFCS/registers/0242-negotiation-decided-requested-and-inbound.gaps.md",
|
|
@@ -14487,8 +14487,8 @@
|
|
|
14487
14487
|
"surface": "No host in `INTEROP-MATRIX.md` offers a version between its floor and its preferred version, so no host can be shown to record a downgrade above the floor.",
|
|
14488
14488
|
"witness": "unclassified",
|
|
14489
14489
|
"requirementId": null,
|
|
14490
|
-
"disposition": "
|
|
14491
|
-
"target": "
|
|
14490
|
+
"disposition": "externally-gated",
|
|
14491
|
+
"target": "host-floor-below-preferred",
|
|
14492
14492
|
"sources": [
|
|
14493
14493
|
{
|
|
14494
14494
|
"file": "RFCS/registers/0242-negotiation-decided-requested-and-inbound.gaps.md",
|
|
@@ -433,13 +433,13 @@ Rows with `anchor: ext` are documented under `spec/v2/ext/<key>/`. Each document
|
|
|
433
433
|
|
|
434
434
|
## 7. Profiles
|
|
435
435
|
|
|
436
|
-
A profile is a predicate over the declaration
|
|
436
|
+
A profile is a predicate over the declaration, published in `spec/v2/profiles.json` (generated): every listed family is present as a record, and every listed metadata key, or `key.member`, is present.
|
|
437
437
|
|
|
438
438
|
| Profile | Predicate |
|
|
439
439
|
| --- | --- |
|
|
440
440
|
| `openwop-discovery-core` | Metadata `protocolVersions`, `preferredVersion` |
|
|
441
441
|
| `openwop-core-standard` | Families `interrupt`, `replay`, `webhooks`, `idempotency`, `eventLog`, plus the 2.0.0 floor scenarios and requirement ids the declaration names |
|
|
442
|
-
| `openwop-conformance-seams-v2` |
|
|
442
|
+
| `openwop-conformance-seams-v2` | Metadata `conformance.seamsProfile` ([`conformance.md`](conformance.md)); forbidden from the capability namespace |
|
|
443
443
|
|
|
444
444
|
- The v2 root has no `profiles[]`; a host that emits one MUST fail schema validation (§3).
|
|
445
445
|
- The facet `auth.lanes[]` ([`identity.md`](identity.md)) replaces `auth.profiles`. `a2a.profiles[]` and `mcp.profiles[]` are facets too ([`interop.md`](interop.md)).
|
package/spec/v2/declaration.json
CHANGED
|
@@ -2085,7 +2085,7 @@
|
|
|
2085
2085
|
"predicate": {
|
|
2086
2086
|
"families": [],
|
|
2087
2087
|
"metadata": [
|
|
2088
|
-
"conformance"
|
|
2088
|
+
"conformance.seamsProfile"
|
|
2089
2089
|
]
|
|
2090
2090
|
},
|
|
2091
2091
|
"floorScenarios": [
|
|
@@ -2094,7 +2094,7 @@
|
|
|
2094
2094
|
"v2-v1-signed-webhook-accepted",
|
|
2095
2095
|
"v2-effect-seam-no-refire"
|
|
2096
2096
|
],
|
|
2097
|
-
"note": "RFC 0168 \u00a7C.1 \u2014 the seams profile; its own api/seams-v2.yaml; forbidden from the capability namespace. Floor minted rc.45: the four scenarios driven through a seam. rc.62 CLAIM FIX: the predicate now requires `conformance` at the discovery root. Until rc.62 the predicate was EMPTY, and `claimedProfilesForV2` treats an empty predicate as vacuously satisfied, so this profile was CLAIMED BY EVERY v2 HOST \u2014 including two production hosts that never advertised it and carried it at `certified: false`. A profile claimed by a host that never advertised it is a claim the host did not make.
|
|
2097
|
+
"note": "RFC 0168 \u00a7C.1 \u2014 the seams profile; its own api/seams-v2.yaml; forbidden from the capability namespace. Floor minted rc.45: the four scenarios driven through a seam. rc.62 CLAIM FIX: the predicate now requires `conformance` at the discovery root. Until rc.62 the predicate was EMPTY, and `claimedProfilesForV2` treats an empty predicate as vacuously satisfied, so this profile was CLAIMED BY EVERY v2 HOST \u2014 including two production hosts that never advertised it and carried it at `certified: false`. A profile claimed by a host that never advertised it is a claim the host did not make. From rc.62 to 2.46.1 the predicate was NECESSARY, not sufficient: it tested that a `conformance` block existed and left the exact advert to `seamsProfileAdvertised` per scenario. That did not compose: `conformance` also carries `certificationBundleUrl`, so a host with no seams claimed the profile whenever it published a bundle URL, and four openwop-app bundles (2.35.1, 2.43.0, 2.44.0, 2.45.28-4683d9f89) certified it. 2.46.2: the predicate is the advert itself, `conformance.seamsProfile` (capabilities.md \u00a77 member form), and check-declaration rule 13 resolves every predicate entry. This profile is the instrument, not a capability predicate: each floor file is ALSO gated on the family it witnesses (fork-a-v1-run and effect-seam-no-refire on replay, effect-identity-business-key on idempotency, v1-signed-webhook-accepted on webhooks), records `inapplicable` when that family is absent, and the profile certifies only on a witnessed pass \u2014 a seams host advertising none of those families witnesses nothing through the seam and certifies nothing. 2.45.30: every leg of a floor file MUST be seam-driven, because a floor row is recorded per file and one seam-free leg passed it on a host with a `conformance` block and no seams (openwop-app 4683d9f89); the facet and ledger-read legs moved to v2-webhooks-v1-scheme-listed and v2-effect-ledger-keying, and coherence/seams-floor-legs-gated enforces the rule."
|
|
2098
2098
|
}
|
|
2099
2099
|
],
|
|
2100
2100
|
"aliases": {
|
package/spec/v2/profiles.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "GENERATED from spec/v2/declaration.json (RFC 0169 §C.1). A profile is a predicate over the declaration: every listed family present as a record (and every listed metadata key
|
|
2
|
+
"$comment": "GENERATED from spec/v2/declaration.json (RFC 0169 §C.1). A profile is a predicate over the declaration: every listed family present as a record (and every listed metadata entry present: a key, or `key.member`). No profiles[] exists at the v2 root.",
|
|
3
3
|
"generatedFrom": "spec/v2/declaration.json",
|
|
4
4
|
"profiles": [
|
|
5
5
|
{
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"predicate": {
|
|
58
58
|
"families": [],
|
|
59
59
|
"metadata": [
|
|
60
|
-
"conformance"
|
|
60
|
+
"conformance.seamsProfile"
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
"floorScenarios": [
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"v2-effect-seam-no-refire"
|
|
68
68
|
],
|
|
69
69
|
"requirementIds": [],
|
|
70
|
-
"note": "RFC 0168 §C.1 — the seams profile; its own api/seams-v2.yaml; forbidden from the capability namespace. Floor minted rc.45: the four scenarios driven through a seam. rc.62 CLAIM FIX: the predicate now requires `conformance` at the discovery root. Until rc.62 the predicate was EMPTY, and `claimedProfilesForV2` treats an empty predicate as vacuously satisfied, so this profile was CLAIMED BY EVERY v2 HOST — including two production hosts that never advertised it and carried it at `certified: false`. A profile claimed by a host that never advertised it is a claim the host did not make.
|
|
70
|
+
"note": "RFC 0168 §C.1 — the seams profile; its own api/seams-v2.yaml; forbidden from the capability namespace. Floor minted rc.45: the four scenarios driven through a seam. rc.62 CLAIM FIX: the predicate now requires `conformance` at the discovery root. Until rc.62 the predicate was EMPTY, and `claimedProfilesForV2` treats an empty predicate as vacuously satisfied, so this profile was CLAIMED BY EVERY v2 HOST — including two production hosts that never advertised it and carried it at `certified: false`. A profile claimed by a host that never advertised it is a claim the host did not make. From rc.62 to 2.46.1 the predicate was NECESSARY, not sufficient: it tested that a `conformance` block existed and left the exact advert to `seamsProfileAdvertised` per scenario. That did not compose: `conformance` also carries `certificationBundleUrl`, so a host with no seams claimed the profile whenever it published a bundle URL, and four openwop-app bundles (2.35.1, 2.43.0, 2.44.0, 2.45.28-4683d9f89) certified it. 2.46.2: the predicate is the advert itself, `conformance.seamsProfile` (capabilities.md §7 member form), and check-declaration rule 13 resolves every predicate entry. This profile is the instrument, not a capability predicate: each floor file is ALSO gated on the family it witnesses (fork-a-v1-run and effect-seam-no-refire on replay, effect-identity-business-key on idempotency, v1-signed-webhook-accepted on webhooks), records `inapplicable` when that family is absent, and the profile certifies only on a witnessed pass — a seams host advertising none of those families witnesses nothing through the seam and certifies nothing. 2.45.30: every leg of a floor file MUST be seam-driven, because a floor row is recorded per file and one seam-free leg passed it on a host with a `conformance` block and no seams (openwop-app 4683d9f89); the facet and ledger-read legs moved to v2-webhooks-v1-scheme-listed and v2-effect-ledger-keying, and coherence/seams-floor-legs-gated enforces the rule."
|
|
71
71
|
}
|
|
72
72
|
]
|
|
73
73
|
}
|
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.46.
|
|
4
|
-
"corpusTag": "v2.46.
|
|
5
|
-
"updated": "2026-10-
|
|
3
|
+
"version": "2.46.2",
|
|
4
|
+
"corpusTag": "v2.46.2",
|
|
5
|
+
"updated": "2026-10-12"
|
|
6
6
|
}
|