@openwop/openwop-conformance 2.0.0-rc.64 → 2.0.0-rc.66
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# `@openwop/openwop-conformance` Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.0-rc.66] — 2026-09-05 — the changelog you are reading had not mentioned this major
|
|
4
|
+
|
|
5
|
+
**This file went un-updated from `1.156.0` (2026-09-02) through `2.0.0-rc.65`** — twenty-one published releases, and zero mentions of any `2.0.0-rc` in the changelog that ships inside the tarball. If you installed `2.0.0-rc.65` and read its CHANGELOG, you read a document that ended three days before the v2 release series began.
|
|
6
|
+
|
|
7
|
+
**Why it rotted, and why nobody noticed.** `conformance/package.json` `files` lists `CHANGELOG.md`, which resolves *inside the package* — so the shipped file is `conformance/CHANGELOG.md`. The corpus changelog at the repo root is a **different file with the same name**, it was current the whole time, and every release wrote to it. The file being edited and the file being shipped were not the same file, and nothing compared either to the version being published. `scripts/check-shipped-changelog.mjs` now fails the corpus gate whenever a packed CHANGELOG's newest heading does not equal its own package's `version`, so this cannot recur.
|
|
8
|
+
|
|
9
|
+
**Where the 2.0.0 release notes actually are.** The full per-release record for `2.0.0-rc.1` … `2.0.0-rc.65` is the corpus changelog: <https://github.com/openwop/openwop/blob/main/CHANGELOG.md>. It is not reproduced here — it is ~180 KB and would be most of the tarball. What the v2 series changed, in one paragraph: the suite gained `--target-major`, a per-`it` requirement ledger with `req()` as the only assertion form, bundle v3 with signing and verification, the three v2 profiles and their floors, and the RFC 0148 §A disposition vocabulary (`executed-pass` / `executed-fail` / `skipped` / `inapplicable` / `blocked`) under which a bundle carrying any `blocked` row does not certify. `@openwop/spec-artifacts` became a required exact-pinned peer.
|
|
10
|
+
|
|
11
|
+
**This entry exists because a release should say what it shipped.** The gate requires one on every future version, including versions that change nothing worth recording — which then record exactly that.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [2.0.0-rc.66] — 2026-09-05 — the changelog you are reading had not mentioned this major
|
|
15
|
+
|
|
16
|
+
**This file went un-updated from `1.156.0` (2026-09-02) through `2.0.0-rc.65`** — twenty-one published releases, and zero mentions of any `2.0.0-rc` in the changelog that ships inside the tarball. If you installed `2.0.0-rc.65` and read its CHANGELOG, you read a document that ended three days before the v2 release series began.
|
|
17
|
+
|
|
18
|
+
**Why it rotted, and why nobody noticed.** `conformance/package.json` `files` lists `CHANGELOG.md`, which resolves *inside the package* — so the shipped file is `conformance/CHANGELOG.md`. The corpus changelog at the repo root is a **different file with the same name**, it was current the whole time, and every release wrote to it. The file being edited and the file being shipped were not the same file, and nothing compared either to the version being published. `scripts/check-shipped-changelog.mjs` now fails the corpus gate whenever a packed CHANGELOG's newest heading does not equal its own package's `version`, so this cannot recur.
|
|
19
|
+
|
|
20
|
+
**Where the 2.0.0 release notes actually are.** The full per-release record for `2.0.0-rc.1` … `2.0.0-rc.65` is the corpus changelog: <https://github.com/openwop/openwop/blob/main/CHANGELOG.md>. It is not reproduced here — it is ~180 KB and would be most of the tarball. What the v2 series changed, in one paragraph: the suite gained `--target-major`, a per-`it` requirement ledger with `req()` as the only assertion form, bundle v3 with signing and verification, the three v2 profiles and their floors, and the RFC 0148 §A disposition vocabulary (`executed-pass` / `executed-fail` / `skipped` / `inapplicable` / `blocked`) under which a bundle carrying any `blocked` row does not certify. `@openwop/spec-artifacts` became a required exact-pinned peer.
|
|
21
|
+
|
|
22
|
+
**This entry exists because a release should say what it shipped.** The gate will require one on every future version, including versions that change nothing worth recording — which then record exactly that.
|
|
23
|
+
|
|
24
|
+
|
|
3
25
|
## [1.156.0] — 2026-09-02 — the event codemap as data (v2 charter Phase 1, tranche 5)
|
|
4
26
|
|
|
5
27
|
One new corpus-coherence scenario file (471 → 472), not packed:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "@openwop/spec-artifacts",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
4
|
-
"stampSha256": "
|
|
3
|
+
"version": "2.0.0-rc.66",
|
|
4
|
+
"stampSha256": "66b1abcf0f47532edff60ffce799e180a79bd21924cc3c44c294c3a7d48823ec"
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openwop/openwop-conformance",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.66",
|
|
4
4
|
"description": "Production-ready black-box conformance suite for OpenWOP v1.0 compliant servers.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -56,6 +56,6 @@
|
|
|
56
56
|
"@openwop/spec-artifacts": "file:../spec-artifacts"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@openwop/spec-artifacts": "2.0.0-rc.
|
|
59
|
+
"@openwop/spec-artifacts": "2.0.0-rc.66"
|
|
60
60
|
}
|
|
61
61
|
}
|
package/requirements.json
CHANGED
|
@@ -28363,7 +28363,7 @@
|
|
|
28363
28363
|
{
|
|
28364
28364
|
"id": "openwop.it.v2-run-fork-prefix.a-replay-fork-inherits-exactly-0-fromseq-the-event-at-fromseq-is-re-executed-nev",
|
|
28365
28365
|
"file": "v2-run-fork-prefix.test.ts",
|
|
28366
|
-
"line":
|
|
28366
|
+
"line": 106,
|
|
28367
28367
|
"title": "a replay fork inherits exactly [0, fromSeq): the event at fromSeq is re-executed, never carried over",
|
|
28368
28368
|
"explicitId": null,
|
|
28369
28369
|
"citations": [
|
|
@@ -1,7 +1,7 @@
|
|
|
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.0.0-rc.
|
|
4
|
+
"version": "2.0.0-rc.66",
|
|
5
5
|
"corpusTag": null,
|
|
6
6
|
"files": {
|
|
7
7
|
"api/.redocly.lint-ignore.yaml": "bf5a8350b88a72fa43f59605ed8d903ed24b6cfccda5e45509c9f6ed9ee4e712",
|
|
@@ -9,9 +9,9 @@
|
|
|
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": "039b73ef681bc1aba9b2dd1a29ccc29e45ea5ee881ce3902797a36413e052a8a",
|
|
13
|
+
"api/v2/asyncapi.yaml": "2e509275b37a636961a2aca52d51d27b4e439cf751232783238e08a12d7f6f40",
|
|
14
|
+
"api/v2/openapi.yaml": "cdfdb3c268c9e7daddc1e8c115788b5cd2812d7e950c071822c0f85cde733022",
|
|
15
15
|
"api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
|
|
16
16
|
"schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
|
|
17
17
|
"schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
|
|
200
200
|
"spec/v1/alias-detectors.json": "fee4594ef49953953ffcd0b3813300067d16b3e65ebff2aac722034ac9b3f545",
|
|
201
201
|
"spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
|
|
202
|
-
"spec/v1/core-standard-manifest.json": "
|
|
202
|
+
"spec/v1/core-standard-manifest.json": "314be9c18684aff3c1d25f6f9633dc7185fb335f27775344f0a0aa0b23431538",
|
|
203
203
|
"spec/v1/deprecations.json": "1d5acb69a9b8ccb57275a95605f74aef1d920685f8407c9d382a46b59dc803bb",
|
|
204
204
|
"spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
|
|
205
205
|
"spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
|
|
@@ -230,8 +230,8 @@
|
|
|
230
230
|
"spec/v2/path-manifest.json": "034152e09b1458c66810d4050e20a273b2b9b8fe2d92b66e8b819477de58a1be",
|
|
231
231
|
"spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
|
|
232
232
|
"spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
|
|
233
|
-
"spec/v2/release.json": "
|
|
233
|
+
"spec/v2/release.json": "6b75f2b9d9ed2e217482d9b1be41ded1cf367abc47a1478c97770070a8764e7a",
|
|
234
234
|
"spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
|
|
235
235
|
},
|
|
236
|
-
"corpusCommit": "
|
|
236
|
+
"corpusCommit": "ec9ad85dc5eb930605e797b45072dc7707b92b72"
|
|
237
237
|
}
|
|
@@ -32,6 +32,26 @@
|
|
|
32
32
|
* re-executed. Length is therefore not the discriminator and this file does not
|
|
33
33
|
* assert on it; the event at the boundary is.
|
|
34
34
|
*
|
|
35
|
+
* Floor membership: RULED OUT (rc.65), and the reasoning generalises. Rule 10
|
|
36
|
+
* admits this file mechanically — it gates only on `replay`, which IS in the
|
|
37
|
+
* core-standard predicate, and carries no seam token. But rule 10's stated
|
|
38
|
+
* intent is that a floor file be "witnessable by an honest holder of the
|
|
39
|
+
* predicate", and this file is not: it is a SINGLE `it` gated entirely on
|
|
40
|
+
* `isFixtureAdvertised(conformance-multi-node)`, and no spec text makes that
|
|
41
|
+
* fixture mandatory. An honest `replay` holder without it records the whole
|
|
42
|
+
* file `inapplicable` and contributes zero witness. Contrast the eleven of
|
|
43
|
+
* thirteen current core-standard members with no fixture gate at all, and the
|
|
44
|
+
* two that have one (`v2-run-cancel`, `v2-run-pause-resume`) gating only SOME
|
|
45
|
+
* legs of a multi-`it` file, so the file still witnesses — the rc.59
|
|
46
|
+
* `partial-witness:` pattern.
|
|
47
|
+
*
|
|
48
|
+
* The test for any future floor candidate, then: CAN THE FILE STILL WITNESS
|
|
49
|
+
* FOR A PREDICATE HOLDER THAT ADVERTISES NO OPTIONAL FIXTURE? If the answer is
|
|
50
|
+
* no because it is single-leg and fixture-gated, it is a valid scenario and not
|
|
51
|
+
* a floor member. That is a statement about the floor's promise, not about this
|
|
52
|
+
* file's worth: the boundary it checks is real and a tier-1 host shipped the
|
|
53
|
+
* bug it catches.
|
|
54
|
+
*
|
|
35
55
|
* What this file deliberately does NOT assert: the CONTENT of the re-executed
|
|
36
56
|
* tail, determinism across two forks, timing, and effect re-fire suppression.
|
|
37
57
|
* Those are `replay.md` §Replay determinism and the seams floor's, witnessed in
|