@openwop/openwop-conformance 2.0.0-rc.38 → 2.0.0-rc.6

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/README.md CHANGED
@@ -112,7 +112,7 @@ Exit code is non-zero on any failed assertion. `--certify` distinguishes: `0`
112
112
 
113
113
  ## What's Covered
114
114
 
115
- The current suite has 502 scenario files under `src/scenarios/`.
115
+ The current suite has 497 scenario files under `src/scenarios/`.
116
116
  - 2026-09-03 (suite `1.157.0 -> 1.158.0`, gap G17): NEW `idempotency-concurrent-claim.test.ts` — drives the new `host-sample-test-seams.md` §25 concurrent duplicate-delivery seam for the RFC 0150 §B / `idempotency.md` §"Concurrent duplicates (Layer 2)" atomic-claim MUST, which is unconditional and had no witness of any kind. Asserts every executor mints the SAME `logicalInvocationId` **before** asserting `delivered === 1` — without the identity check a host passes by minting different ids and never colliding, one effect because nothing raced. Not profile-gated and so not opt-out-able (the obligation is unconditional); an unmounted seam records `blocked`, which is not certifiable. Graduates `layer2-invocation-claim-atomic` reference-impl -> protocol.
117
117
  - 2026-08-19 (suite `1.137.0 → 1.138.0`): NEW `durability-poison-exhaustion.test.ts` — RFC 0158 §C.8, the FIRST row of that RFC's conformance table to land. Asserts what `failure-path.test.ts` cannot: not just that deterministically failing work reaches terminal, but that attempts STOP — counted on the log, re-counted after a scaled quiet window, asserted unchanged. A host still redelivering records more. Seam-gated on the existing event-log seam (`blocked` = unobservable, not unmet) and outside every profile floor.
118
118
  - 2026-08-19 (suite `1.136.15 → 1.137.0`): NEW `replay-fanout-suppression.test.ts` — capability-gated on `webhooks.supported`, **outside every profile floor**; witnesses `replay.md` §"Host-initiated fan-out is an external effect", which was the largest normative MUST NOT on the replay surface with no scenario and no SECURITY invariant. Three legs in ONE `it` against ONE receiver and ONE subscription — a positive control, the MUST NOT, and a `branch` boundary leg — because "no delivery arrived" passes identically when delivery never worked, so absence is asserted only after presence is proven on that exact wiring. A host with an SSRF guard correctly refuses the loopback receiver and records `blocked`: **unobservable, not unmet.**
@@ -457,7 +457,7 @@ Server-required (added in 1.7.0):
457
457
  | ------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
458
458
  | **Redaction** | [`capabilities.md`](../spec/v1/capabilities.md) §"Secrets" + NFR-7 + §"aiProviders" | Vendor-neutral assertions that the server doesn't leak secret material. Three scenario groups: (a) discovery shape contract — `secrets` + `aiProviders` advertisements are well-formed regardless of `secrets.supported`; when `supported === true`, scopes MUST be non-empty + `resolution === 'host-managed'`; `byok ⊆ supported`. (b) bearer-token redaction — invalid Bearer canary in `Authorization` header is not echoed in the 401 response body. (c) credentialRef echo control — gated on `secrets.supported === true`; canary planted in `configurable.ai.credentialRef` MUST NOT appear in any RunEvent payload (poll-based capture; transport-agnostic). Uses runtime-built canary fixtures (`lib/canaries.ts`) that defeat static secret scanners. 6 scenarios. |
459
459
 
460
- Current source tree: 502 scenario files. Use [`coverage.md`](./coverage.md) for current grade/gap tracking.
460
+ Current source tree: 497 scenario files. Use [`coverage.md`](./coverage.md) for current grade/gap tracking.
461
461
 
462
462
  ## Remaining Gaps
463
463
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "package": "@openwop/spec-artifacts",
3
- "version": "2.0.0-rc.38",
4
- "stampSha256": "3fe6266c2542cbeb718b22938297cba87b0deb4567b213dbef983a51d2b35155"
3
+ "version": "2.0.0-rc.6",
4
+ "stampSha256": "f9288182aafe29cd0a2aed7cf6ec0a48a8ad2744779db641a053351479148211"
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openwop/openwop-conformance",
3
- "version": "2.0.0-rc.38",
3
+ "version": "2.0.0-rc.6",
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.38"
59
+ "@openwop/spec-artifacts": "2.0.0-rc.6"
60
60
  }
61
61
  }
