@openwop/openwop-conformance 2.48.0 → 2.48.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/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [2.48.1] — 2026-11-14 — Fix the telemetry shape leg
2
+
3
+ - **RFC 0262.** `v2-telemetry-export` (`0262.shape`): the positive records now carry `until`, because the schema requires it while a family is `experimental`. Before this fix the leg failed on every host. Reported by openwop-app-88 and openwop-app-14.
4
+
1
5
  ## [2.48.0] — 2026-11-13 — Compensation unwind and derived adoption
2
6
 
3
7
  - **RFC 0265.** `v2-compensation-unwind`: five host legs gated on `compensation` and the `conformance-compensate-unwind` fixture (legs 3 and 5 also on `idempotency`), reading only the event log, `GET /runs/{runId}/compensation`, `GET /runs/{runId}/effects` and a replay fork. The judges live in `lib/compensation-unwind.ts`, with a self-test that includes sabotage cases.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "package": "@openwop/spec-artifacts",
3
- "version": "2.48.0",
4
- "stampSha256": "fa47d372481a121213d9193a10a64a85ae753a0ac8301d2373d061cd70e0b57d"
3
+ "version": "2.48.1",
4
+ "stampSha256": "9eb40a5b061e864a8aa69d673a47d8301458457883ff4f158e70fe8471a80611"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/openwop-conformance",
3
- "version": "2.48.0",
3
+ "version": "2.48.1",
4
4
  "description": "Black-box conformance suite for OpenWOP hosts (v2 current; v1 scenarios retained for the frozen v1 tree).",
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.48.0"
59
+ "@openwop/spec-artifacts": "2.48.1"
60
60
  }
61
61
  }
@@ -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.48.0",
5
- "corpusTag": "v2.48.0",
4
+ "version": "2.48.1",
5
+ "corpusTag": "v2.48.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": "ac6de5303872664b78ff419c035915593e01599e02835e777a0123de1baeb398",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "61037c7c1d7f9859c9f39c34d6c8e2c65865036dab2d8bd4c5d8e5ff45bbb260",
13
- "api/v2/asyncapi.yaml": "0d893e632e7dd72c11e17b38ec19907652265b88bc023a79ac4cbc3992ae8aea",
14
- "api/v2/openapi.yaml": "fb704e969745a8886682c532f7de52f6abce67fa4bf1e58ac56a36c5e1bcd935",
12
+ "api/seams-v2.yaml": "eb3f46e3dfa2474e14c5a095a35102f3347539144a6ef984e9ff8ea283a4578b",
13
+ "api/v2/asyncapi.yaml": "5bd64a201eca0b32389f1dc92c8c67e24405062dc36790488a7526453e320120",
14
+ "api/v2/openapi.yaml": "3c8c2e0f993fd52f57112a4b0715c70ae03dc333c0aa450ef0a707667b50fed6",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "276fc1d51eb08e14e9127b9fd27761d7046ee33c12000f3a64a801322db8bf58",
17
17
  "schemas/a2a-task-state.schema.json": "75d5049dea8bd873ff0e7546f1c60c8d36c219bec7084264360be54a8be30ae1",
@@ -203,7 +203,7 @@
203
203
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
204
204
  "spec/v1/alias-detectors.json": "202a443678e592a515e33aad7f6ab679a07d8408809f2d4b0f59d156c84ffc65",
205
205
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
206
- "spec/v1/core-standard-manifest.json": "b7c589705ad3361c40620c3b796d8a4fe4e45a25776e736b046c33029a9dd55b",
206
+ "spec/v1/core-standard-manifest.json": "66d5e491537cfa04ebbe57bd26ad53c027c24e105e8b19e2426b1ed17aaa3b24",
207
207
  "spec/v1/deprecations.json": "901fdab0a7212627f1838cbb06ae7b7204f0dff528299e56d3d938deecea27c1",
208
208
  "spec/v1/deprecations.schema.json": "3e393c405d2a41b467d8c5e3c468549078df1ce6a6d2588fc488097b95d9b55b",
209
209
  "spec/v1/end-of-support.json": "35f0bf3b70fe78b16e2a2fd81a153fc27e703f6c16376c6fe7cdf1f4f2c4e6d4",
@@ -309,9 +309,9 @@
309
309
  "spec/v2/path-manifest.json": "3720e502614f301efc7556e0bfcbfa7b7ad8a37c579256ba6bca82417a2728f1",
310
310
  "spec/v2/peer-dependency-aliases.json": "cbf62f551f9295b0ac7ba6cc0466abb153563354a57b0622f3ec6e6689cba47e",
311
311
  "spec/v2/profiles.json": "b382b261c7844798575f7c1b37c934f0da19846016a2337d883d4f5ef6e05479",
312
- "spec/v2/release.json": "8dfa992e0c12d7efda3d0e1c6a63f66790c7c1b29fbe6bb5ae81ba7321f98c39",
312
+ "spec/v2/release.json": "ca7dd7966a78c3feaff0becfe722bc64bf328d4ca18bcd2dd23edf69ed634358",
313
313
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624",
314
- "spec/v2/surface-baseline.json": "f1638b1acc7f7408f208c3ada6bd982ed61f9825a6e0e515fba9873808b48192"
314
+ "spec/v2/surface-baseline.json": "6dbb04ff500ca21eb6fa8e430851ddd8f0365d03feb8275ff27d46f6e3dbf879"
315
315
  },
316
- "corpusCommit": "37c05c6cdf6b15dded360ad23455e066e2fc2b99"
316
+ "corpusCommit": "d72335c7cb5656085cce8b879d196689c15809ba"
317
317
  }
@@ -101,7 +101,7 @@ function spanSurfaces(spans: readonly CapturedSpan[]): Surface[] {
101
101
  describe('v2 RFC 0262 — telemetry facet shape (server-free)', () => {
102
102
  it('the telemetry record requires otlp.protocols from the closed transports; genAiSemconv is semver', () => {
103
103
  const v = v2RefValidator('capabilities.schema.json#/properties/telemetry');
104
- const base = { status: 'experimental', since: '2.0', witness: 'witnessable-gated' };
104
+ const base = { status: 'experimental', since: '2.0', until: '2.1', witness: 'witnessable-gated' }; // capabilities.md: `until` is REQUIRED while experimental
105
105
  expect(v({ ...base, otlp: { protocols: ['http/protobuf'] } }).ok, req(R('shape'), DOC, 'a record with otlp.protocols MUST validate')).toBe(true);
106
106
  expect(v({ ...base, otlp: { protocols: ['grpc', 'http/json'] }, genAiSemconv: '1.37.0' }).ok, req(R('shape'), DOC, 'genAiSemconv as semver MUST validate')).toBe(true);
107
107
  expect(v({ ...base }).ok, req(R('shape'), DOC, 'otlp is REQUIRED')).toBe(false);