@openwop/spec-artifacts 2.0.0-rc.0
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 +234 -0
- package/LICENSE +201 -0
- package/README.md +7 -0
- package/api/.redocly.lint-ignore.yaml +22 -0
- package/api/asyncapi.yaml +834 -0
- package/api/grpc/openwop.proto +251 -0
- package/api/openapi.yaml +2693 -0
- package/api/redocly.yaml +23 -0
- package/api/seams-v2.yaml +680 -0
- package/api/v2/asyncapi.yaml +528 -0
- package/api/v2/openapi.yaml +3139 -0
- package/api/v2/redocly.yaml +16 -0
- package/package.json +10 -0
- package/schemas/README.md +144 -0
- package/schemas/a2a-task-state.schema.json +78 -0
- package/schemas/a2ui-surface-delta-frame.schema.json +48 -0
- package/schemas/agent-deployment-transition.schema.json +49 -0
- package/schemas/agent-deployment.schema.json +54 -0
- package/schemas/agent-eval-suite.schema.json +140 -0
- package/schemas/agent-inventory-response.schema.json +115 -0
- package/schemas/agent-manifest.schema.json +156 -0
- package/schemas/agent-org-chart.schema.json +82 -0
- package/schemas/agent-ref.schema.json +63 -0
- package/schemas/agent-roster-entry.schema.json +81 -0
- package/schemas/agent-roster-response.schema.json +21 -0
- package/schemas/ai-envelope.schema.json +134 -0
- package/schemas/annotation-create.schema.json +37 -0
- package/schemas/annotation.schema.json +56 -0
- package/schemas/artifact-type-pack-manifest.schema.json +244 -0
- package/schemas/audit-verify-result.schema.json +90 -0
- package/schemas/budget-policy.schema.json +18 -0
- package/schemas/capabilities.schema.json +4160 -0
- package/schemas/certification-bundle-v2.schema.json +118 -0
- package/schemas/channel-presence-payload.schema.json +41 -0
- package/schemas/channel-written-payload.schema.json +55 -0
- package/schemas/chat-card-pack-manifest.schema.json +253 -0
- package/schemas/compact-tool-descriptor.schema.json +51 -0
- package/schemas/compensation-policy.schema.json +64 -0
- package/schemas/conformance-certification-bundle.schema.json +86 -0
- package/schemas/connection-pack-manifest.schema.json +353 -0
- package/schemas/conversation-event.schema.json +168 -0
- package/schemas/conversation-turn.schema.json +117 -0
- package/schemas/core-conformance-mock-agent-config.schema.json +152 -0
- package/schemas/credential-provenance.schema.json +18 -0
- package/schemas/credential-reference.schema.json +21 -0
- package/schemas/debug-bundle.schema.json +196 -0
- package/schemas/dispatch-config.schema.json +112 -0
- package/schemas/envelopes/clarification.request.schema.json +52 -0
- package/schemas/envelopes/error.schema.json +30 -0
- package/schemas/envelopes/media.audio.schema.json +38 -0
- package/schemas/envelopes/media.file.schema.json +37 -0
- package/schemas/envelopes/media.image.schema.json +33 -0
- package/schemas/envelopes/schema.request.schema.json +26 -0
- package/schemas/envelopes/schema.response.schema.json +22 -0
- package/schemas/envelopes/ui.a2ui-surface.schema.json +154 -0
- package/schemas/error-envelope.schema.json +25 -0
- package/schemas/eval-summary.schema.json +92 -0
- package/schemas/export-bundle.schema.json +66 -0
- package/schemas/form-content-pack-manifest.schema.json +243 -0
- package/schemas/frontend-plugin-manifest.schema.json +109 -0
- package/schemas/goal.schema.json +104 -0
- package/schemas/heartbeat-evaluated.schema.json +14 -0
- package/schemas/heartbeat-state-changed.schema.json +14 -0
- package/schemas/localized-content-language-settings.schema.json +26 -0
- package/schemas/localized-content-page-response.schema.json +60 -0
- package/schemas/localized-content-page.schema.json +62 -0
- package/schemas/localized-content-section.schema.json +51 -0
- package/schemas/memory-entry.schema.json +36 -0
- package/schemas/memory-list-options.schema.json +37 -0
- package/schemas/node-pack-manifest.schema.json +654 -0
- package/schemas/orchestrator-decision.schema.json +90 -0
- package/schemas/org-chart-responsibility-view.schema.json +26 -0
- package/schemas/pack-lockfile.schema.json +108 -0
- package/schemas/prompt-kind.schema.json +8 -0
- package/schemas/prompt-pack-manifest.schema.json +117 -0
- package/schemas/prompt-ref.schema.json +40 -0
- package/schemas/prompt-template.schema.json +149 -0
- package/schemas/proposal.schema.json +84 -0
- package/schemas/registry-version-manifest.schema.json +208 -0
- package/schemas/residency.schema.json +16 -0
- package/schemas/run-ancestry-response.schema.json +54 -0
- package/schemas/run-diff-response.schema.json +64 -0
- package/schemas/run-event-payloads.schema.json +4452 -0
- package/schemas/run-event.schema.json +211 -0
- package/schemas/run-options.schema.json +80 -0
- package/schemas/run-orchestrator-decided-event.schema.json +20 -0
- package/schemas/run-snapshot.schema.json +148 -0
- package/schemas/security-advisory.schema.json +109 -0
- package/schemas/self-hosted-runner-dispatch-frame.schema.json +79 -0
- package/schemas/self-hosted-runner-registration.schema.json +53 -0
- package/schemas/self-hosted-runner-result-frame.schema.json +38 -0
- package/schemas/subject.schema.json +56 -0
- package/schemas/suspend-request.schema.json +207 -0
- package/schemas/tool-descriptor.schema.json +63 -0
- package/schemas/trigger-event.schema.json +222 -0
- package/schemas/trigger-subscription-registration.schema.json +67 -0
- package/schemas/trigger-subscription.schema.json +26 -0
- package/schemas/ui-plugin-message.schema.json +90 -0
- package/schemas/v2/a2a-task-state.schema.json +102 -0
- package/schemas/v2/a2ui-surface-delta-frame.schema.json +62 -0
- package/schemas/v2/agent-deployment-transition.schema.json +67 -0
- package/schemas/v2/agent-deployment.schema.json +68 -0
- package/schemas/v2/agent-eval-suite.schema.json +214 -0
- package/schemas/v2/agent-inventory-response.schema.json +172 -0
- package/schemas/v2/agent-manifest.schema.json +218 -0
- package/schemas/v2/agent-org-chart.schema.json +149 -0
- package/schemas/v2/agent-ref.schema.json +67 -0
- package/schemas/v2/agent-roster-entry.schema.json +104 -0
- package/schemas/v2/agent-roster-response.schema.json +27 -0
- package/schemas/v2/ai-envelope.schema.json +167 -0
- package/schemas/v2/annotation-create.schema.json +109 -0
- package/schemas/v2/annotation.schema.json +142 -0
- package/schemas/v2/artifact-type-pack-manifest.schema.json +245 -0
- package/schemas/v2/audit-verify-result.schema.json +110 -0
- package/schemas/v2/budget-policy.schema.json +61 -0
- package/schemas/v2/capabilities.schema.json +7644 -0
- package/schemas/v2/certification-bundle.schema.json +401 -0
- package/schemas/v2/channel-presence-payload.schema.json +60 -0
- package/schemas/v2/channel-written-payload.schema.json +64 -0
- package/schemas/v2/chat-card-pack-manifest.schema.json +254 -0
- package/schemas/v2/compact-tool-descriptor.schema.json +108 -0
- package/schemas/v2/compensation-policy.schema.json +91 -0
- package/schemas/v2/compensation-projection.schema.json +95 -0
- package/schemas/v2/configurable.schema.json +110 -0
- package/schemas/v2/connection-pack-manifest.schema.json +354 -0
- package/schemas/v2/conversation-event.schema.json +281 -0
- package/schemas/v2/conversation-turn.schema.json +165 -0
- package/schemas/v2/credential-provenance.schema.json +62 -0
- package/schemas/v2/credential-reference.schema.json +28 -0
- package/schemas/v2/debug-bundle.schema.json +312 -0
- package/schemas/v2/dispatch-config.schema.json +147 -0
- package/schemas/v2/effect-ledger-projection.schema.json +71 -0
- package/schemas/v2/effect-seam-manifest.schema.json +98 -0
- package/schemas/v2/envelopes/clarification.request.schema.json +59 -0
- package/schemas/v2/envelopes/error.schema.json +35 -0
- package/schemas/v2/envelopes/media.audio.schema.json +41 -0
- package/schemas/v2/envelopes/media.file.schema.json +40 -0
- package/schemas/v2/envelopes/media.image.schema.json +36 -0
- package/schemas/v2/envelopes/schema.request.schema.json +29 -0
- package/schemas/v2/envelopes/schema.response.schema.json +26 -0
- package/schemas/v2/envelopes/ui.a2ui-surface.schema.json +292 -0
- package/schemas/v2/error-envelope.schema.json +229 -0
- package/schemas/v2/eval-summary.schema.json +166 -0
- package/schemas/v2/export-bundle.schema.json +94 -0
- package/schemas/v2/form-content-pack-manifest.schema.json +241 -0
- package/schemas/v2/frontend-plugin-manifest.schema.json +152 -0
- package/schemas/v2/goal.schema.json +188 -0
- package/schemas/v2/heartbeat-evaluated.schema.json +34 -0
- package/schemas/v2/heartbeat-state-changed.schema.json +31 -0
- package/schemas/v2/ids.schema.json +31 -0
- package/schemas/v2/localized-content-language-settings.schema.json +34 -0
- package/schemas/v2/localized-content-page-response.schema.json +94 -0
- package/schemas/v2/localized-content-page.schema.json +87 -0
- package/schemas/v2/localized-content-section.schema.json +63 -0
- package/schemas/v2/memory-entry.schema.json +45 -0
- package/schemas/v2/memory-list-options.schema.json +41 -0
- package/schemas/v2/node-pack-manifest.schema.json +657 -0
- package/schemas/v2/orchestrator-decision.schema.json +120 -0
- package/schemas/v2/org-chart-responsibility-view.schema.json +36 -0
- package/schemas/v2/pack-lockfile.schema.json +139 -0
- package/schemas/v2/prompt-kind.schema.json +14 -0
- package/schemas/v2/prompt-pack-manifest.schema.json +118 -0
- package/schemas/v2/prompt-ref.schema.json +42 -0
- package/schemas/v2/prompt-template.schema.json +209 -0
- package/schemas/v2/proposal.schema.json +145 -0
- package/schemas/v2/registry-version-manifest.schema.json +292 -0
- package/schemas/v2/residency.schema.json +19 -0
- package/schemas/v2/run-ancestry-response.schema.json +68 -0
- package/schemas/v2/run-diff-response.schema.json +80 -0
- package/schemas/v2/run-event-payloads.schema.json +4588 -0
- package/schemas/v2/run-event.schema.json +324 -0
- package/schemas/v2/run-options.schema.json +90 -0
- package/schemas/v2/run-orchestrator-decided-event.schema.json +22 -0
- package/schemas/v2/run-snapshot.schema.json +207 -0
- package/schemas/v2/security-advisory.schema.json +138 -0
- package/schemas/v2/self-hosted-runner-dispatch-frame.schema.json +119 -0
- package/schemas/v2/self-hosted-runner-registration.schema.json +74 -0
- package/schemas/v2/self-hosted-runner-result-frame.schema.json +47 -0
- package/schemas/v2/subject-link.schema.json +69 -0
- package/schemas/v2/subject.schema.json +597 -0
- package/schemas/v2/suspend-request.schema.json +370 -0
- package/schemas/v2/tool-descriptor.schema.json +150 -0
- package/schemas/v2/trigger-event.schema.json +508 -0
- package/schemas/v2/trigger-subscription-registration.schema.json +99 -0
- package/schemas/v2/trigger-subscription.schema.json +79 -0
- package/schemas/v2/ui-plugin-message.schema.json +149 -0
- package/schemas/v2/workflow-chain-pack-manifest.schema.json +610 -0
- package/schemas/v2/workflow-definition.schema.json +864 -0
- package/schemas/v2/workload-identity.schema.json +115 -0
- package/schemas/v2/workspace-file-create.schema.json +23 -0
- package/schemas/v2/workspace-file.schema.json +45 -0
- package/schemas/workflow-chain-pack-manifest.schema.json +615 -0
- package/schemas/workflow-definition.schema.json +850 -0
- package/schemas/workload-identity.schema.json +79 -0
- package/schemas/workspace-file-create.schema.json +20 -0
- package/schemas/workspace-file.schema.json +39 -0
- package/spec/v1/alias-detectors.json +283 -0
- package/spec/v1/capability-declaration-classes.json +176 -0
- package/spec/v1/core-standard-manifest.json +423 -0
- package/spec/v1/deprecations.json +854 -0
- package/spec/v1/deprecations.schema.json +187 -0
- package/spec/v1/event-codemap.json +1089 -0
- package/spec/v1/event-codemap.schema.json +41 -0
- package/spec/v1/extensions.json +1273 -0
- package/spec/v1/gaps.json +14581 -0
- package/spec/v1/gaps.schema.json +55 -0
- package/spec/v1/migrations.json +1822 -0
- package/spec/v1/migrations.schema.json +44 -0
- package/spec/v1/operation-path-manifest.json +462 -0
- package/spec/v1/spec-gaps.json +4823 -0
- package/spec/v2/declaration.json +1862 -0
- package/spec/v2/declaration.schema.json +305 -0
- package/spec/v2/errors.json +837 -0
- package/spec/v2/event-codemap.json +1099 -0
- package/spec/v2/event-codemap.schema.json +114 -0
- package/spec/v2/ext/provider-idempotency/registry.json +6 -0
- package/spec/v2/facets/a2a.schema.json +51 -0
- package/spec/v2/facets/aiProviders.schema.json +56 -0
- package/spec/v2/facets/auth.schema.json +91 -0
- package/spec/v2/facets/heartbeat.schema.json +20 -0
- package/spec/v2/facets/interrupt.schema.json +29 -0
- package/spec/v2/facets/mcp.schema.json +81 -0
- package/spec/v2/facets/replay.schema.json +34 -0
- package/spec/v2/facets/sandbox.schema.json +31 -0
- package/spec/v2/facets/webhooks.schema.json +18 -0
- package/spec/v2/path-manifest.json +279 -0
- package/spec/v2/peer-dependency-aliases.json +165 -0
- package/spec/v2/profiles.json +45 -0
- package/spec/v2/release.json +6 -0
|
@@ -0,0 +1,1822 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./migrations.schema.json",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"updated": "2026-09-03",
|
|
5
|
+
"rows": [
|
|
6
|
+
{
|
|
7
|
+
"id": "openwop.migration.C2.1",
|
|
8
|
+
"child": "C2",
|
|
9
|
+
"kind": "remove",
|
|
10
|
+
"v1": {
|
|
11
|
+
"surface": "capabilities wrapper object",
|
|
12
|
+
"path": "/.well-known/openwop#/capabilities"
|
|
13
|
+
},
|
|
14
|
+
"v2": {
|
|
15
|
+
"surface": "none"
|
|
16
|
+
},
|
|
17
|
+
"codemod": "openwop.codemod.capabilities-wrapper-removal",
|
|
18
|
+
"persistedData": "not-persisted",
|
|
19
|
+
"requirementIds": [],
|
|
20
|
+
"gapIds": [],
|
|
21
|
+
"deprecationId": "openwop.deprecation.capabilities-wrapper",
|
|
22
|
+
"note": "The one codemod landed with the umbrella (RFC 0167 §D.3): strips the wrapper after asserting it mirrors the root."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "openwop.migration.C2.2",
|
|
26
|
+
"child": "C2",
|
|
27
|
+
"kind": "delete-alias",
|
|
28
|
+
"v1": {
|
|
29
|
+
"surface": "host.<family> dotted mirror keys",
|
|
30
|
+
"path": "/.well-known/openwop#/host.*"
|
|
31
|
+
},
|
|
32
|
+
"v2": {
|
|
33
|
+
"surface": "none"
|
|
34
|
+
},
|
|
35
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
36
|
+
"persistedData": "not-persisted",
|
|
37
|
+
"requirementIds": [],
|
|
38
|
+
"gapIds": [],
|
|
39
|
+
"deprecationId": "openwop.deprecation.host-dotted-mirror"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "openwop.migration.C2.3",
|
|
43
|
+
"child": "C2",
|
|
44
|
+
"kind": "delete-alias",
|
|
45
|
+
"v1": {
|
|
46
|
+
"surface": "openwop-core profile id",
|
|
47
|
+
"path": "profiles[]"
|
|
48
|
+
},
|
|
49
|
+
"v2": {
|
|
50
|
+
"surface": "openwop-discovery-core"
|
|
51
|
+
},
|
|
52
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
53
|
+
"persistedData": "never-upgraded",
|
|
54
|
+
"requirementIds": [],
|
|
55
|
+
"gapIds": [],
|
|
56
|
+
"deprecationId": "openwop.deprecation.profile-openwop-core-alias",
|
|
57
|
+
"note": "Published v1 bundles that claim the alias remain valid v1 evidence."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "openwop.migration.C2.4",
|
|
61
|
+
"child": "C2",
|
|
62
|
+
"kind": "remove",
|
|
63
|
+
"v1": {
|
|
64
|
+
"surface": "contractProvenance",
|
|
65
|
+
"path": "/.well-known/openwop#/contractProvenance"
|
|
66
|
+
},
|
|
67
|
+
"v2": {
|
|
68
|
+
"surface": "none"
|
|
69
|
+
},
|
|
70
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
71
|
+
"persistedData": "not-persisted",
|
|
72
|
+
"requirementIds": [],
|
|
73
|
+
"gapIds": [],
|
|
74
|
+
"deprecationId": "openwop.deprecation.contract-provenance"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "openwop.migration.C2.5",
|
|
78
|
+
"child": "C2",
|
|
79
|
+
"kind": "remove",
|
|
80
|
+
"v1": {
|
|
81
|
+
"surface": "capabilities.auth.subjectLinking",
|
|
82
|
+
"path": "/.well-known/openwop#/auth/subjectLinking"
|
|
83
|
+
},
|
|
84
|
+
"v2": {
|
|
85
|
+
"surface": "none (derived from the profile pair)"
|
|
86
|
+
},
|
|
87
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
88
|
+
"persistedData": "not-persisted",
|
|
89
|
+
"requirementIds": [],
|
|
90
|
+
"gapIds": [],
|
|
91
|
+
"deprecationId": "openwop.deprecation.auth-subject-linking-flag"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "openwop.migration.C2.6",
|
|
95
|
+
"child": "C2",
|
|
96
|
+
"kind": "rename",
|
|
97
|
+
"v1": {
|
|
98
|
+
"surface": "a2a.supported / mcp.supported bare booleans"
|
|
99
|
+
},
|
|
100
|
+
"v2": {
|
|
101
|
+
"surface": "a2a.protocolVersions[] / mcp.protocolVersions[]"
|
|
102
|
+
},
|
|
103
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
104
|
+
"persistedData": "not-persisted",
|
|
105
|
+
"requirementIds": [],
|
|
106
|
+
"gapIds": [],
|
|
107
|
+
"deprecationId": "openwop.deprecation.a2a-bare-supported",
|
|
108
|
+
"note": "The codemod refuses a document whose bare supported:true has no protocolVersions[] beside it — it cannot invent versions."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "openwop.migration.C2.7",
|
|
112
|
+
"child": "C2",
|
|
113
|
+
"kind": "rename",
|
|
114
|
+
"v1": {
|
|
115
|
+
"surface": "replay.fork boolean",
|
|
116
|
+
"path": "/.well-known/openwop#/replay/fork"
|
|
117
|
+
},
|
|
118
|
+
"v2": {
|
|
119
|
+
"surface": "replay.modes[]"
|
|
120
|
+
},
|
|
121
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
122
|
+
"persistedData": "not-persisted",
|
|
123
|
+
"requirementIds": [],
|
|
124
|
+
"gapIds": [],
|
|
125
|
+
"deprecationId": "openwop.deprecation.replay-fork-boolean"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "openwop.migration.C2.8",
|
|
129
|
+
"child": "C2",
|
|
130
|
+
"kind": "rename",
|
|
131
|
+
"v1": {
|
|
132
|
+
"surface": "the 11 RFC 0144 extension-class host.* families"
|
|
133
|
+
},
|
|
134
|
+
"v2": {
|
|
135
|
+
"surface": "the single extension namespace key"
|
|
136
|
+
},
|
|
137
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
138
|
+
"persistedData": "not-persisted",
|
|
139
|
+
"requirementIds": [],
|
|
140
|
+
"gapIds": [],
|
|
141
|
+
"deprecationId": "openwop.deprecation.undeclared-host-extension-families"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "openwop.migration.C4.1",
|
|
145
|
+
"child": "C4",
|
|
146
|
+
"kind": "behavior",
|
|
147
|
+
"v1": {
|
|
148
|
+
"surface": "X-openwop-* webhook headers"
|
|
149
|
+
},
|
|
150
|
+
"v2": {
|
|
151
|
+
"surface": "OpenWOP-* webhook headers"
|
|
152
|
+
},
|
|
153
|
+
"codemod": null,
|
|
154
|
+
"persistedData": "not-persisted",
|
|
155
|
+
"requirementIds": [],
|
|
156
|
+
"gapIds": [],
|
|
157
|
+
"deprecationId": "openwop.deprecation.webhook-x-header-family",
|
|
158
|
+
"note": "Headers are emitted, not persisted; dual-emitted through the overlap (RFC 0165 §C.1). No codemod."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "openwop.migration.C4.2",
|
|
162
|
+
"child": "C4",
|
|
163
|
+
"kind": "behavior",
|
|
164
|
+
"v1": {
|
|
165
|
+
"surface": "X-Dedup, X-Force-Engine-Version, X-Pack-Sha256, X-Pack-Signing-Method, openwop-Idempotent-Replay"
|
|
166
|
+
},
|
|
167
|
+
"v2": {
|
|
168
|
+
"surface": "OpenWOP-Dedup, OpenWOP-Force-Engine-Version (seams profile), OpenWOP-Pack-Sha256, OpenWOP-Pack-Signing-Method, OpenWOP-Idempotent-Replay"
|
|
169
|
+
},
|
|
170
|
+
"codemod": null,
|
|
171
|
+
"persistedData": "not-persisted",
|
|
172
|
+
"requirementIds": [],
|
|
173
|
+
"gapIds": [],
|
|
174
|
+
"deprecationId": "openwop.deprecation.custom-request-headers-x-family",
|
|
175
|
+
"note": "Request headers; clients change; nothing persisted. No codemod."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "openwop.migration.C4.3",
|
|
179
|
+
"child": "C4",
|
|
180
|
+
"kind": "rename",
|
|
181
|
+
"v1": {
|
|
182
|
+
"surface": "run event `type` vocabulary (117 members, mixed case)",
|
|
183
|
+
"path": "spec/v1/event-codemap.json"
|
|
184
|
+
},
|
|
185
|
+
"v2": {
|
|
186
|
+
"surface": "domain.verb-ed closed enum"
|
|
187
|
+
},
|
|
188
|
+
"codemod": "openwop.codemod.event-type-codemap",
|
|
189
|
+
"persistedData": "translated",
|
|
190
|
+
"requirementIds": [],
|
|
191
|
+
"gapIds": [
|
|
192
|
+
"openwop.gap.0165.7"
|
|
193
|
+
],
|
|
194
|
+
"deprecationId": "openwop.deprecation.legacy-interrupt-payloads",
|
|
195
|
+
"note": "The codemod is generated from event-codemap.json (20 hand decisions recorded as v2Override); the C.9 reader applies the same file; sequence space preserved."
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "openwop.migration.C4.4",
|
|
199
|
+
"child": "C4",
|
|
200
|
+
"kind": "remove",
|
|
201
|
+
"v1": {
|
|
202
|
+
"surface": "approvalRequested / clarificationRequested payload definitions; free-text feedback"
|
|
203
|
+
},
|
|
204
|
+
"v2": {
|
|
205
|
+
"surface": "interrupt.requested {kind}; refineFeedback"
|
|
206
|
+
},
|
|
207
|
+
"codemod": "openwop.codemod.event-type-codemap",
|
|
208
|
+
"persistedData": "translated",
|
|
209
|
+
"requirementIds": [],
|
|
210
|
+
"gapIds": [],
|
|
211
|
+
"deprecationId": "openwop.deprecation.legacy-interrupt-payloads"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": "openwop.migration.C4.5",
|
|
215
|
+
"child": "C4",
|
|
216
|
+
"kind": "behavior",
|
|
217
|
+
"v1": {
|
|
218
|
+
"surface": "`since` poll cursor; lastSequence semantics that cannot express the empty prefix"
|
|
219
|
+
},
|
|
220
|
+
"v2": {
|
|
221
|
+
"surface": "afterSequence; omission = from the first event; since removed"
|
|
222
|
+
},
|
|
223
|
+
"codemod": null,
|
|
224
|
+
"persistedData": "not-persisted",
|
|
225
|
+
"requirementIds": [],
|
|
226
|
+
"gapIds": [
|
|
227
|
+
"openwop.gap.0165.7"
|
|
228
|
+
],
|
|
229
|
+
"deprecationId": "openwop.deprecation.poll-cursor-since",
|
|
230
|
+
"note": "A query parameter; clients change, nothing persisted. No codemod. The first event stays 0 (RFC 0165 G7 option 1)."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "openwop.migration.C4.6",
|
|
234
|
+
"child": "C4",
|
|
235
|
+
"kind": "behavior",
|
|
236
|
+
"v1": {
|
|
237
|
+
"surface": "409 interrupt_already_resolved beside 410 interrupt_gone"
|
|
238
|
+
},
|
|
239
|
+
"v2": {
|
|
240
|
+
"surface": "one code per state in errors.json"
|
|
241
|
+
},
|
|
242
|
+
"codemod": null,
|
|
243
|
+
"persistedData": "not-persisted",
|
|
244
|
+
"requirementIds": [],
|
|
245
|
+
"gapIds": [],
|
|
246
|
+
"deprecationId": "openwop.deprecation.interrupt-token-409-410-overlap",
|
|
247
|
+
"note": "Error responses are not persisted. No codemod."
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "openwop.migration.C2.9",
|
|
251
|
+
"child": "C2",
|
|
252
|
+
"kind": "behavior",
|
|
253
|
+
"v1": {
|
|
254
|
+
"surface": "Capabilities-Etag header"
|
|
255
|
+
},
|
|
256
|
+
"v2": {
|
|
257
|
+
"surface": "standard ETag / If-None-Match"
|
|
258
|
+
},
|
|
259
|
+
"codemod": null,
|
|
260
|
+
"persistedData": "not-persisted",
|
|
261
|
+
"requirementIds": [],
|
|
262
|
+
"gapIds": [],
|
|
263
|
+
"deprecationId": "openwop.deprecation.capabilities-etag-header",
|
|
264
|
+
"note": "A header is emitted, not persisted: clients read the standard ETag (RFC 0165 §C.2 dual emission through the overlap). No codemod."
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"id": "openwop.migration.C5.1",
|
|
268
|
+
"child": "C5",
|
|
269
|
+
"kind": "unify",
|
|
270
|
+
"v1": {
|
|
271
|
+
"surface": "engineVersion: integer at the discovery root, string on five event carriers"
|
|
272
|
+
},
|
|
273
|
+
"v2": {
|
|
274
|
+
"surface": "one engineVersion type and grammar"
|
|
275
|
+
},
|
|
276
|
+
"codemod": "openwop.codemod.engine-version-unify",
|
|
277
|
+
"persistedData": "legacy-stamped",
|
|
278
|
+
"requirementIds": [],
|
|
279
|
+
"gapIds": [],
|
|
280
|
+
"deprecationId": "openwop.deprecation.engine-version-type-split",
|
|
281
|
+
"note": "Persisted run docs keep the v1 rendering; the reader normalises."
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"id": "openwop.migration.C5.2",
|
|
285
|
+
"child": "C5",
|
|
286
|
+
"kind": "behavior",
|
|
287
|
+
"v1": {
|
|
288
|
+
"surface": "channel state-key prefix conventions"
|
|
289
|
+
},
|
|
290
|
+
"v2": {
|
|
291
|
+
"surface": "typed channels + reducers"
|
|
292
|
+
},
|
|
293
|
+
"codemod": null,
|
|
294
|
+
"persistedData": "translated",
|
|
295
|
+
"requirementIds": [],
|
|
296
|
+
"gapIds": [],
|
|
297
|
+
"deprecationId": "openwop.deprecation.channel-prefix-conventions",
|
|
298
|
+
"note": "A prose convention; the C.4 typed channels and the C.9 read-time adapter are the witness. No codemod."
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"id": "openwop.migration.C1.1",
|
|
302
|
+
"child": "C1",
|
|
303
|
+
"kind": "behavior",
|
|
304
|
+
"v1": {
|
|
305
|
+
"surface": "certification bundle v1 (bundleVersion \"1\") and v2 (open root)"
|
|
306
|
+
},
|
|
307
|
+
"v2": {
|
|
308
|
+
"surface": "bundle v3: closed root, witness/build/tier/count/signature required; earlier bundles never upgraded"
|
|
309
|
+
},
|
|
310
|
+
"codemod": null,
|
|
311
|
+
"persistedData": "never-upgraded",
|
|
312
|
+
"requirementIds": [],
|
|
313
|
+
"gapIds": [],
|
|
314
|
+
"deprecationId": "openwop.deprecation.certification-bundle-v1",
|
|
315
|
+
"note": "Re-kinded retype → behavior (RFC 0168 adversarial review 2): a codemod producing a v3 bundle from a v2 one would fabricate witnessSha256 and signature (RFC 0148 R5). Published v1/v2 bundles remain valid evidence at their version; never upgraded in place."
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "openwop.migration.C10.1",
|
|
319
|
+
"child": "C10",
|
|
320
|
+
"kind": "rename",
|
|
321
|
+
"v1": {
|
|
322
|
+
"surface": "signing.publicKeyRef"
|
|
323
|
+
},
|
|
324
|
+
"v2": {
|
|
325
|
+
"surface": "signing.keyId"
|
|
326
|
+
},
|
|
327
|
+
"codemod": "openwop.codemod.pack-manifest-v2",
|
|
328
|
+
"persistedData": "never-upgraded",
|
|
329
|
+
"requirementIds": [],
|
|
330
|
+
"gapIds": [],
|
|
331
|
+
"deprecationId": "openwop.deprecation.manifest-public-key-ref",
|
|
332
|
+
"note": "Signed manifests are immutable; registry/v2 re-signs or overlays."
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"id": "openwop.migration.C10.2",
|
|
336
|
+
"child": "C10",
|
|
337
|
+
"kind": "rename",
|
|
338
|
+
"v1": {
|
|
339
|
+
"surface": "x-openwop-form.credentialProvider (node config ui hint)"
|
|
340
|
+
},
|
|
341
|
+
"v2": {
|
|
342
|
+
"surface": "provider"
|
|
343
|
+
},
|
|
344
|
+
"codemod": "openwop.codemod.node-pack-ui-hints",
|
|
345
|
+
"persistedData": "never-upgraded",
|
|
346
|
+
"requirementIds": [],
|
|
347
|
+
"gapIds": [],
|
|
348
|
+
"deprecationId": "openwop.deprecation.credential-provider-key"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"id": "openwop.migration.C10.3",
|
|
352
|
+
"child": "C10",
|
|
353
|
+
"kind": "rename",
|
|
354
|
+
"v1": {
|
|
355
|
+
"surface": "workflow definition config.outputArtifactType / config.chatCard"
|
|
356
|
+
},
|
|
357
|
+
"v2": {
|
|
358
|
+
"surface": "node.artifactType / node.chatCard"
|
|
359
|
+
},
|
|
360
|
+
"codemod": "openwop.codemod.workflow-definition-v2",
|
|
361
|
+
"persistedData": "translated",
|
|
362
|
+
"requirementIds": [],
|
|
363
|
+
"gapIds": [],
|
|
364
|
+
"deprecationId": "openwop.deprecation.config-output-artifact-type"
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "openwop.migration.C8.1",
|
|
368
|
+
"child": "C8",
|
|
369
|
+
"kind": "remove",
|
|
370
|
+
"v1": {
|
|
371
|
+
"surface": "a2a-0.3-legacy / mcp-2025-06-18-legacy profiles"
|
|
372
|
+
},
|
|
373
|
+
"v2": {
|
|
374
|
+
"surface": "none (a2a-1.0, mcp-2026-07-28 only)"
|
|
375
|
+
},
|
|
376
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
377
|
+
"persistedData": "not-persisted",
|
|
378
|
+
"requirementIds": [],
|
|
379
|
+
"gapIds": [],
|
|
380
|
+
"deprecationId": "openwop.deprecation.a2a-0-3-legacy-profile",
|
|
381
|
+
"note": "The codemod strips the legacy ids and the legacy version when preferredVersion is not legacy; refuses when it is. The v1 tree keeps the profiles and their dated sunsets through Phase 5."
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"id": "openwop.migration.C4.7",
|
|
385
|
+
"child": "C4",
|
|
386
|
+
"kind": "rename",
|
|
387
|
+
"v1": {
|
|
388
|
+
"surface": "debug bundle event seq"
|
|
389
|
+
},
|
|
390
|
+
"v2": {
|
|
391
|
+
"surface": "sequence"
|
|
392
|
+
},
|
|
393
|
+
"codemod": "openwop.codemod.debug-bundle-seq",
|
|
394
|
+
"persistedData": "never-upgraded",
|
|
395
|
+
"requirementIds": [],
|
|
396
|
+
"gapIds": [],
|
|
397
|
+
"deprecationId": "openwop.deprecation.debug-bundle-seq"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"id": "openwop.migration.C4.8",
|
|
401
|
+
"child": "C4",
|
|
402
|
+
"kind": "behavior",
|
|
403
|
+
"v1": {
|
|
404
|
+
"surface": "openwop-Webhook-Signature (SDK-only header)"
|
|
405
|
+
},
|
|
406
|
+
"v2": {
|
|
407
|
+
"surface": "none"
|
|
408
|
+
},
|
|
409
|
+
"codemod": null,
|
|
410
|
+
"persistedData": "not-persisted",
|
|
411
|
+
"requirementIds": [],
|
|
412
|
+
"gapIds": [],
|
|
413
|
+
"deprecationId": "openwop.deprecation.sdk-webhook-signature-header",
|
|
414
|
+
"note": "An SDK-only header; nothing persisted. No codemod."
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"id": "openwop.migration.C3.1",
|
|
418
|
+
"child": "C3",
|
|
419
|
+
"kind": "require",
|
|
420
|
+
"v1": {
|
|
421
|
+
"surface": "owner.subject optional; owner.principal bare string"
|
|
422
|
+
},
|
|
423
|
+
"v2": {
|
|
424
|
+
"surface": "Subject required; principal removed"
|
|
425
|
+
},
|
|
426
|
+
"codemod": null,
|
|
427
|
+
"persistedData": "legacy-stamped",
|
|
428
|
+
"requirementIds": [],
|
|
429
|
+
"gapIds": [
|
|
430
|
+
"openwop.gap.0165.1",
|
|
431
|
+
"openwop.gap.0165.6"
|
|
432
|
+
],
|
|
433
|
+
"deprecationId": null,
|
|
434
|
+
"note": "Pre-v2 runs read back with issuer urn:openwop:legacy (RFC 0165 §B.3) — never rewritten."
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"id": "openwop.migration.C3.2",
|
|
438
|
+
"child": "C3",
|
|
439
|
+
"kind": "remove",
|
|
440
|
+
"v1": {
|
|
441
|
+
"surface": "capabilities.auth.subjectLinking derived flag"
|
|
442
|
+
},
|
|
443
|
+
"v2": {
|
|
444
|
+
"surface": "none — advertising both identity profiles implies the contract"
|
|
445
|
+
},
|
|
446
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
447
|
+
"persistedData": "not-persisted",
|
|
448
|
+
"requirementIds": [],
|
|
449
|
+
"gapIds": [],
|
|
450
|
+
"deprecationId": "openwop.deprecation.auth-subject-linking-flag"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"id": "openwop.migration.C9.1",
|
|
454
|
+
"child": "C9",
|
|
455
|
+
"kind": "behavior",
|
|
456
|
+
"v1": {
|
|
457
|
+
"surface": "event logs in v1 vocabulary read verbatim"
|
|
458
|
+
},
|
|
459
|
+
"v2": {
|
|
460
|
+
"surface": "read through the codemap adapter at the storage boundary; sequence preserved"
|
|
461
|
+
},
|
|
462
|
+
"codemod": "openwop.codemod.event-type-codemap",
|
|
463
|
+
"persistedData": "translated",
|
|
464
|
+
"requirementIds": [],
|
|
465
|
+
"gapIds": [],
|
|
466
|
+
"deprecationId": null,
|
|
467
|
+
"note": "Exported artifacts (debug bundles, fixtures) use the codemod; live stores use the RFC 0176 §A.3 reader rule at the storage boundary."
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"id": "openwop.migration.C2.10",
|
|
471
|
+
"child": "C2",
|
|
472
|
+
"kind": "add",
|
|
473
|
+
"v1": {
|
|
474
|
+
"surface": "root profiles[] (undeclared; emitted by one host)",
|
|
475
|
+
"path": "/.well-known/openwop#/profiles"
|
|
476
|
+
},
|
|
477
|
+
"v2": {
|
|
478
|
+
"surface": "none — schema-invalid under the closed root; profiles are derived (profiles.md §Why this is not a wire field)"
|
|
479
|
+
},
|
|
480
|
+
"codemod": null,
|
|
481
|
+
"persistedData": "not-persisted",
|
|
482
|
+
"requirementIds": [],
|
|
483
|
+
"gapIds": [],
|
|
484
|
+
"deprecationId": null,
|
|
485
|
+
"note": "A host emitting it fails v2 schema validation; MyndHyve drops it in its Phase 4 leg."
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"id": "openwop.migration.C5.3",
|
|
489
|
+
"child": "C5",
|
|
490
|
+
"kind": "add",
|
|
491
|
+
"v1": {
|
|
492
|
+
"surface": "none"
|
|
493
|
+
},
|
|
494
|
+
"v2": {
|
|
495
|
+
"surface": "root preferredVersion",
|
|
496
|
+
"path": "/.well-known/openwop#/preferredVersion"
|
|
497
|
+
},
|
|
498
|
+
"codemod": null,
|
|
499
|
+
"persistedData": "not-persisted",
|
|
500
|
+
"requirementIds": [],
|
|
501
|
+
"gapIds": [],
|
|
502
|
+
"deprecationId": null,
|
|
503
|
+
"note": "MUST be a member of protocolVersions[]; a v1.x additive RFC lands it before the cut."
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"id": "openwop.migration.C5.4",
|
|
507
|
+
"child": "C5",
|
|
508
|
+
"kind": "add",
|
|
509
|
+
"v1": {
|
|
510
|
+
"surface": "none"
|
|
511
|
+
},
|
|
512
|
+
"v2": {
|
|
513
|
+
"surface": "OpenWOP-Version request/response header; protocol_version_unsupported, protocol_version_mismatch, client_version_unsupported"
|
|
514
|
+
},
|
|
515
|
+
"codemod": null,
|
|
516
|
+
"persistedData": "not-persisted",
|
|
517
|
+
"requirementIds": [],
|
|
518
|
+
"gapIds": [],
|
|
519
|
+
"deprecationId": null,
|
|
520
|
+
"note": "Error codes registered in C.4 errors.json."
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"id": "openwop.migration.C5.5",
|
|
524
|
+
"child": "C5",
|
|
525
|
+
"kind": "behavior",
|
|
526
|
+
"v1": {
|
|
527
|
+
"surface": "/v1/<op> path keys"
|
|
528
|
+
},
|
|
529
|
+
"v2": {
|
|
530
|
+
"surface": "unversioned /<op> path keys for v2 (v1 keys retained through the overlap)"
|
|
531
|
+
},
|
|
532
|
+
"codemod": null,
|
|
533
|
+
"persistedData": "not-persisted",
|
|
534
|
+
"requirementIds": [],
|
|
535
|
+
"gapIds": [],
|
|
536
|
+
"deprecationId": "openwop.deprecation.v1-path-prefix",
|
|
537
|
+
"note": "No persisted artifact carries a path; a v2 SDK reads the v2 path manifest and the v1 keys stay through the overlap. An obligation on the host, not a rewrite — no codemod (RFC 0167 §D.4)."
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
"id": "openwop.migration.C5.6",
|
|
541
|
+
"child": "C5",
|
|
542
|
+
"kind": "behavior",
|
|
543
|
+
"v1": {
|
|
544
|
+
"surface": "400 for paths under unversioned roots (rest-endpoints.md §Versioning bullet 3)"
|
|
545
|
+
},
|
|
546
|
+
"v2": {
|
|
547
|
+
"surface": "unversioned roots are the v2 surface"
|
|
548
|
+
},
|
|
549
|
+
"codemod": null,
|
|
550
|
+
"persistedData": "not-persisted",
|
|
551
|
+
"requirementIds": [],
|
|
552
|
+
"gapIds": [],
|
|
553
|
+
"deprecationId": null,
|
|
554
|
+
"note": "A v1 MUST inverted in v2 only; retracted, not silently edited."
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"id": "openwop.migration.C5.7",
|
|
558
|
+
"child": "C5",
|
|
559
|
+
"kind": "add",
|
|
560
|
+
"v1": {
|
|
561
|
+
"surface": "$id base https://openwop.dev/spec/v1/"
|
|
562
|
+
},
|
|
563
|
+
"v2": {
|
|
564
|
+
"surface": "$id base https://openwop.dev/spec/v2/ on new files under schemas/v2/"
|
|
565
|
+
},
|
|
566
|
+
"codemod": null,
|
|
567
|
+
"persistedData": "never-upgraded",
|
|
568
|
+
"requirementIds": [],
|
|
569
|
+
"gapIds": [],
|
|
570
|
+
"deprecationId": null,
|
|
571
|
+
"note": "v1 $ids are immutable identifiers; the v1 tree is served read-only."
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"id": "openwop.migration.C5.8",
|
|
575
|
+
"child": "C5",
|
|
576
|
+
"kind": "require",
|
|
577
|
+
"v1": {
|
|
578
|
+
"surface": "minClientVersion advisory"
|
|
579
|
+
},
|
|
580
|
+
"v2": {
|
|
581
|
+
"surface": "minClientVersion MUST (426 client_version_unsupported)"
|
|
582
|
+
},
|
|
583
|
+
"codemod": null,
|
|
584
|
+
"persistedData": "not-persisted",
|
|
585
|
+
"requirementIds": [],
|
|
586
|
+
"gapIds": [],
|
|
587
|
+
"deprecationId": null
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"id": "openwop.migration.C5.9",
|
|
591
|
+
"child": "C5",
|
|
592
|
+
"kind": "behavior",
|
|
593
|
+
"v1": {
|
|
594
|
+
"surface": "OpenAPI/AsyncAPI info.version hand-maintained"
|
|
595
|
+
},
|
|
596
|
+
"v2": {
|
|
597
|
+
"surface": "generated from the corpus tag"
|
|
598
|
+
},
|
|
599
|
+
"codemod": null,
|
|
600
|
+
"persistedData": "not-persisted",
|
|
601
|
+
"requirementIds": [],
|
|
602
|
+
"gapIds": [],
|
|
603
|
+
"deprecationId": null,
|
|
604
|
+
"note": "A generator in the corpus gate, not a consumer artifact rewrite — no codemod (RFC 0167 §D.4)."
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"id": "openwop.migration.C7.1",
|
|
608
|
+
"child": "C7",
|
|
609
|
+
"kind": "behavior",
|
|
610
|
+
"v1": {
|
|
611
|
+
"surface": "prose \"Open spec gaps\" tables in 43 spec/v1 documents"
|
|
612
|
+
},
|
|
613
|
+
"v2": {
|
|
614
|
+
"surface": "rows in spec/v1/gaps.json"
|
|
615
|
+
},
|
|
616
|
+
"codemod": null,
|
|
617
|
+
"persistedData": "not-persisted",
|
|
618
|
+
"requirementIds": [],
|
|
619
|
+
"gapIds": [],
|
|
620
|
+
"deprecationId": null,
|
|
621
|
+
"note": "A generator adapter (RFC 0174 §E.3), not a consumer artifact."
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"id": "openwop.migration.C7.2",
|
|
625
|
+
"child": "C7",
|
|
626
|
+
"kind": "behavior",
|
|
627
|
+
"v1": {
|
|
628
|
+
"surface": "Active → Accepted by README sentence"
|
|
629
|
+
},
|
|
630
|
+
"v2": {
|
|
631
|
+
"surface": "scripts/check-accepted-predicate.mjs"
|
|
632
|
+
},
|
|
633
|
+
"codemod": null,
|
|
634
|
+
"persistedData": "not-persisted",
|
|
635
|
+
"requirementIds": [],
|
|
636
|
+
"gapIds": [],
|
|
637
|
+
"deprecationId": null
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"id": "openwop.migration.C7.3",
|
|
641
|
+
"child": "C7",
|
|
642
|
+
"kind": "behavior",
|
|
643
|
+
"v1": {
|
|
644
|
+
"surface": "registers in two directories; carried:<self> unbounded"
|
|
645
|
+
},
|
|
646
|
+
"v2": {
|
|
647
|
+
"surface": "one directory; self-carry ratcheted and refused where the prose says CLOSED"
|
|
648
|
+
},
|
|
649
|
+
"codemod": null,
|
|
650
|
+
"persistedData": "not-persisted",
|
|
651
|
+
"requirementIds": [],
|
|
652
|
+
"gapIds": [],
|
|
653
|
+
"deprecationId": null
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"id": "openwop.migration.C7.4",
|
|
657
|
+
"child": "C7",
|
|
658
|
+
"kind": "behavior",
|
|
659
|
+
"v1": {
|
|
660
|
+
"surface": "hand-written spec document Status: banners"
|
|
661
|
+
},
|
|
662
|
+
"v2": {
|
|
663
|
+
"surface": "checked (v1.x) then derived (v2) from the owning RFC"
|
|
664
|
+
},
|
|
665
|
+
"codemod": null,
|
|
666
|
+
"persistedData": "not-persisted",
|
|
667
|
+
"requirementIds": [],
|
|
668
|
+
"gapIds": [],
|
|
669
|
+
"deprecationId": null
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"id": "openwop.migration.C11.1",
|
|
673
|
+
"child": "C11",
|
|
674
|
+
"kind": "behavior",
|
|
675
|
+
"v1": {
|
|
676
|
+
"surface": "deprecations.json as an index; Deprecated: annotation informational"
|
|
677
|
+
},
|
|
678
|
+
"v2": {
|
|
679
|
+
"surface": "register generates deprecated:true + x-openwop-remove-in; removal dates enforced at merge"
|
|
680
|
+
},
|
|
681
|
+
"codemod": null,
|
|
682
|
+
"persistedData": "not-persisted",
|
|
683
|
+
"requirementIds": [],
|
|
684
|
+
"gapIds": [],
|
|
685
|
+
"deprecationId": null,
|
|
686
|
+
"note": "A generator, not a consumer artifact rewrite."
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"id": "openwop.migration.C11.2",
|
|
690
|
+
"child": "C11",
|
|
691
|
+
"kind": "rename",
|
|
692
|
+
"v1": {
|
|
693
|
+
"surface": "pack-manifest wire field `deprecated` (advisory version flag)",
|
|
694
|
+
"path": "registry-version-manifest.schema.json#/properties/deprecated"
|
|
695
|
+
},
|
|
696
|
+
"v2": {
|
|
697
|
+
"surface": "`versionDeprecated`"
|
|
698
|
+
},
|
|
699
|
+
"codemod": "openwop.codemod.manifest-version-deprecated",
|
|
700
|
+
"persistedData": "never-upgraded",
|
|
701
|
+
"requirementIds": [],
|
|
702
|
+
"gapIds": [],
|
|
703
|
+
"deprecationId": "openwop.deprecation.manifest-deprecated-field",
|
|
704
|
+
"note": "Signed manifests are immutable; the codemod produces the v2 shape and registry/v2 re-signs or overlays (C.10)."
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"id": "openwop.migration.C11.3",
|
|
708
|
+
"child": "C11",
|
|
709
|
+
"kind": "behavior",
|
|
710
|
+
"v1": {
|
|
711
|
+
"surface": "gaps.json rows witness: unclassified, requirementId: null"
|
|
712
|
+
},
|
|
713
|
+
"v2": {
|
|
714
|
+
"surface": "witness class required; requirementId required on open v2 rows"
|
|
715
|
+
},
|
|
716
|
+
"codemod": null,
|
|
717
|
+
"persistedData": "not-persisted",
|
|
718
|
+
"requirementIds": [],
|
|
719
|
+
"gapIds": [],
|
|
720
|
+
"deprecationId": null
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"id": "openwop.migration.C11.4",
|
|
724
|
+
"child": "C11",
|
|
725
|
+
"kind": "behavior",
|
|
726
|
+
"v1": {
|
|
727
|
+
"surface": "per-RFC G<n> as the register id"
|
|
728
|
+
},
|
|
729
|
+
"v2": {
|
|
730
|
+
"surface": "openwop.gap.<rfc>.<n> as the id; G<n> alias until 2.1"
|
|
731
|
+
},
|
|
732
|
+
"codemod": null,
|
|
733
|
+
"persistedData": "not-persisted",
|
|
734
|
+
"requirementIds": [],
|
|
735
|
+
"gapIds": [],
|
|
736
|
+
"deprecationId": "openwop.deprecation.gap-local-alias"
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
"id": "openwop.migration.C11.5",
|
|
740
|
+
"child": "C11",
|
|
741
|
+
"kind": "behavior",
|
|
742
|
+
"v1": {
|
|
743
|
+
"surface": "falsifiability tables as prose"
|
|
744
|
+
},
|
|
745
|
+
"v2": {
|
|
746
|
+
"surface": "parsed, checked, emitted into gaps.json"
|
|
747
|
+
},
|
|
748
|
+
"codemod": null,
|
|
749
|
+
"persistedData": "not-persisted",
|
|
750
|
+
"requirementIds": [],
|
|
751
|
+
"gapIds": [],
|
|
752
|
+
"deprecationId": null
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"id": "openwop.migration.C11.6",
|
|
756
|
+
"child": "C11",
|
|
757
|
+
"kind": "behavior",
|
|
758
|
+
"v1": {
|
|
759
|
+
"surface": "schemas/README.md maturity column hand-written"
|
|
760
|
+
},
|
|
761
|
+
"v2": {
|
|
762
|
+
"surface": "checked against RFC status (v1.x); generated (v2)"
|
|
763
|
+
},
|
|
764
|
+
"codemod": null,
|
|
765
|
+
"persistedData": "not-persisted",
|
|
766
|
+
"requirementIds": [],
|
|
767
|
+
"gapIds": [],
|
|
768
|
+
"deprecationId": null
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
"id": "openwop.migration.C3.3",
|
|
772
|
+
"child": "C3",
|
|
773
|
+
"kind": "add",
|
|
774
|
+
"v1": {
|
|
775
|
+
"surface": "none (host-internal deny sets)"
|
|
776
|
+
},
|
|
777
|
+
"v2": {
|
|
778
|
+
"surface": "subject-link.schema.json; SubjectLink records with deniedAt"
|
|
779
|
+
},
|
|
780
|
+
"codemod": null,
|
|
781
|
+
"persistedData": "not-persisted",
|
|
782
|
+
"requirementIds": [],
|
|
783
|
+
"gapIds": [],
|
|
784
|
+
"deprecationId": null,
|
|
785
|
+
"note": "No wire artifact existed; host deny sets are re-expressed as records in Phase 4."
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"id": "openwop.migration.C3.4",
|
|
789
|
+
"child": "C3",
|
|
790
|
+
"kind": "add",
|
|
791
|
+
"v1": {
|
|
792
|
+
"surface": "lane enum of 8"
|
|
793
|
+
},
|
|
794
|
+
"v2": {
|
|
795
|
+
"surface": "+ session, anonymous; kind: anonymous ⇔ lane: anonymous"
|
|
796
|
+
},
|
|
797
|
+
"codemod": null,
|
|
798
|
+
"persistedData": "legacy-stamped",
|
|
799
|
+
"requirementIds": [],
|
|
800
|
+
"gapIds": [
|
|
801
|
+
"openwop.gap.0165.6"
|
|
802
|
+
],
|
|
803
|
+
"deprecationId": null,
|
|
804
|
+
"note": "A subject minted with the api-key floor for a session reads back as stamped unless the host attested the lane."
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
"id": "openwop.migration.C3.5",
|
|
808
|
+
"child": "C3",
|
|
809
|
+
"kind": "require",
|
|
810
|
+
"v1": {
|
|
811
|
+
"surface": "305 of 329 id/ref sites unpatterned; runId unconstrained in six response bodies"
|
|
812
|
+
},
|
|
813
|
+
"v2": {
|
|
814
|
+
"surface": "ids.schema.json kinds; tenant-bound where the invariant needs it"
|
|
815
|
+
},
|
|
816
|
+
"codemod": null,
|
|
817
|
+
"persistedData": "translated",
|
|
818
|
+
"requirementIds": [],
|
|
819
|
+
"gapIds": [],
|
|
820
|
+
"deprecationId": null,
|
|
821
|
+
"note": "Ids are minted, not rewritten; a v1 id that fails the v2 grammar is read through the C.9 adapter."
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"id": "openwop.migration.C3.6",
|
|
825
|
+
"child": "C3",
|
|
826
|
+
"kind": "add",
|
|
827
|
+
"v1": {
|
|
828
|
+
"surface": "four handles 'v1.x silent' (memoryRef, workspace path/etag, plugin version token, {{params.*}})"
|
|
829
|
+
},
|
|
830
|
+
"v2": {
|
|
831
|
+
"surface": "one handle grammar with resolvability: run | host | portable"
|
|
832
|
+
},
|
|
833
|
+
"codemod": null,
|
|
834
|
+
"persistedData": "unchanged",
|
|
835
|
+
"requirementIds": [],
|
|
836
|
+
"gapIds": [],
|
|
837
|
+
"deprecationId": null
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"id": "openwop.migration.C3.7",
|
|
841
|
+
"child": "C3",
|
|
842
|
+
"kind": "require",
|
|
843
|
+
"v1": {
|
|
844
|
+
"surface": "Idempotency-Key free-form; L2 retention RECOMMENDED"
|
|
845
|
+
},
|
|
846
|
+
"v2": {
|
|
847
|
+
"surface": "grammar + 128-bit floor + idempotency_key_invalid; L1 ≥ 24h, L2 ≥ 14d MUST"
|
|
848
|
+
},
|
|
849
|
+
"codemod": null,
|
|
850
|
+
"persistedData": "drained",
|
|
851
|
+
"requirementIds": [],
|
|
852
|
+
"gapIds": [],
|
|
853
|
+
"deprecationId": null,
|
|
854
|
+
"note": "Cached v1 keys expire under their own retention."
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"id": "openwop.migration.C3.8",
|
|
858
|
+
"child": "C3",
|
|
859
|
+
"kind": "behavior",
|
|
860
|
+
"v1": {
|
|
861
|
+
"surface": "base64url(payload).mac interrupt token; rotation rule names a nonexistent discriminator"
|
|
862
|
+
},
|
|
863
|
+
"v2": {
|
|
864
|
+
"surface": "ow2.<alg>.<kid>.<payload>.<mac>; v1 tokens resolvable under kid: legacy until expiry"
|
|
865
|
+
},
|
|
866
|
+
"codemod": null,
|
|
867
|
+
"persistedData": "drained",
|
|
868
|
+
"requirementIds": [],
|
|
869
|
+
"gapIds": [],
|
|
870
|
+
"deprecationId": "openwop.deprecation.interrupt-token-unversioned",
|
|
871
|
+
"note": "Tokens are issued, never rewritten; no codemod (RFC 0167 §D.4)."
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
"id": "openwop.migration.C3.9",
|
|
875
|
+
"child": "C3",
|
|
876
|
+
"kind": "behavior",
|
|
877
|
+
"v1": {
|
|
878
|
+
"surface": "trust root named on the wire by 2 of 8 lanes; no revocation MUST"
|
|
879
|
+
},
|
|
880
|
+
"v2": {
|
|
881
|
+
"surface": "every lane advertises { issuers[], revocation, minimumAssurance, delegationProofs[] } and binds through one pipeline"
|
|
882
|
+
},
|
|
883
|
+
"codemod": null,
|
|
884
|
+
"persistedData": "not-persisted",
|
|
885
|
+
"requirementIds": [],
|
|
886
|
+
"gapIds": [],
|
|
887
|
+
"deprecationId": null
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"id": "openwop.migration.C3.10",
|
|
891
|
+
"child": "C3",
|
|
892
|
+
"kind": "behavior",
|
|
893
|
+
"v1": {
|
|
894
|
+
"surface": "RFC 0154 §F six invariants named, unregistered"
|
|
895
|
+
},
|
|
896
|
+
"v2": {
|
|
897
|
+
"surface": "registered with tests at the cut, or demoted"
|
|
898
|
+
},
|
|
899
|
+
"codemod": null,
|
|
900
|
+
"persistedData": "not-persisted",
|
|
901
|
+
"requirementIds": [],
|
|
902
|
+
"gapIds": [],
|
|
903
|
+
"deprecationId": null
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"id": "openwop.migration.C4.9",
|
|
907
|
+
"child": "C4",
|
|
908
|
+
"kind": "require",
|
|
909
|
+
"v1": {
|
|
910
|
+
"surface": "63 of 120 payload defs open (runStarted among them)"
|
|
911
|
+
},
|
|
912
|
+
"v2": {
|
|
913
|
+
"surface": "every payload def closed; _typeIndex normative"
|
|
914
|
+
},
|
|
915
|
+
"codemod": null,
|
|
916
|
+
"persistedData": "translated",
|
|
917
|
+
"requirementIds": [],
|
|
918
|
+
"gapIds": [
|
|
919
|
+
"openwop.gap.0170.1"
|
|
920
|
+
],
|
|
921
|
+
"deprecationId": null,
|
|
922
|
+
"note": "Schema closure; a v1 event with extra keys is read through the C.9 adapter."
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"id": "openwop.migration.C4.10",
|
|
926
|
+
"child": "C4",
|
|
927
|
+
"kind": "add",
|
|
928
|
+
"v1": {
|
|
929
|
+
"surface": "none (42 codes in prose; details a bare object)"
|
|
930
|
+
},
|
|
931
|
+
"v2": {
|
|
932
|
+
"surface": "errors.json; generated envelope with a closed enum and per-code details"
|
|
933
|
+
},
|
|
934
|
+
"codemod": null,
|
|
935
|
+
"persistedData": "not-persisted",
|
|
936
|
+
"requirementIds": [],
|
|
937
|
+
"gapIds": [],
|
|
938
|
+
"deprecationId": null
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"id": "openwop.migration.C4.11",
|
|
942
|
+
"child": "C4",
|
|
943
|
+
"kind": "behavior",
|
|
944
|
+
"v1": {
|
|
945
|
+
"surface": "details.retryAfter / retryAfterMs / retryAfterSeconds beside Retry-After"
|
|
946
|
+
},
|
|
947
|
+
"v2": {
|
|
948
|
+
"surface": "Retry-After only"
|
|
949
|
+
},
|
|
950
|
+
"codemod": null,
|
|
951
|
+
"persistedData": "not-persisted",
|
|
952
|
+
"requirementIds": [],
|
|
953
|
+
"gapIds": [],
|
|
954
|
+
"deprecationId": "openwop.deprecation.error-details-retry-after-spellings",
|
|
955
|
+
"note": "Error responses are not persisted. No codemod."
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"id": "openwop.migration.C4.12",
|
|
959
|
+
"child": "C4",
|
|
960
|
+
"kind": "retype",
|
|
961
|
+
"v1": {
|
|
962
|
+
"surface": "configurable open map: 15 reserved keys, 6 typed, 4 dotted",
|
|
963
|
+
"path": "run-options.schema.json#/$defs/Configurable"
|
|
964
|
+
},
|
|
965
|
+
"v2": {
|
|
966
|
+
"surface": "closed, nested, versioned configurable"
|
|
967
|
+
},
|
|
968
|
+
"codemod": "openwop.codemod.configurable-v2",
|
|
969
|
+
"persistedData": "translated",
|
|
970
|
+
"requirementIds": [],
|
|
971
|
+
"gapIds": [],
|
|
972
|
+
"deprecationId": "openwop.deprecation.configurable-dotted-keys",
|
|
973
|
+
"note": "Persisted run rows carry configurable verbatim; read through the adapter or backfilled."
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"id": "openwop.migration.C4.13",
|
|
977
|
+
"child": "C4",
|
|
978
|
+
"kind": "behavior",
|
|
979
|
+
"v1": {
|
|
980
|
+
"surface": "four AsyncAPI channels on one address + address:null heartbeat"
|
|
981
|
+
},
|
|
982
|
+
"v2": {
|
|
983
|
+
"surface": "one runEvents channel with a typed streamMode; one hostEvents channel with a declared address"
|
|
984
|
+
},
|
|
985
|
+
"codemod": null,
|
|
986
|
+
"persistedData": "not-persisted",
|
|
987
|
+
"requirementIds": [],
|
|
988
|
+
"gapIds": [],
|
|
989
|
+
"deprecationId": null
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
"id": "openwop.migration.C4.14",
|
|
993
|
+
"child": "C4",
|
|
994
|
+
"kind": "behavior",
|
|
995
|
+
"v1": {
|
|
996
|
+
"surface": "poll response {runId, events, lastEventSeq, runStatus, isTerminal} (prose) vs {events, isComplete} (OpenAPI)"
|
|
997
|
+
},
|
|
998
|
+
"v2": {
|
|
999
|
+
"surface": "{ runId, events, lastSequence, status, isTerminal } from one definition"
|
|
1000
|
+
},
|
|
1001
|
+
"codemod": null,
|
|
1002
|
+
"persistedData": "not-persisted",
|
|
1003
|
+
"requirementIds": [],
|
|
1004
|
+
"gapIds": [],
|
|
1005
|
+
"deprecationId": null,
|
|
1006
|
+
"note": "A response shape, generated; no consumer artifact rewrite (RFC 0167 §D.4)."
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
"id": "openwop.migration.C4.15",
|
|
1010
|
+
"child": "C4",
|
|
1011
|
+
"kind": "add",
|
|
1012
|
+
"v1": {
|
|
1013
|
+
"surface": "none"
|
|
1014
|
+
},
|
|
1015
|
+
"v2": {
|
|
1016
|
+
"surface": "the closed-enum growth rule (RFC 0171 §A.5)"
|
|
1017
|
+
},
|
|
1018
|
+
"codemod": null,
|
|
1019
|
+
"persistedData": "not-persisted",
|
|
1020
|
+
"requirementIds": [],
|
|
1021
|
+
"gapIds": [],
|
|
1022
|
+
"deprecationId": null
|
|
1023
|
+
},
|
|
1024
|
+
{
|
|
1025
|
+
"id": "openwop.migration.C4.16",
|
|
1026
|
+
"child": "C4",
|
|
1027
|
+
"kind": "require",
|
|
1028
|
+
"v1": {
|
|
1029
|
+
"surface": "meta.source SHOULD; vendor kinds RECOMMENDED; correlationId synthesized"
|
|
1030
|
+
},
|
|
1031
|
+
"v2": {
|
|
1032
|
+
"surface": "meta.source required; <org>. kinds required; correlationId required"
|
|
1033
|
+
},
|
|
1034
|
+
"codemod": null,
|
|
1035
|
+
"persistedData": "translated",
|
|
1036
|
+
"requirementIds": [],
|
|
1037
|
+
"gapIds": [],
|
|
1038
|
+
"deprecationId": null,
|
|
1039
|
+
"note": "Envelopes are transient; a persisted envelope.* event is read through the adapter."
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
"id": "openwop.migration.C6.1",
|
|
1043
|
+
"child": "C6",
|
|
1044
|
+
"kind": "behavior",
|
|
1045
|
+
"v1": {
|
|
1046
|
+
"surface": "fourteen auth.* gate flags (rotation, oauth2, oidc, mtls incl. mtls.required, saml/scim/ldap profile strings, subjectLinking/subjectLinkKey, workloadIdentity.senderConstraint, delegation)"
|
|
1047
|
+
},
|
|
1048
|
+
"v2": {
|
|
1049
|
+
"surface": "obligations of the lane; auth.lanes[] facets (RFC 0170)"
|
|
1050
|
+
},
|
|
1051
|
+
"codemod": null,
|
|
1052
|
+
"persistedData": "not-persisted",
|
|
1053
|
+
"requirementIds": [],
|
|
1054
|
+
"gapIds": [],
|
|
1055
|
+
"deprecationId": "openwop.deprecation.security-opt-in-flags"
|
|
1056
|
+
},
|
|
1057
|
+
{
|
|
1058
|
+
"id": "openwop.migration.C6.2",
|
|
1059
|
+
"child": "C6",
|
|
1060
|
+
"kind": "behavior",
|
|
1061
|
+
"v1": {
|
|
1062
|
+
"surface": "replay.sideEffectSuppression: none | recorded-outcome"
|
|
1063
|
+
},
|
|
1064
|
+
"v2": {
|
|
1065
|
+
"surface": "suppression is the only replay behavior; the effect-seam manifest is the witness"
|
|
1066
|
+
},
|
|
1067
|
+
"codemod": null,
|
|
1068
|
+
"persistedData": "not-persisted",
|
|
1069
|
+
"requirementIds": [],
|
|
1070
|
+
"gapIds": [],
|
|
1071
|
+
"deprecationId": "openwop.deprecation.security-opt-in-flags"
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"id": "openwop.migration.C6.3",
|
|
1075
|
+
"child": "C6",
|
|
1076
|
+
"kind": "behavior",
|
|
1077
|
+
"v1": {
|
|
1078
|
+
"surface": "webhooks.durable opt-in; best-effort default"
|
|
1079
|
+
},
|
|
1080
|
+
"v2": {
|
|
1081
|
+
"surface": "durable delivery binds with webhooks"
|
|
1082
|
+
},
|
|
1083
|
+
"codemod": null,
|
|
1084
|
+
"persistedData": "not-persisted",
|
|
1085
|
+
"requirementIds": [],
|
|
1086
|
+
"gapIds": [],
|
|
1087
|
+
"deprecationId": "openwop.deprecation.security-opt-in-flags",
|
|
1088
|
+
"note": "Undelivered v1 best-effort deliveries are gone; nothing to translate."
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
"id": "openwop.migration.C6.4",
|
|
1092
|
+
"child": "C6",
|
|
1093
|
+
"kind": "behavior",
|
|
1094
|
+
"v1": {
|
|
1095
|
+
"surface": "interrupt.approverRouting gate; approversList advisory"
|
|
1096
|
+
},
|
|
1097
|
+
"v2": {
|
|
1098
|
+
"surface": "enforcement binds with the fields; refKinds[] stays a facet"
|
|
1099
|
+
},
|
|
1100
|
+
"codemod": null,
|
|
1101
|
+
"persistedData": "not-persisted",
|
|
1102
|
+
"requirementIds": [],
|
|
1103
|
+
"gapIds": [],
|
|
1104
|
+
"deprecationId": "openwop.deprecation.security-opt-in-flags"
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"id": "openwop.migration.C6.5",
|
|
1108
|
+
"child": "C6",
|
|
1109
|
+
"kind": "behavior",
|
|
1110
|
+
"v1": {
|
|
1111
|
+
"surface": "sandbox.supported gate; eight invariants nobody provides; node:vm demonstrator"
|
|
1112
|
+
},
|
|
1113
|
+
"v2": {
|
|
1114
|
+
"surface": "isolation binds with pack execution; isolationModel names the mechanism; node:vm not a value"
|
|
1115
|
+
},
|
|
1116
|
+
"codemod": null,
|
|
1117
|
+
"persistedData": "not-persisted",
|
|
1118
|
+
"requirementIds": [],
|
|
1119
|
+
"gapIds": [],
|
|
1120
|
+
"deprecationId": "openwop.deprecation.security-opt-in-flags"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"id": "openwop.migration.C6.6",
|
|
1124
|
+
"child": "C6",
|
|
1125
|
+
"kind": "behavior",
|
|
1126
|
+
"v1": {
|
|
1127
|
+
"surface": "compensation.supported opt-in with seam-only evidence"
|
|
1128
|
+
},
|
|
1129
|
+
"v2": {
|
|
1130
|
+
"surface": "core obligation with GET /v1/runs/{runId}/compensation and the operator family as wire"
|
|
1131
|
+
},
|
|
1132
|
+
"codemod": null,
|
|
1133
|
+
"persistedData": "unchanged",
|
|
1134
|
+
"requirementIds": [],
|
|
1135
|
+
"gapIds": [],
|
|
1136
|
+
"deprecationId": null,
|
|
1137
|
+
"note": "Plans and attempts persisted under v1 keep their shape; the read projection is new."
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"id": "openwop.migration.C6.7",
|
|
1141
|
+
"child": "C6",
|
|
1142
|
+
"kind": "behavior",
|
|
1143
|
+
"v1": {
|
|
1144
|
+
"surface": "Layer 2 effect identity: unimplemented activity recipe"
|
|
1145
|
+
},
|
|
1146
|
+
"v2": {
|
|
1147
|
+
"surface": "business-identity keying as the core obligation; activity recipe as fallback; GET /v1/runs/{runId}/effects"
|
|
1148
|
+
},
|
|
1149
|
+
"codemod": null,
|
|
1150
|
+
"persistedData": "not-persisted",
|
|
1151
|
+
"requirementIds": [],
|
|
1152
|
+
"gapIds": [],
|
|
1153
|
+
"deprecationId": null,
|
|
1154
|
+
"note": "No host persists a v1 recipe key (docs/EFFECT-IDENTITY-V1-INVENTORY.md:29)."
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"id": "openwop.migration.C6.8",
|
|
1158
|
+
"child": "C6",
|
|
1159
|
+
"kind": "add",
|
|
1160
|
+
"v1": {
|
|
1161
|
+
"surface": "none"
|
|
1162
|
+
},
|
|
1163
|
+
"v2": {
|
|
1164
|
+
"surface": "operator relaxations with a durability class in bundle v3 host.relaxations[]"
|
|
1165
|
+
},
|
|
1166
|
+
"codemod": null,
|
|
1167
|
+
"persistedData": "not-persisted",
|
|
1168
|
+
"requirementIds": [],
|
|
1169
|
+
"gapIds": [],
|
|
1170
|
+
"deprecationId": null
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"id": "openwop.migration.C6.9",
|
|
1174
|
+
"child": "C6",
|
|
1175
|
+
"kind": "add",
|
|
1176
|
+
"v1": {
|
|
1177
|
+
"surface": "five-section replay threat model; no interop threat model"
|
|
1178
|
+
},
|
|
1179
|
+
"v2": {
|
|
1180
|
+
"surface": "sibling sections §6–§8; SECURITY/threat-model-interop.md (C.8)"
|
|
1181
|
+
},
|
|
1182
|
+
"codemod": null,
|
|
1183
|
+
"persistedData": "not-persisted",
|
|
1184
|
+
"requirementIds": [],
|
|
1185
|
+
"gapIds": [],
|
|
1186
|
+
"deprecationId": null
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"id": "openwop.migration.C8.2",
|
|
1190
|
+
"child": "C8",
|
|
1191
|
+
"kind": "remove",
|
|
1192
|
+
"v1": {
|
|
1193
|
+
"surface": "supportedTransports[]",
|
|
1194
|
+
"path": "/.well-known/openwop#/supportedTransports"
|
|
1195
|
+
},
|
|
1196
|
+
"v2": {
|
|
1197
|
+
"surface": "none — REST is the wire; A2A/MCP are facets"
|
|
1198
|
+
},
|
|
1199
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
1200
|
+
"persistedData": "not-persisted",
|
|
1201
|
+
"requirementIds": [],
|
|
1202
|
+
"gapIds": [],
|
|
1203
|
+
"deprecationId": "openwop.deprecation.supported-transports-field"
|
|
1204
|
+
},
|
|
1205
|
+
{
|
|
1206
|
+
"id": "openwop.migration.C8.3",
|
|
1207
|
+
"child": "C8",
|
|
1208
|
+
"kind": "remove",
|
|
1209
|
+
"v1": {
|
|
1210
|
+
"surface": "capabilities.grpc block; grpc-transport.md in core",
|
|
1211
|
+
"path": "/.well-known/openwop#/grpc"
|
|
1212
|
+
},
|
|
1213
|
+
"v2": {
|
|
1214
|
+
"surface": "spec/v2/ext/grpc-transport/ (unwitnessable, adoption none); block not advertisable"
|
|
1215
|
+
},
|
|
1216
|
+
"codemod": "openwop.codemod.discovery-document-v2",
|
|
1217
|
+
"persistedData": "not-persisted",
|
|
1218
|
+
"requirementIds": [],
|
|
1219
|
+
"gapIds": [],
|
|
1220
|
+
"deprecationId": "openwop.deprecation.grpc-transport-core"
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
"id": "openwop.migration.C8.4",
|
|
1224
|
+
"child": "C8",
|
|
1225
|
+
"kind": "add",
|
|
1226
|
+
"v1": {
|
|
1227
|
+
"surface": "none"
|
|
1228
|
+
},
|
|
1229
|
+
"v2": {
|
|
1230
|
+
"surface": "a2a.minimumVersion, mcp.minimumRevision, refreshedAt"
|
|
1231
|
+
},
|
|
1232
|
+
"codemod": null,
|
|
1233
|
+
"persistedData": "not-persisted",
|
|
1234
|
+
"requirementIds": [],
|
|
1235
|
+
"gapIds": [],
|
|
1236
|
+
"deprecationId": null
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
"id": "openwop.migration.C8.5",
|
|
1240
|
+
"child": "C8",
|
|
1241
|
+
"kind": "add",
|
|
1242
|
+
"v1": {
|
|
1243
|
+
"surface": "authorization.decided as the recommended carrier"
|
|
1244
|
+
},
|
|
1245
|
+
"v2": {
|
|
1246
|
+
"surface": "negotiation.decided event type"
|
|
1247
|
+
},
|
|
1248
|
+
"codemod": null,
|
|
1249
|
+
"persistedData": "not-persisted",
|
|
1250
|
+
"requirementIds": [],
|
|
1251
|
+
"gapIds": [],
|
|
1252
|
+
"deprecationId": null,
|
|
1253
|
+
"note": "A new event; v1 logs carry none."
|
|
1254
|
+
},
|
|
1255
|
+
{
|
|
1256
|
+
"id": "openwop.migration.C8.6",
|
|
1257
|
+
"child": "C8",
|
|
1258
|
+
"kind": "behavior",
|
|
1259
|
+
"v1": {
|
|
1260
|
+
"surface": "negotiation fail-closed only for authenticated requests; no floor; no SLA"
|
|
1261
|
+
},
|
|
1262
|
+
"v2": {
|
|
1263
|
+
"surface": "authenticated exchange, advertised floor, 90-day refresh SLA"
|
|
1264
|
+
},
|
|
1265
|
+
"codemod": null,
|
|
1266
|
+
"persistedData": "not-persisted",
|
|
1267
|
+
"requirementIds": [],
|
|
1268
|
+
"gapIds": [],
|
|
1269
|
+
"deprecationId": null
|
|
1270
|
+
},
|
|
1271
|
+
{
|
|
1272
|
+
"id": "openwop.migration.C8.7",
|
|
1273
|
+
"child": "C8",
|
|
1274
|
+
"kind": "add",
|
|
1275
|
+
"v1": {
|
|
1276
|
+
"surface": "\"the host MUST bound the number of rounds (host policy)\""
|
|
1277
|
+
},
|
|
1278
|
+
"v2": {
|
|
1279
|
+
"surface": "mcp.mrtr.maxRounds + mcp_mrtr_rounds_exceeded"
|
|
1280
|
+
},
|
|
1281
|
+
"codemod": null,
|
|
1282
|
+
"persistedData": "not-persisted",
|
|
1283
|
+
"requirementIds": [],
|
|
1284
|
+
"gapIds": [],
|
|
1285
|
+
"deprecationId": null
|
|
1286
|
+
},
|
|
1287
|
+
{
|
|
1288
|
+
"id": "openwop.migration.C8.8",
|
|
1289
|
+
"child": "C8",
|
|
1290
|
+
"kind": "behavior",
|
|
1291
|
+
"v1": {
|
|
1292
|
+
"surface": "auth-required never emitted forward; RFC 0100 UQ4 open"
|
|
1293
|
+
},
|
|
1294
|
+
"v2": {
|
|
1295
|
+
"surface": "decided: stays reverse-only; no v2 auth interrupt kind"
|
|
1296
|
+
},
|
|
1297
|
+
"codemod": null,
|
|
1298
|
+
"persistedData": "unchanged",
|
|
1299
|
+
"requirementIds": [],
|
|
1300
|
+
"gapIds": [],
|
|
1301
|
+
"deprecationId": null,
|
|
1302
|
+
"note": "Persisted A2ATaskState rows keep the enum member."
|
|
1303
|
+
},
|
|
1304
|
+
{
|
|
1305
|
+
"id": "openwop.migration.C9.2",
|
|
1306
|
+
"child": "C9",
|
|
1307
|
+
"kind": "require",
|
|
1308
|
+
"v1": {
|
|
1309
|
+
"surface": "eventLogSchemaVersion 'MUST carry' with value 2; not persisted by openwop-app; two constants on MyndHyve"
|
|
1310
|
+
},
|
|
1311
|
+
"v2": {
|
|
1312
|
+
"surface": "required on every run document; absent ⇒ 2; v2 writes 3; one constant per host"
|
|
1313
|
+
},
|
|
1314
|
+
"codemod": null,
|
|
1315
|
+
"persistedData": "legacy-stamped",
|
|
1316
|
+
"requirementIds": [],
|
|
1317
|
+
"gapIds": [],
|
|
1318
|
+
"deprecationId": null
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"id": "openwop.migration.C9.3",
|
|
1322
|
+
"child": "C9",
|
|
1323
|
+
"kind": "behavior",
|
|
1324
|
+
"v1": {
|
|
1325
|
+
"surface": "tolerant reader (unknown type passed through; malformed sequence ⇒ 0)"
|
|
1326
|
+
},
|
|
1327
|
+
"v2": {
|
|
1328
|
+
"surface": "event_type_unmapped fails the read; malformed rows fail the read"
|
|
1329
|
+
},
|
|
1330
|
+
"codemod": null,
|
|
1331
|
+
"persistedData": "translated",
|
|
1332
|
+
"requirementIds": [],
|
|
1333
|
+
"gapIds": [],
|
|
1334
|
+
"deprecationId": null
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"id": "openwop.migration.C9.4",
|
|
1338
|
+
"child": "C9",
|
|
1339
|
+
"kind": "behavior",
|
|
1340
|
+
"v1": {
|
|
1341
|
+
"surface": "pinned runs: 'drain or migrate before raising min' (V5)"
|
|
1342
|
+
},
|
|
1343
|
+
"v2": {
|
|
1344
|
+
"surface": "continue under the adapter when the pin is implemented; else run.cancelled v1_pin_unsupported / cancelledBy: v2-cutover"
|
|
1345
|
+
},
|
|
1346
|
+
"codemod": null,
|
|
1347
|
+
"persistedData": "drained",
|
|
1348
|
+
"requirementIds": [],
|
|
1349
|
+
"gapIds": [],
|
|
1350
|
+
"deprecationId": null
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
"id": "openwop.migration.C9.5",
|
|
1354
|
+
"child": "C9",
|
|
1355
|
+
"kind": "add",
|
|
1356
|
+
"v1": {
|
|
1357
|
+
"surface": "none"
|
|
1358
|
+
},
|
|
1359
|
+
"v2": {
|
|
1360
|
+
"surface": "run.cancelled reason v1_pin_unsupported; cancelledBy: \"v2-cutover\""
|
|
1361
|
+
},
|
|
1362
|
+
"codemod": null,
|
|
1363
|
+
"persistedData": "not-persisted",
|
|
1364
|
+
"requirementIds": [],
|
|
1365
|
+
"gapIds": [],
|
|
1366
|
+
"deprecationId": null
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
"id": "openwop.migration.C9.6",
|
|
1370
|
+
"child": "C9",
|
|
1371
|
+
"kind": "behavior",
|
|
1372
|
+
"v1": {
|
|
1373
|
+
"surface": "root + wrapper + dotted mirror emitted from one function, no end date"
|
|
1374
|
+
},
|
|
1375
|
+
"v2": {
|
|
1376
|
+
"surface": "one resource, header-selected representation; wrapper/mirror/Capabilities-Etag absent from v2 at the cut, removed from v1 at end-of-support"
|
|
1377
|
+
},
|
|
1378
|
+
"codemod": "openwop.codemod.capabilities-wrapper-removal",
|
|
1379
|
+
"persistedData": "not-persisted",
|
|
1380
|
+
"requirementIds": [],
|
|
1381
|
+
"gapIds": [],
|
|
1382
|
+
"deprecationId": "openwop.deprecation.capabilities-wrapper"
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
"id": "openwop.migration.C9.7",
|
|
1386
|
+
"child": "C9",
|
|
1387
|
+
"kind": "behavior",
|
|
1388
|
+
"v1": {
|
|
1389
|
+
"surface": "/.well-known/wop served byte-identically (MyndHyve)"
|
|
1390
|
+
},
|
|
1391
|
+
"v2": {
|
|
1392
|
+
"surface": "removed at v1 end-of-support"
|
|
1393
|
+
},
|
|
1394
|
+
"codemod": null,
|
|
1395
|
+
"persistedData": "not-persisted",
|
|
1396
|
+
"requirementIds": [],
|
|
1397
|
+
"gapIds": [],
|
|
1398
|
+
"deprecationId": "openwop.deprecation.well-known-wop-alias"
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
"id": "openwop.migration.C9.8",
|
|
1402
|
+
"child": "C9",
|
|
1403
|
+
"kind": "behavior",
|
|
1404
|
+
"v1": {
|
|
1405
|
+
"surface": "v1 certification bundles"
|
|
1406
|
+
},
|
|
1407
|
+
"v2": {
|
|
1408
|
+
"surface": "never upgraded; evidence for v1 only; fresh v2-rc bundle per host"
|
|
1409
|
+
},
|
|
1410
|
+
"codemod": null,
|
|
1411
|
+
"persistedData": "never-upgraded",
|
|
1412
|
+
"requirementIds": [],
|
|
1413
|
+
"gapIds": [],
|
|
1414
|
+
"deprecationId": "openwop.deprecation.certification-bundle-v1"
|
|
1415
|
+
},
|
|
1416
|
+
{
|
|
1417
|
+
"id": "openwop.migration.C9.9",
|
|
1418
|
+
"child": "C9",
|
|
1419
|
+
"kind": "behavior",
|
|
1420
|
+
"v1": {
|
|
1421
|
+
"surface": "dual webhook emission SHOULD; receiver acceptance SHOULD"
|
|
1422
|
+
},
|
|
1423
|
+
"v2": {
|
|
1424
|
+
"surface": "MUST through the overlap; v2 receiver MUST accept v1-signed; queued deliveries drained as serialized"
|
|
1425
|
+
},
|
|
1426
|
+
"codemod": null,
|
|
1427
|
+
"persistedData": "drained",
|
|
1428
|
+
"requirementIds": [],
|
|
1429
|
+
"gapIds": [],
|
|
1430
|
+
"deprecationId": "openwop.deprecation.webhook-x-header-family"
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"id": "openwop.migration.C9.10",
|
|
1434
|
+
"child": "C9",
|
|
1435
|
+
"kind": "behavior",
|
|
1436
|
+
"v1": {
|
|
1437
|
+
"surface": "Layer-1/Layer-2/outbox/correlation tables"
|
|
1438
|
+
},
|
|
1439
|
+
"v2": {
|
|
1440
|
+
"surface": "unchanged; new read projections (RFC 0173 §C)"
|
|
1441
|
+
},
|
|
1442
|
+
"codemod": null,
|
|
1443
|
+
"persistedData": "unchanged",
|
|
1444
|
+
"requirementIds": [],
|
|
1445
|
+
"gapIds": [],
|
|
1446
|
+
"deprecationId": null
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
"id": "openwop.migration.C9.11",
|
|
1450
|
+
"child": "C9",
|
|
1451
|
+
"kind": "behavior",
|
|
1452
|
+
"v1": {
|
|
1453
|
+
"surface": "openwop-app owner stamp metadata.principalKind + metadata.anonPrincipal (RFC 0170 said metadata.owner)"
|
|
1454
|
+
},
|
|
1455
|
+
"v2": {
|
|
1456
|
+
"surface": "projected to the Subject; pre-stamp rows legacy-stamped at first v2 read"
|
|
1457
|
+
},
|
|
1458
|
+
"codemod": null,
|
|
1459
|
+
"persistedData": "legacy-stamped",
|
|
1460
|
+
"requirementIds": [],
|
|
1461
|
+
"gapIds": [],
|
|
1462
|
+
"deprecationId": null
|
|
1463
|
+
},
|
|
1464
|
+
{
|
|
1465
|
+
"id": "openwop.migration.C9.12",
|
|
1466
|
+
"child": "C9",
|
|
1467
|
+
"kind": "require",
|
|
1468
|
+
"v1": {
|
|
1469
|
+
"surface": "vendored corpus synced from a sibling HEAD or main"
|
|
1470
|
+
},
|
|
1471
|
+
"v2": {
|
|
1472
|
+
"surface": "pinned to a published tag; v1.x consumers never vendor schemas/v2/"
|
|
1473
|
+
},
|
|
1474
|
+
"codemod": null,
|
|
1475
|
+
"persistedData": "not-persisted",
|
|
1476
|
+
"requirementIds": [],
|
|
1477
|
+
"gapIds": [],
|
|
1478
|
+
"deprecationId": null
|
|
1479
|
+
},
|
|
1480
|
+
{
|
|
1481
|
+
"id": "openwop.migration.C10.4",
|
|
1482
|
+
"child": "C10",
|
|
1483
|
+
"kind": "behavior",
|
|
1484
|
+
"v1": {
|
|
1485
|
+
"surface": "engines.openwop free string; absent ceiling read as open"
|
|
1486
|
+
},
|
|
1487
|
+
"v2": {
|
|
1488
|
+
"surface": "absent ceiling ⇒ <2.0.0; pack_engine_unsupported at install on every path; explicit upper bound required"
|
|
1489
|
+
},
|
|
1490
|
+
"codemod": null,
|
|
1491
|
+
"persistedData": "never-upgraded",
|
|
1492
|
+
"requirementIds": [],
|
|
1493
|
+
"gapIds": [],
|
|
1494
|
+
"deprecationId": "openwop.deprecation.engines-absent-ceiling",
|
|
1495
|
+
"note": "The codemod refuses a manifest with no v2-satisfiable range; the author declares."
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"id": "openwop.migration.C10.5",
|
|
1499
|
+
"child": "C10",
|
|
1500
|
+
"kind": "add",
|
|
1501
|
+
"v1": {
|
|
1502
|
+
"surface": "one tree registry/v1/"
|
|
1503
|
+
},
|
|
1504
|
+
"v2": {
|
|
1505
|
+
"surface": "registry/v2/ parallel tree; endpoints names both"
|
|
1506
|
+
},
|
|
1507
|
+
"codemod": null,
|
|
1508
|
+
"persistedData": "never-upgraded",
|
|
1509
|
+
"requirementIds": [],
|
|
1510
|
+
"gapIds": [],
|
|
1511
|
+
"deprecationId": null
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"id": "openwop.migration.C10.6",
|
|
1515
|
+
"child": "C10",
|
|
1516
|
+
"kind": "rename",
|
|
1517
|
+
"v1": {
|
|
1518
|
+
"surface": "four peer-dependency grammars (host.* dotted, bare, openwop.*, facet paths)"
|
|
1519
|
+
},
|
|
1520
|
+
"v2": {
|
|
1521
|
+
"surface": "declaration-file keys; peerDependenciesMeta.<family>.facets[]; alias table with v1-end-of-support removal"
|
|
1522
|
+
},
|
|
1523
|
+
"codemod": "openwop.codemod.pack-manifest-v2",
|
|
1524
|
+
"persistedData": "never-upgraded",
|
|
1525
|
+
"requirementIds": [],
|
|
1526
|
+
"gapIds": [],
|
|
1527
|
+
"deprecationId": "openwop.deprecation.pack-peer-dependency-aliases"
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
"id": "openwop.migration.C10.7",
|
|
1531
|
+
"child": "C10",
|
|
1532
|
+
"kind": "unify",
|
|
1533
|
+
"v1": {
|
|
1534
|
+
"surface": "signing.method: manual | ed25519 | sigstore (two byte conventions)"
|
|
1535
|
+
},
|
|
1536
|
+
"v2": {
|
|
1537
|
+
"surface": "signing.scheme: ed25519-canonical-json"
|
|
1538
|
+
},
|
|
1539
|
+
"codemod": "openwop.codemod.pack-manifest-v2",
|
|
1540
|
+
"persistedData": "never-upgraded",
|
|
1541
|
+
"requirementIds": [],
|
|
1542
|
+
"gapIds": [],
|
|
1543
|
+
"deprecationId": "openwop.deprecation.manifest-signing-method",
|
|
1544
|
+
"note": "Refuses ed25519-over-tarball and sigstore: a re-sign, not a rewrite."
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
"id": "openwop.migration.C10.8",
|
|
1548
|
+
"child": "C10",
|
|
1549
|
+
"kind": "require",
|
|
1550
|
+
"v1": {
|
|
1551
|
+
"surface": "kind absent ≡ node (131 of 282)"
|
|
1552
|
+
},
|
|
1553
|
+
"v2": {
|
|
1554
|
+
"surface": "kind required"
|
|
1555
|
+
},
|
|
1556
|
+
"codemod": "openwop.codemod.pack-manifest-v2",
|
|
1557
|
+
"persistedData": "never-upgraded",
|
|
1558
|
+
"requirementIds": [],
|
|
1559
|
+
"gapIds": [],
|
|
1560
|
+
"deprecationId": null
|
|
1561
|
+
},
|
|
1562
|
+
{
|
|
1563
|
+
"id": "openwop.migration.C10.9",
|
|
1564
|
+
"child": "C10",
|
|
1565
|
+
"kind": "behavior",
|
|
1566
|
+
"v1": {
|
|
1567
|
+
"surface": "13 schema $ids under /spec/v1/; hatch on 10"
|
|
1568
|
+
},
|
|
1569
|
+
"v2": {
|
|
1570
|
+
"surface": "$ids under /spec/v2/; hatch on every pack-authored document"
|
|
1571
|
+
},
|
|
1572
|
+
"codemod": null,
|
|
1573
|
+
"persistedData": "not-persisted",
|
|
1574
|
+
"requirementIds": [],
|
|
1575
|
+
"gapIds": [],
|
|
1576
|
+
"deprecationId": null
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
"id": "openwop.migration.C10.10",
|
|
1580
|
+
"child": "C10",
|
|
1581
|
+
"kind": "behavior",
|
|
1582
|
+
"v1": {
|
|
1583
|
+
"surface": "clause 6 version precedence"
|
|
1584
|
+
},
|
|
1585
|
+
"v2": {
|
|
1586
|
+
"surface": "connection_provider_conflict fail-closed; <packName>#<id> qualified form"
|
|
1587
|
+
},
|
|
1588
|
+
"codemod": null,
|
|
1589
|
+
"persistedData": "not-persisted",
|
|
1590
|
+
"requirementIds": [],
|
|
1591
|
+
"gapIds": [],
|
|
1592
|
+
"deprecationId": "openwop.deprecation.connection-provider-version-precedence"
|
|
1593
|
+
},
|
|
1594
|
+
{
|
|
1595
|
+
"id": "openwop.migration.C10.11",
|
|
1596
|
+
"child": "C10",
|
|
1597
|
+
"kind": "add",
|
|
1598
|
+
"v1": {
|
|
1599
|
+
"surface": "none"
|
|
1600
|
+
},
|
|
1601
|
+
"v2": {
|
|
1602
|
+
"surface": "form-content when: <EdgeCondition>, localized strings, minLength/min/max/pattern"
|
|
1603
|
+
},
|
|
1604
|
+
"codemod": null,
|
|
1605
|
+
"persistedData": "not-persisted",
|
|
1606
|
+
"requirementIds": [],
|
|
1607
|
+
"gapIds": [],
|
|
1608
|
+
"deprecationId": null
|
|
1609
|
+
},
|
|
1610
|
+
{
|
|
1611
|
+
"id": "openwop.migration.C10.12",
|
|
1612
|
+
"child": "C10",
|
|
1613
|
+
"kind": "require",
|
|
1614
|
+
"v1": {
|
|
1615
|
+
"surface": "chain reference pin RECOMMENDED"
|
|
1616
|
+
},
|
|
1617
|
+
"v2": {
|
|
1618
|
+
"surface": "exact version per typeId MUST"
|
|
1619
|
+
},
|
|
1620
|
+
"codemod": null,
|
|
1621
|
+
"persistedData": "unchanged",
|
|
1622
|
+
"requirementIds": [],
|
|
1623
|
+
"gapIds": [],
|
|
1624
|
+
"deprecationId": null,
|
|
1625
|
+
"note": "135 chain manifests already pin."
|
|
1626
|
+
},
|
|
1627
|
+
{
|
|
1628
|
+
"id": "openwop.migration.C10.13",
|
|
1629
|
+
"child": "C10",
|
|
1630
|
+
"kind": "behavior",
|
|
1631
|
+
"v1": {
|
|
1632
|
+
"surface": "child ownership lifecycle open (WCP5)"
|
|
1633
|
+
},
|
|
1634
|
+
"v2": {
|
|
1635
|
+
"surface": "reference-counted by deterministic id; ownership record persists the resolved version"
|
|
1636
|
+
},
|
|
1637
|
+
"codemod": null,
|
|
1638
|
+
"persistedData": "unchanged",
|
|
1639
|
+
"requirementIds": [],
|
|
1640
|
+
"gapIds": [],
|
|
1641
|
+
"deprecationId": null
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
"id": "openwop.migration.C10.14",
|
|
1645
|
+
"child": "C10",
|
|
1646
|
+
"kind": "behavior",
|
|
1647
|
+
"v1": {
|
|
1648
|
+
"surface": "registry /v1/ on five of six endpoints"
|
|
1649
|
+
},
|
|
1650
|
+
"v2": {
|
|
1651
|
+
"surface": "versioned by tree; endpoints is the negotiation; publicKey unversioned by design"
|
|
1652
|
+
},
|
|
1653
|
+
"codemod": null,
|
|
1654
|
+
"persistedData": "not-persisted",
|
|
1655
|
+
"requirementIds": [],
|
|
1656
|
+
"gapIds": [],
|
|
1657
|
+
"deprecationId": null
|
|
1658
|
+
},
|
|
1659
|
+
{
|
|
1660
|
+
"id": "openwop.migration.C10.15",
|
|
1661
|
+
"child": "C10",
|
|
1662
|
+
"kind": "require",
|
|
1663
|
+
"v1": {
|
|
1664
|
+
"surface": "registry vendored schemas unpinned, 7 of 13 drifted"
|
|
1665
|
+
},
|
|
1666
|
+
"v2": {
|
|
1667
|
+
"surface": "pinned to a tag; re-synced before any v2 publication"
|
|
1668
|
+
},
|
|
1669
|
+
"codemod": null,
|
|
1670
|
+
"persistedData": "not-persisted",
|
|
1671
|
+
"requirementIds": [],
|
|
1672
|
+
"gapIds": [],
|
|
1673
|
+
"deprecationId": null
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
"id": "openwop.migration.C1.2",
|
|
1677
|
+
"child": "C1",
|
|
1678
|
+
"kind": "require",
|
|
1679
|
+
"v1": {
|
|
1680
|
+
"surface": "driver.describe(...) citations; ids derived from titles; explicitIds: 0"
|
|
1681
|
+
},
|
|
1682
|
+
"v2": {
|
|
1683
|
+
"surface": "req() the only form; ids explicit; reword without alias fails CI"
|
|
1684
|
+
},
|
|
1685
|
+
"codemod": null,
|
|
1686
|
+
"persistedData": "not-persisted",
|
|
1687
|
+
"requirementIds": [],
|
|
1688
|
+
"gapIds": [],
|
|
1689
|
+
"deprecationId": null
|
|
1690
|
+
},
|
|
1691
|
+
{
|
|
1692
|
+
"id": "openwop.migration.C1.3",
|
|
1693
|
+
"child": "C1",
|
|
1694
|
+
"kind": "require",
|
|
1695
|
+
"v1": {
|
|
1696
|
+
"surface": "witness on extensions and invariants only"
|
|
1697
|
+
},
|
|
1698
|
+
"v2": {
|
|
1699
|
+
"surface": "witness required on every family, requirement and invariant; unwitnessable needs rationale; protocol-tier unwitnessable fails"
|
|
1700
|
+
},
|
|
1701
|
+
"codemod": null,
|
|
1702
|
+
"persistedData": "not-persisted",
|
|
1703
|
+
"requirementIds": [],
|
|
1704
|
+
"gapIds": [],
|
|
1705
|
+
"deprecationId": null
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
"id": "openwop.migration.C1.4",
|
|
1709
|
+
"child": "C1",
|
|
1710
|
+
"kind": "behavior",
|
|
1711
|
+
"v1": {
|
|
1712
|
+
"surface": "six certification admissions in prose"
|
|
1713
|
+
},
|
|
1714
|
+
"v2": {
|
|
1715
|
+
"surface": "each mapped to one class (§B.2); blocked retired as a bundle disposition"
|
|
1716
|
+
},
|
|
1717
|
+
"codemod": null,
|
|
1718
|
+
"persistedData": "not-persisted",
|
|
1719
|
+
"requirementIds": [],
|
|
1720
|
+
"gapIds": [],
|
|
1721
|
+
"deprecationId": null
|
|
1722
|
+
},
|
|
1723
|
+
{
|
|
1724
|
+
"id": "openwop.migration.C1.5",
|
|
1725
|
+
"child": "C1",
|
|
1726
|
+
"kind": "behavior",
|
|
1727
|
+
"v1": {
|
|
1728
|
+
"surface": "seam-gated MUSTs stay MUST"
|
|
1729
|
+
},
|
|
1730
|
+
"v2": {
|
|
1731
|
+
"surface": "mint an observation path or demote; ratchet published"
|
|
1732
|
+
},
|
|
1733
|
+
"codemod": null,
|
|
1734
|
+
"persistedData": "not-persisted",
|
|
1735
|
+
"requirementIds": [],
|
|
1736
|
+
"gapIds": [],
|
|
1737
|
+
"deprecationId": null
|
|
1738
|
+
},
|
|
1739
|
+
{
|
|
1740
|
+
"id": "openwop.migration.C1.6",
|
|
1741
|
+
"child": "C1",
|
|
1742
|
+
"kind": "behavior",
|
|
1743
|
+
"v1": {
|
|
1744
|
+
"surface": "nine seam/test operations in the canonical OpenAPI and path manifest; testSeams flags"
|
|
1745
|
+
},
|
|
1746
|
+
"v2": {
|
|
1747
|
+
"surface": "openwop-conformance-seams-v2 profile with api/seams-v2.yaml; evicted from the canonical documents"
|
|
1748
|
+
},
|
|
1749
|
+
"codemod": null,
|
|
1750
|
+
"persistedData": "not-persisted",
|
|
1751
|
+
"requirementIds": [],
|
|
1752
|
+
"gapIds": [],
|
|
1753
|
+
"deprecationId": "openwop.deprecation.seam-operations-in-canonical-api",
|
|
1754
|
+
"note": "A generated document; no persisted artifact carries a seam path (RFC 0167 §D.4)."
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
"id": "openwop.migration.C1.7",
|
|
1758
|
+
"child": "C1",
|
|
1759
|
+
"kind": "behavior",
|
|
1760
|
+
"v1": {
|
|
1761
|
+
"surface": "29 corpus-coherence scenarios blocked in every host bundle"
|
|
1762
|
+
},
|
|
1763
|
+
"v2": {
|
|
1764
|
+
"surface": "spec-repo CI; never in a bundle"
|
|
1765
|
+
},
|
|
1766
|
+
"codemod": null,
|
|
1767
|
+
"persistedData": "not-persisted",
|
|
1768
|
+
"requirementIds": [],
|
|
1769
|
+
"gapIds": [],
|
|
1770
|
+
"deprecationId": "openwop.deprecation.coherence-scenarios-in-host-bundle"
|
|
1771
|
+
},
|
|
1772
|
+
{
|
|
1773
|
+
"id": "openwop.migration.C1.8",
|
|
1774
|
+
"child": "C1",
|
|
1775
|
+
"kind": "behavior",
|
|
1776
|
+
"v1": {
|
|
1777
|
+
"surface": "tarball vendors api/ + schemas/ + src + self-tests"
|
|
1778
|
+
},
|
|
1779
|
+
"v2": {
|
|
1780
|
+
"surface": "dist, fixtures, vectors; corpus via @openwop/spec-artifacts peer dependency, digest-checked"
|
|
1781
|
+
},
|
|
1782
|
+
"codemod": null,
|
|
1783
|
+
"persistedData": "not-persisted",
|
|
1784
|
+
"requirementIds": [],
|
|
1785
|
+
"gapIds": [],
|
|
1786
|
+
"deprecationId": "openwop.deprecation.suite-vendored-corpus",
|
|
1787
|
+
"note": "Package contents, not a document; no codemod (RFC 0167 §D.4)."
|
|
1788
|
+
},
|
|
1789
|
+
{
|
|
1790
|
+
"id": "openwop.migration.C1.9",
|
|
1791
|
+
"child": "C1",
|
|
1792
|
+
"kind": "add",
|
|
1793
|
+
"v1": {
|
|
1794
|
+
"surface": "one package, --bundle-version"
|
|
1795
|
+
},
|
|
1796
|
+
"v2": {
|
|
1797
|
+
"surface": "--target-major; shared scenario-id namespace; schemas/v2/ sibling tree"
|
|
1798
|
+
},
|
|
1799
|
+
"codemod": null,
|
|
1800
|
+
"persistedData": "not-persisted",
|
|
1801
|
+
"requirementIds": [],
|
|
1802
|
+
"gapIds": [],
|
|
1803
|
+
"deprecationId": null
|
|
1804
|
+
},
|
|
1805
|
+
{
|
|
1806
|
+
"id": "openwop.migration.C1.10",
|
|
1807
|
+
"child": "C1",
|
|
1808
|
+
"kind": "add",
|
|
1809
|
+
"v1": {
|
|
1810
|
+
"surface": "no signature; witnessSha256 unemitted"
|
|
1811
|
+
},
|
|
1812
|
+
"v2": {
|
|
1813
|
+
"surface": "Ed25519 attestation; independent needs a distinct verifier key"
|
|
1814
|
+
},
|
|
1815
|
+
"codemod": null,
|
|
1816
|
+
"persistedData": "not-persisted",
|
|
1817
|
+
"requirementIds": [],
|
|
1818
|
+
"gapIds": [],
|
|
1819
|
+
"deprecationId": "openwop.deprecation.certification-bundle-v2-open-root"
|
|
1820
|
+
}
|
|
1821
|
+
]
|
|
1822
|
+
}
|