package/requirements.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "$comment": "GENERATED by conformance/scripts/generate-requirement-registry.mjs — do not edit. One record per it()/test() in src/scenarios. Ids: openwop.it.<file-stem>.<title-slug>[~n] (src/lib/requirement-ids.ts). A record with id null has an interpolated title; its run-time row is keyed by the rendered title and maps here by file+line only. Renamed ids need a row in requirement-aliases.json.",
3
3
  "generatedFrom": "src/scenarios/*.test.ts",
4
4
  "counts": {
5
- "files": 549,
6
- "tests": 2125,
7
- "withStableId": 2125,
5
+ "files": 542,
6
+ "tests": 2113,
7
+ "withStableId": 2113,
8
8
  "interpolatedTitles": 0,
9
9
  "explicitIds": 2057
10
10
  },
@@ -12262,58 +12262,6 @@
12262
12262
  }
12263
12263
  ]
12264
12264
  },
12265
- {
12266
- "id": "openwop.it.era-key-stamped-v1.a-run-the-host-just-created-carries-eventlogschemaversion",
12267
- "file": "era-key-stamped-v1.test.ts",
12268
- "line": 75,
12269
- "title": "a run the host just created carries eventLogSchemaVersion",
12270
- "explicitId": null,
12271
- "citations": [
12272
- {
12273
- "section": null,
12274
- "requirement": "every persisted run document MUST carry an eventLogSchemaVersion — the field is prose-only (run-snapshot.schema.json requires just runId, workflowId and status), so a snapshot without it validates cleanly and only this check can see its absence",
12275
- "interpolated": true
12276
- },
12277
- {
12278
- "section": null,
12279
- "requirement": null,
12280
- "interpolated": true
12281
- }
12282
- ]
12283
- },
12284
- {
12285
- "id": "openwop.it.era-key-stamped-v1.a-freshly-created-run-is-not-classified-legacy-by-the-host-s-own-rule",
12286
- "file": "era-key-stamped-v1.test.ts",
12287
- "line": 98,
12288
- "title": "a freshly created run is not classified legacy by the host's own rule",
12289
- "explicitId": null,
12290
- "citations": [
12291
- {
12292
- "section": "spec/v1/version-negotiation.md §Legacy detection",
12293
- "requirement": null,
12294
- "interpolated": true
12295
- }
12296
- ]
12297
- },
12298
- {
12299
- "id": "openwop.it.era-key-stamped-v1.a-run-the-host-just-created-carries-engineversion-the-legacy-escape-cannot-reach",
12300
- "file": "era-key-stamped-v1.test.ts",
12301
- "line": 124,
12302
- "title": "a run the host just created carries engineVersion — the legacy escape cannot reach it",
12303
- "explicitId": null,
12304
- "citations": [
12305
- {
12306
- "section": null,
12307
- "requirement": "every persisted run document MUST carry engineVersion; the \"MAY omit\" escape applies only to legacy runs that predate the contract, and this run was created moments ago",
12308
- "interpolated": true
12309
- },
12310
- {
12311
- "section": null,
12312
- "requirement": null,
12313
- "interpolated": true
12314
- }
12315
- ]
12316
- },
12317
12265
  {
12318
12266
  "id": "openwop.it.errors.get-v1-runs-nonexistentid-returns-canonical-envelope",
12319
12267
  "file": "errors.test.ts",
@@ -25794,10 +25742,10 @@
25794
25742
  ]
25795
25743
  },
