@openwop/openwop-conformance 2.9.1 → 2.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # `@openwop/openwop-conformance` Changelog
2
2
 
3
+ ## [2.9.2] — 2026-09-18 — mcp-2026-07-28-discover matches its own fake server
4
+
5
+ **Why a patch.** One assertion in `mcp-2026-07-28-discover.test.ts` listed two
6
+ tools where `McpFakeServer` has served three since 2.4.0. No host-visible
7
+ contract changes; the scenario now passes unquarantined (9/9 executed-pass).
8
+
3
9
  ## [2.9.1] — 2026-09-18 — RFC 0189 gap register
4
10
 
5
11
  **Why a patch.** No conformance code changes; `spec/v1/gaps.json` is a published
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  # --legacy-peer-deps is REQUIRED, not optional: the exact peer pin is what npm's
12
12
  # default resolver refuses. npm 10.9 fails outright with
13
13
  # "Cannot read properties of null (reading 'edgesOut')" — use npm >= 11.
14
- npm install --legacy-peer-deps @openwop/openwop-conformance@2.9.1 @openwop/spec-artifacts@2.9.1
14
+ npm install --legacy-peer-deps @openwop/openwop-conformance@2.9.2 @openwop/spec-artifacts@2.9.2
15
15
  # or run without install:
16
16
  npx @openwop/openwop-conformance --base-url https://api.example.com --api-key hk_test_...