25796
25744
  {
25797
- "id": "openwop.it.v2-advertised-fixtures-exist.a-sampled-advertised-fixture-is-actually-creatable-not-just-listed",
25745
+ "id": "openwop.it.v2-advertised-fixtures-exist.every-advertised-fixture-id-is-one-the-corpus-defines",
25798
25746
  "file": "v2-advertised-fixtures-exist.test.ts",
25799
- "line": 62,
25800
- "title": "a sampled advertised fixture is actually creatable, not just listed",
25747
+ "line": 60,
25748
+ "title": "every advertised fixture id is one the corpus defines",
25801
25749
  "explicitId": null,
25802
25750
  "citations": [
25803
25751
  {
@@ -25808,21 +25756,16 @@
25808
25756
  ]
25809
25757
  },
25810
25758
  {
25811
- "id": "openwop.it.v2-advertised-path-space-served.a-host-advertising-major-2-reaches-the-surfaces-it-already-serves-under-v1",
25812
- "file": "v2-advertised-path-space-served.test.ts",
25813
- "line": 87,
25814
- "title": "a host advertising major 2 reaches the surfaces it already serves under /v1",
25759
+ "id": "openwop.it.v2-advertised-fixtures-exist.a-sampled-advertised-fixture-is-actually-creatable-not-just-listed",
25760
+ "file": "v2-advertised-fixtures-exist.test.ts",
25761
+ "line": 80,
25762
+ "title": "a sampled advertised fixture is actually creatable, not just listed",
25815
25763
  "explicitId": null,
25816
25764
  "citations": [
25817
25765
  {
25818
25766
  "section": null,
25819
25767
  "requirement": null,
25820
25768
  "interpolated": true
25821
- },
25822
- {
25823
- "section": null,
25824
- "requirement": "at least one non-well-known surface MUST be reachable under major 2, or the advertisement rests entirely on the one resource the header selects",
25825
- "interpolated": true
25826
25769
  }
25827
25770
  ]
25828
25771
  },
@@ -26328,8 +26271,7 @@
26328
26271
  },
26329
26272
  {
26330
26273
  "section": "spec/v2/core/versioning.md §5",
26331
- "requirement": null,
26332
- "interpolated": true
26274
+ "requirement": "the v2 read MUST name the same run"
26333
26275
  },