17
17
  ```
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "package": "@openwop/spec-artifacts",
3
- "version": "2.9.1",
4
- "stampSha256": "9bc1739c9bbe88aad807efecd636b319dcbafecc53205d8cc1ef3facec639202"
3
+ "version": "2.9.2",
4
+ "stampSha256": "cf1ba074ea6c59b46d445d5aaad996344932a750fa17ba54453d05d0ae9b9733"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/openwop-conformance",
3
- "version": "2.9.1",
3
+ "version": "2.9.2",
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.9.1"
59
+ "@openwop/spec-artifacts": "2.9.2"
60
60
  }
61
61
  }
package/requirements.json CHANGED
@@ -15622,7 +15622,7 @@
15622
15622
  {
15623
15623
  "id": "openwop.it.mcp-2026-07-28-discover.mrtr-needs-input-answers-input-required-elicitation-opaque-requeststate-and-comp",
15624
15624
  "file": "mcp-2026-07-28-discover.test.ts",
15625
- "line": 125,
15625
+ "line": 130,
15626
15626
  "title": "MRTR: needs_input answers input_required (elicitation + opaque requestState) and completes on the retry; missing capability ⇒ -32021",
15627
15627
  "explicitId": "openwop.it.mcp-2026-07-28-discover.mrtr-needs-input-answers-input-required-elicitation-opaque-requeststate-and-comp",
15628
15628
  "citations": [
@@ -15635,7 +15635,7 @@
15635
15635
  {
15636
15636
  "id": "openwop.it.mcp-2026-07-28-discover.server-discover-reports-supportedversions-equal-to-capabilities-mcp-protocolvers",
15637
15637
  "file": "mcp-2026-07-28-discover.test.ts",
15638
- "line": 181,
15638
+ "line": 186,
15639
15639
  "title": "server/discover reports supportedVersions equal to capabilities.mcp.protocolVersions, with resultType + cache hints",
15640
15640
  "explicitId": "openwop.it.mcp-2026-07-28-discover.server-discover-reports-supportedversions-equal-to-capabilities-mcp-protocolvers",
15641
15641
  "citations": [
@@ -15656,7 +15656,7 @@
15656
15656
  {
15657
15657
  "id": "openwop.it.mcp-2026-07-28-discover.a-header-body-revision-mismatch-is-refused-400-32020-an-unsupported-revision-400",
15658
15658
  "file": "mcp-2026-07-28-discover.test.ts",
15659
- "line": 193,
15659
+ "line": 198,
15660
15660
  "title": "a header/body revision mismatch is refused 400 + -32020; an unsupported revision 400 + -32022",
15661
15661
  "explicitId": "openwop.it.mcp-2026-07-28-discover.a-header-body-revision-mismatch-is-refused-400-32020-an-unsupported-revision-400",
15662
15662
  "citations": [
@@ -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.9.1",
5
- "corpusTag": "v2.9.1",
4
+ "version": "2.9.2",
5
+ "corpusTag": "v2.9.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": "39081c59fb696159806b0f2f9a42e7e9ff830d622fcf2ad4159b21357580a955",
11
11
  "api/redocly.yaml": "b0604c89b2ca6d5076ec25725c539dad44a741a811fe524439ee6daef8baa09f",
12
- "api/seams-v2.yaml": "2714a7e827e4c1dae106bee03662f4ba4707ca87f8846816c878a7a267e8fa35",
13
- "api/v2/asyncapi.yaml": "17f9f44ca444434cab2fe273f3f23009ce9f480d0a803d234a6cbed0adaf5e05",
14
- "api/v2/openapi.yaml": "d0d9fc04d38c8df99ed7d60a4760a5e9eab0926054ea8874a4745fe086b801ef",
12
+ "api/seams-v2.yaml": "5368b80007ca3247752b493501d5d63cff866081832125bffcb893806e67ea32",
13
+ "api/v2/asyncapi.yaml": "95acc8ea7834002397c7b3bfff3e606208701c8cdee6845692a3ae81516a7748",
14
+ "api/v2/openapi.yaml": "75e944c763849f16da03710b75be56843d10904ff01343ab328ecfb222916e0e",
15
15
  "api/v2/redocly.yaml": "1e66b60e6118ad11a823bb620678be464d99dfe50a40e3e6f93ec9429b88b34c",
16
16
  "schemas/README.md": "0c0b737ffcf8f30e7d2809cec8a498232de710f41443212922ad8337cdde0b51",
17
17
  "schemas/a2a-task-state.schema.json": "c9365918f993f943b4b619d42551eb066a1ed33a08d895d51b395432a5b1f1bc",
@@ -201,7 +201,7 @@
201
201
  "schemas/workspace-file.schema.json": "464de85c2a068243084ee9c1d969bc7cd5d8f7948574e58450d6493c38a0e1e4",
202
202
  "spec/v1/alias-detectors.json": "e90916db12d2297e2e560b2d54d2c4702d6cb3bef7179a575844687a7ec17262",
203
203
  "spec/v1/capability-declaration-classes.json": "e7729aed5c4b4e1dd02abab0530f14cc95f5d4070fe51fb139e7f5cccefa00c6",
204
- "spec/v1/core-standard-manifest.json": "86e60c2f39387e12cd85021ec8a90ac052eb5f271a1e080beaa1c61f1193dfe0",
204
+ "spec/v1/core-standard-manifest.json": "96cc4fce756f1619a6c86aa675806067f0054eb92ec8b33510bdae7ceb412f58",
205
205
  "spec/v1/deprecations.json": "c81c8f71460936c8d489d8270477c7661cf4a5d7b7bad86c98899750b5656027",
206
206
  "spec/v1/deprecations.schema.json": "18c87e78bedc210431f795ae44c5b5d202f2f3317850d5cf86867d4f1fa1cdfb",
207
207
  "spec/v1/event-codemap.json": "3da60d884157793a360da532a9fcbbfb5285636db325a74cec94b34622186d97",
@@ -273,8 +273,8 @@
273
273
  "spec/v2/path-manifest.json": "c123c9fd77dc1b3f9c2e9346ace80cdae007e6511138894956abda01e61ec1c6",
274
274
  "spec/v2/peer-dependency-aliases.json": "d10299280abee08258502925bc327293ee413e0108cd6e6ec75ff6110653308d",
275
275
  "spec/v2/profiles.json": "0636f19fceae625390003a347e70ef4797d84766b5c24ce8a02cea52aadebca4",
276
- "spec/v2/release.json": "68384ffc6c06f2fe42ad85d553dc4da6bfa14160074c7746ee23d95bfbe654bb",
276
+ "spec/v2/release.json": "f928b02fe8150902b4148f9c2f460380189656d937f8d61128dc8adcc6d40362",
277
277
  "spec/v2/retention-floors.json": "eaf3722d95c79947af1d4269ef85117e126518c588cfcf1a2b21b97269f51624"
278
278
  },
279
- "corpusCommit": "ab69b3aec36effd4597c0f9091acf88fa0f70c25"
279
+ "corpusCommit": "f68c0cbf6c0cbb7892d25ba8ab75efdaf2417999"
280
280
  }
@@ -116,7 +116,12 @@ describe('RFC 0153 §B — the suite MCP server speaks 2026-07-28 (dual-era McpF
116
116
  expect(typeof r.result?.['ttlMs']).toBe('number');
117
117
  expect(r.result?.['cacheScope']).toBe('public');
118
118
  const names = (r.result?.['tools'] as Array<{ name: string }>).map((t) => t.name);
119
- expect(names).toEqual(['echo', 'needs_input']);
119
+ // `needs_input_loop` is the MRTR tool this `it` is named for — it was added to the
120
+ // fake server in 2.4.0 so the mrtr-rounds-ceiling leg could reach a ceiling >= 1,
121
+ // and this assertion was never moved with it. A host that proxies the fake server
122
+ // faithfully returns all three, so the leg red on every certify run while the
123
+ // corpus gate quarantined it locally.
124
+ expect(names).toEqual(['echo', 'needs_input', 'needs_input_loop']);
120
125
  // legacy list does NOT carry the current-revision fields
121
126
  const legacy = await call(server.endpoint(), 'tools/list', {});
122
127
  expect(legacy.result?.['ttlMs']).toBeUndefined();