26334
26276
  {
26335
26277
  "section": "spec/v2/core/versioning.md §1.4",
@@ -26340,7 +26282,7 @@
26340
26282
  {
26341
26283
  "id": "openwop.it.v2-dual-stack-negotiation.an-unlisted-major-is-406-protocol-version-unsupported-with-details-protocolversi",
26342
26284
  "file": "v2-dual-stack-negotiation.test.ts",
26343
- "line": 111,
26285
+ "line": 83,
26344
26286
  "title": "an unlisted major is 406 protocol_version_unsupported with details.protocolVersions[]",
26345
26287
  "explicitId": "openwop.requirement.0172.dual-stack-negotiation.unlisted-major",
26346
26288
  "citations": [
@@ -26364,7 +26306,7 @@
26364
26306
  {
26365
26307
  "id": "openwop.it.v2-dual-stack-negotiation.openwop-version-2-0-on-a-v1-path-is-400-protocol-version-mismatch",
26366
26308
  "file": "v2-dual-stack-negotiation.test.ts",
26367
- "line": 122,
26309
+ "line": 94,
26368
26310
  "title": "OpenWOP-Version: 2.0 on a /v1/ path is 400 protocol_version_mismatch",
26369
26311
  "explicitId": "openwop.requirement.0172.dual-stack-negotiation.v1-path-mismatch",
26370
26312
  "citations": [
@@ -26383,7 +26325,7 @@
26383
26325
  {
26384
26326
  "id": "openwop.it.v2-dual-stack-negotiation.every-response-reports-the-contract-that-produced-it",
26385
26327
  "file": "v2-dual-stack-negotiation.test.ts",
26386
- "line": 131,
26328
+ "line": 103,
26387
26329
  "title": "every response reports the contract that produced it",
26388
26330
  "explicitId": "openwop.requirement.0172.dual-stack-negotiation.response-header",
26389
26331
  "citations": [
@@ -26619,7 +26561,7 @@
26619
26561
  {
26620
26562
  "id": "openwop.it.v2-era-2-append-vocabulary.the-run-keeps-the-era-it-was-created-with-an-append-does-not-promote-it-to-era-3",
26621
26563
  "file": "v2-era-2-append-vocabulary.test.ts",
26622
- "line": 128,
26564
+ "line": 119,
26623
26565
  "title": "the run keeps the era it was created with; an append does not promote it to era 3",
26624
26566
  "explicitId": null,
26625
26567
  "citations": [
@@ -28014,59 +27956,6 @@
28014
27956
  }
28015
27957
  ]
28016
27958
  },
28017
- {
28018
- "id": "openwop.it.v2-run-completed-outputs.the-run-completed-event-of-a-run-that-completed-carries-an-outputs-object",
28019
- "file": "v2-run-completed-outputs.test.ts",
28020
- "line": 72,
28021
- "title": "the run.completed event of a run that completed carries an outputs object",
28022
- "explicitId": null,
28023
- "citations": [
28024
- {
28025
- "section": null,
28026
- "requirement": "run.completed MUST carry a payload object",
28027
- "interpolated": true
28028
- },
28029
- {
28030
- "section": null,
28031
- "requirement": null,
28032
- "interpolated": true
28033
- },
28034
- {
28035
- "section": null,
28036
- "requirement": null,
28037
- "interpolated": true
28038
- }
28039
- ]
28040
- },
28041
- {
28042
- "id": "openwop.it.v2-stream-sse-projection.every-data-frame-on-the-major-2-stream-carries-the-tenant-bound-runid-of-the-run",
28043
- "file": "v2-stream-sse-projection.test.ts",
28044
- "line": 52,
28045
- "title": "every data: frame on the major-2 stream carries the tenant-bound runId of the run it belongs to",
28046
- "explicitId": null,
28047
- "citations": [
28048
- {
28049
- "section": "spec/v2/core/identity.md §5",
28050
- "requirement": null,
28051
- "interpolated": true
28052
- },
28053
- {
28054
- "section": null,
28055
- "requirement": null,
28056
- "interpolated": true
28057
- },
28058
- {
28059
- "section": null,
28060
- "requirement": null,
28061
- "interpolated": true
28062
- },
28063
- {
28064
- "section": null,
28065
- "requirement": null,
28066
- "interpolated": true
28067
- }
28068
- ]
28069
- },
28070
27959
  {
28071
27960
  "id": "openwop.it.v2-subject-link-record.the-link-formed-across-scim-and-saml-is-a-closed-subjectlink-record",
28072
27961
  "file": "v2-subject-link-record.test.ts",
@@ -28235,49 +28124,6 @@
28235
28124
  }
28236
28125
  ]
28237
28126
  },
28238
- {
28239
- "id": "openwop.it.v2-version-header-honored.openwop-version-is-honored-or-refused-never-ignored",
28240
- "file": "v2-version-header-honored.test.ts",
28241
- "line": 61,
28242
- "title": "OpenWOP-Version is honored or refused — never ignored",
28243
- "explicitId": null,
28244
- "citations": [
28245
- {
28246
- "section": null,
28247
- "requirement": "a host that does not serve major 2 MUST refuse with 406 protocol_version_unsupported, which it did",
28248
- "interpolated": true
28249
- },
28250
- {
28251
- "section": null,
28252
- "requirement": "answering 200 to OpenWOP-Version: 2.0 with a body byte-identical to the header-less fetch means the header was IGNORED, not honored — the host served v1 and called it v2. Refusing with 406 is the correct answer for a host that does not implement major 2; silently returning v1 is the one answer that no presence-gated scenario can detect, because an absent v2 shape records `inapplicable` whether the host refused or ignored",
28253
- "interpolated": true
28254
- }
28255
- ]
28256
- },
28257
- {
28258
- "id": "openwop.it.v2-version-header-honored.a-host-advertising-two-majors-serves-two-different-representations",
28259
- "file": "v2-version-header-honored.test.ts",
28260
- "line": 92,
28261
- "title": "a host advertising two majors serves two different representations",
28262
- "explicitId": null,
28263
- "citations": [
28264
- {
28265
- "section": null,
28266
- "requirement": null,
28267
- "interpolated": true
28268
- },
28269
- {
28270
- "section": null,
28271
- "requirement": "the v1 document and the closed v2 root differ by construction (capabilities.md §1), so a host advertising both majors returning identical bytes for both has advertised a major it does not actually serve",
28272
- "interpolated": true
28273
- },
28274
- {
28275
- "section": null,
28276
- "requirement": null,
28277
- "interpolated": true
28278
- }
28279
- ]
28280
- },
28281
28127
  {
28282
28128
  "id": "openwop.it.v2-webhook-durable-delivery.a-failed-attempt-is-retried-and-the-event-is-delivered-at-least-once",
28283
28129
  "file": "v2-webhook-durable-delivery.test.ts",
@@ -28531,7 +28377,7 @@
28531
28377
  {
28532
28378
  "id": "openwop.it.version-negotiation.get-well-known-openwop-returns-capabilities-with-protocolversion-string",
28533
28379
  "file": "version-negotiation.test.ts",
28534
- "line": 68,
28380
+ "line": 46,
28535
28381
  "title": "GET /.well-known/openwop returns Capabilities with protocolVersion (string)",
28536
28382
  "explicitId": "openwop.it.version-negotiation.get-well-known-openwop-returns-capabilities-with-protocolversion-string",
28537
28383
  "citations": [
@@ -28544,7 +28390,7 @@
28544
28390
  {
28545
28391
  "id": "openwop.it.version-negotiation.every-event-has-the-6-required-runeventdoc-fields-per-run-event-schema-json",
28546
28392
  "file": "version-negotiation.test.ts",
28547
- "line": 82,
28393
+ "line": 60,
28548
28394
  "title": "every event has the 6 required RunEventDoc fields per run-event.schema.json",
28549
28395
  "explicitId": "openwop.it.version-negotiation.every-event-has-the-6-required-runeventdoc-fields-per-run-event-schema-json",
28550
28396
  "citations": [
@@ -28585,7 +28431,7 @@
28585
28431
  {
28586
28432
  "id": "openwop.it.version-negotiation.event-sequences-within-a-run-are-strictly-monotonic",
28587
28433
  "file": "version-negotiation.test.ts",
28588
- "line": 126,
28434
+ "line": 104,
28589
28435
  "title": "event sequences within a run are strictly monotonic",
28590
28436
  "explicitId": "openwop.it.version-negotiation.event-sequences-within-a-run-are-strictly-monotonic",
28591
28437
  "citations": [
@@ -28599,7 +28445,7 @@
28599
28445
  {
28600
28446
  "id": "openwop.it.version-negotiation.events-poll-with-lastsequence-past-current-end-returns-empty-events-iscomplete",
28601
28447
  "file": "version-negotiation.test.ts",
28602
- "line": 154,
28448
+ "line": 132,
28603
28449
  "title": "events/poll with lastSequence past current end returns empty events + isComplete",
28604
28450
  "explicitId": "openwop.it.version-negotiation.events-poll-with-lastsequence-past-current-end-returns-empty-events-iscomplete",
28605
28451
  "citations": [
@@ -34646,82 +34492,6 @@
34646
34492
  }
34647
34493
  ]
34648
34494
  },
34649
- {
34650
- "id": "openwop.it.v2-bundle-signature-attributable.the-v2-discovery-root-publishes-signingkeys-the-surface-the-rfc-named",
34651
- "file": "v2-bundle-signature-attributable.test.ts",
34652
- "line": 103,
34653
- "title": "the v2 discovery root publishes signingKeys[] — the surface the RFC named",
34654
- "explicitId": null,
34655
- "citations": [
34656
- {
34657
- "section": null,
34658
- "requirement": "the v2 discovery root MUST carry signingKeys[] — RFC 0168 disposed of \"an Ed25519 attestation without a key registry is a signature nobody can check\" by naming this surface, so if it is absent the disposition names a place that does not exist and every bundle signature is unattributable",
34659
- "interpolated": true
34660
- },
34661
- {
34662
- "section": null,
34663
- "requirement": null,
34664
- "interpolated": true
34665
- },
34666
- {
34667
- "section": null,
34668
- "requirement": "a signingKeys[] entry MUST be closed; an open key record lets a host attach meaning the verifier does not read",
34669
- "interpolated": true
34670
- },
34671
- {
34672
- "section": null,
34673
- "requirement": "a signingKeys[] entry MUST be able to record retirement, because a retired key has to stay listed — dropping it silently invalidates every bundle it already signed, which is the opposite of what an evidence trail is for",
34674
- "interpolated": true
34675
- }
34676
- ]
34677
- },
34678
- {
34679
- "id": "openwop.it.v2-bundle-signature-attributable.the-front-door-gate-verifies-the-attestation-instead-of-inspecting-the-string",
34680
- "file": "v2-bundle-signature-attributable.test.ts",
34681
- "line": 134,
34682
- "title": "the Front-door gate verifies the attestation instead of inspecting the string",
34683
- "explicitId": null,
34684
- "citations": [
34685
- {
34686
- "section": null,
34687
- "requirement": "the gate MUST NOT accept a bundle signature by presence: `typeof signature.sig === 'string'` is satisfied by any string, so it cannot distinguish a host key from a keypair minted seconds earlier by whoever wrote the bundle",
34688
- "interpolated": true
34689
- },
34690
- {
34691
- "section": null,
34692
- "requirement": "the gate MUST resolve signature.keyId against the host's published signingKeys[] and verify the Ed25519 attestation under it — resolving without verifying, or verifying against a key the bundle supplied itself, both leave the signature unaccountable",
34693
- "interpolated": true
34694
- }
34695
- ]
34696
- },
34697
- {
34698
- "id": "openwop.it.v2-bundle-signature-attributable.the-four-signature-outcomes-stay-distinct-collapsing-any-two-restores-the-defect",
34699
- "file": "v2-bundle-signature-attributable.test.ts",
34700
- "line": 149,
34701
- "title": "the four signature outcomes stay distinct — collapsing any two restores the defect",
34702
- "explicitId": null,
34703
- "citations": [
34704
- {
34705
- "section": null,
34706
- "requirement": null,
34707
- "interpolated": true
34708
- }
34709
- ]
34710
- },
34711
- {
34712
- "id": "openwop.it.v2-bundle-signature-attributable.signingkeys-is-reachable-from-a-v1-root-too-a-bundle-is-v3-regardless-of-major",
34713
- "file": "v2-bundle-signature-attributable.test.ts",
34714
- "line": 170,
34715
- "title": "signingKeys[] is reachable from a v1 root too — a bundle is v3 regardless of major",
34716
- "explicitId": null,
34717
- "citations": [
34718
- {
34719
- "section": null,
34720
- "requirement": "the v1 discovery root MUST also carry signingKeys[]: a certification bundle is v3 regardless of major, and a v1-only host has only this document to resolve signature.keyId against — putting the key on the v2 root alone leaves every v1 host bundle unattributable",
34721
- "interpolated": true
34722
- }
34723
- ]
34724
- },
34725
34495
  {
34726
34496
  "id": "openwop.it.v2-corpus-tag-pinned.every-vendoring-consumer-in-the-cross-repo-inventory-records-a-published-corpus",
34727
34497
  "file": "v2-corpus-tag-pinned.test.ts",
@@ -34853,20 +34623,6 @@
34853
34623
  }
34854
34624
  ]
34855
34625
  },
34856
- {
34857
- "id": "openwop.it.v2-id-kinds-bound.every-v2-id-field-refs-its-kind-and-every-id-property-is-triaged",
34858
- "file": "v2-id-kinds-bound.test.ts",
34859
- "line": 57,
34860
- "title": "every v2 id field $refs its kind, and every *Id property is triaged",
34861
- "explicitId": null,
34862
- "citations": [
34863
- {
34864
- "section": "spec/v2/core/identity.md §5",
34865
- "requirement": null,
34866
- "interpolated": true
34867
- }
34868
- ]
34869
- },
34870
34626
  {
34871
34627
  "id": "openwop.it.v2-one-signing-scheme.registry-version-manifest-signing-has-exactly-one-scheme-ed25519-canonical-json",
34872
34628
  "file": "v2-one-signing-scheme.test.ts",
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "$comment": "GENERATED by conformance/scripts/generate-scenario-majors.mjs (RFC 0168 §D.3). Do not edit; add a file to BOTH_MAJORS in the generator to target both majors.",
3
3
  "counts": {
4
- "files": 502,
5
- "v1": 445,
6
- "v2": 58
4
+ "files": 497,
5
+ "v1": 444,
6
+ "v2": 54
7
7
  },
8
8
  "majors": {
9
9
  "a2a-1-0-agent-card.test.ts": [
@@ -564,9 +564,6 @@
564
564
  "envelope-variant-discriminator-static.test.ts": [
565
565
  1
566
566
  ],
567
- "era-key-stamped-v1.test.ts": [
568
- 1
569
- ],
570
567
  "errors.test.ts": [
571
568
  1
572
569
  ],
@@ -1234,9 +1231,6 @@
1234
1231
  "v2-advertised-fixtures-exist.test.ts": [
1235
1232
  2
1236
1233
  ],
1237
- "v2-advertised-path-space-served.test.ts": [
1238
- 2
1239
- ],
1240
1234
  "v2-approver-enforced.test.ts": [
1241
1235
  2
1242
1236
  ],
@@ -1375,12 +1369,6 @@
1375
1369
  "v2-revocation-honored.test.ts": [
1376
1370
  2
1377
1371
  ],
1378
- "v2-run-completed-outputs.test.ts": [
1379
- 2
1380
- ],
1381
- "v2-stream-sse-projection.test.ts": [
1382
- 2
1383
- ],
1384
1372
  "v2-subject-link-record.test.ts": [
1385
1373
  2
1386
1374
  ],
@@ -1393,9 +1381,6 @@
1393
1381
  "v2-v1-signed-webhook-accepted.test.ts": [
1394
1382
  2
1395
1383
  ],
1396
- "v2-version-header-honored.test.ts": [
1397
- 2
1398
- ],
1399
1384
  "v2-webhook-durable-delivery.test.ts": [
1400
1385
  2
1401
1386
  ],