@kungfu-tech/buildchain 3.0.9-alpha.8 → 4.0.0-alpha.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.
Files changed (255) hide show
  1. package/AGENTS.md +39 -0
  2. package/README.md +17 -13
  3. package/actions/promote-buildchain-ref/README.md +0 -10
  4. package/actions/release-tail/README.md +6 -10
  5. package/architecture/internal-capabilities.json +502 -0
  6. package/architecture/maintainability-baseline.json +59 -0
  7. package/architecture/maintainability-policy.json +1384 -0
  8. package/architecture/release-tail-contract-inventory.json +587 -0
  9. package/architecture/v3-core-mechanism-inventory.json +1043 -0
  10. package/architecture/v3-core-mechanism-inventory.md +67 -0
  11. package/architecture/v4-adopter-delivery-parity.json +47 -0
  12. package/architecture/v4-architecture-constitution.md +210 -0
  13. package/architecture/v4-bootstrap-authority.json +56 -0
  14. package/architecture/v4-canonical-contract-fixtures.json +105 -0
  15. package/architecture/v4-capability-state-machine-manifest.json +480 -0
  16. package/architecture/v4-capability-state-machine-manifest.schema.json +202 -0
  17. package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.json +830 -0
  18. package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.md +223 -0
  19. package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.schema.json +318 -0
  20. package/architecture/v4-delivery-warrant-shadow-fixtures.json +227 -0
  21. package/architecture/v4-delivery-warrant-shadow-fixtures.schema.json +67 -0
  22. package/architecture/v4-exception-ledger.json +5 -0
  23. package/architecture/v4-exception-ledger.schema.json +56 -0
  24. package/architecture/v4-partial-mutation-recovery-qualification.json +65 -0
  25. package/architecture/v4-platform-stage-checkpoints.json +97 -0
  26. package/architecture/v4-provider-operation-journal-contract.json +113 -0
  27. package/architecture/v4-release-activation-shadow-domain.json +61 -0
  28. package/architecture/v4-release-train-parity.json +68 -0
  29. package/architecture/v4-rust-libnode-bridge-evaluation.json +107 -0
  30. package/architecture/v4-rust-libnode-bridge-spike.md +85 -0
  31. package/architecture/v4-stable-publication-fence.json +66 -0
  32. package/architecture/v4-stage-capsule-contract.json +90 -0
  33. package/architecture/v4-stage-capsule-qualification.json +99 -0
  34. package/architecture/v4-stage-capsule-resume-planner.json +52 -0
  35. package/architecture/v4-stage-capsule-store-contract.json +72 -0
  36. package/bin/buildchain.mjs +15 -6
  37. package/contracts/auditable-demo-scenario-v1.schema.json +1 -1
  38. package/contracts/buildchain-v2-residuals-v1.json +2 -2
  39. package/contracts/fixtures/v4-delivery-warrant-trace-v1/golden.json +158 -0
  40. package/contracts/fixtures/v4-delivery-warrant-trace-v1/property.json +380 -0
  41. package/contracts/fixtures/v4-delivery-warrant-trace-v1/replay.json +163 -0
  42. package/contracts/fixtures/v4-partial-mutation-recovery-v1/shared.json +155 -0
  43. package/contracts/fixtures/v4-provider-operation-journal-v1/shared.json +457 -0
  44. package/contracts/fixtures/v4-provider-readback-idempotency-v1/shared.json +682 -0
  45. package/contracts/fixtures/v4-release-activation-shadow-v1/shared.json +53 -0
  46. package/contracts/fixtures/v4-stable-publication-fence-v1/shared.json +56 -0
  47. package/contracts/fixtures/v4-stage-capsule-resume-v1/late-platform-failure.json +176 -0
  48. package/contracts/fixtures/v4-stage-capsule-store-v1/shared.json +132 -0
  49. package/contracts/fixtures/v4-stage-capsule-v1/shared.json +111 -0
  50. package/contracts/v4-canonical-contracts-v1.schema.json +182 -0
  51. package/contracts/v4-delivery-warrant-semantic-diff-report-v1.schema.json +284 -0
  52. package/contracts/v4-delivery-warrant-trace-v1.schema.json +215 -0
  53. package/contracts/v4-host-contract-v1.schema.json +135 -0
  54. package/contracts/v4-partial-mutation-recovery-v1.schema.json +168 -0
  55. package/contracts/v4-provider-operation-journal-v1.schema.json +381 -0
  56. package/contracts/v4-release-activation-shadow-v1.schema.json +186 -0
  57. package/contracts/v4-stable-publication-fence-v1.schema.json +125 -0
  58. package/contracts/v4-stage-capsule-resume-v1.schema.json +225 -0
  59. package/contracts/v4-stage-capsule-store-v1.schema.json +154 -0
  60. package/contracts/v4-stage-capsule-v1.schema.json +178 -0
  61. package/crates/buildchain-v4-bridge/Cargo.lock +213 -0
  62. package/crates/buildchain-v4-bridge/Cargo.toml +12 -0
  63. package/crates/buildchain-v4-bridge/src/main.rs +495 -0
  64. package/dist/site/agent-index.json +0 -3
  65. package/dist/site/artifact-schemas.json +0 -6
  66. package/dist/site/buildchain-contract.json +103 -397
  67. package/dist/site/buildchain-site.json +302 -270
  68. package/dist/site/capability-registry.json +9 -11
  69. package/dist/site/cli-registry.json +8 -30
  70. package/dist/site/controller-registry.json +48 -8
  71. package/dist/site/kfd-claims.json +129 -142
  72. package/dist/site/kfd-upstream-aggregate.json +9 -9
  73. package/dist/site/manual-registry.json +18 -49
  74. package/dist/site/node-api-registry.json +1882 -4118
  75. package/dist/site/page-registry.json +278 -230
  76. package/dist/site/public-surface-audit.json +87 -185
  77. package/dist/site/publication-authority-registry.json +11 -1
  78. package/dist/site/publication-registry.json +4 -4
  79. package/dist/site/release-provenance.json +3 -7
  80. package/dist/site/schemas/kfd-support-projection-v1.schema.json +106 -0
  81. package/dist/site/site-manifest.json +22 -38
  82. package/dist/site/workflow-registry.json +80 -35
  83. package/docs/MAP.md +8 -4
  84. package/docs/auditable-demo.md +2 -2
  85. package/docs/aws-us-elastic-runner-burst-plane.md +7 -59
  86. package/docs/cli-reference.md +15 -92
  87. package/docs/cli.md +14 -14
  88. package/docs/dev-alpha-candidate-patrol.md +3 -11
  89. package/docs/dev-delivery-warrant.md +28 -100
  90. package/docs/engineering-housekeeper.md +12 -4
  91. package/docs/getting-started.md +1 -1
  92. package/docs/install.md +5 -5
  93. package/docs/kfd-support.md +2 -7
  94. package/docs/lifecycle-protocol.md +2 -4
  95. package/docs/node-api-reference.md +414 -523
  96. package/docs/release-flow.md +31 -31
  97. package/docs/release-governance.md +16 -28
  98. package/docs/release-passport.md +2 -15
  99. package/docs/release-tail-contract.md +13 -6
  100. package/docs/release-tail-provider-plane.md +13 -19
  101. package/docs/release-train.md +4 -4
  102. package/docs/reusable-build-surface.md +14 -27
  103. package/docs/site-bundle-contract.md +1 -5
  104. package/docs/stable-candidate-patrol.md +7 -7
  105. package/docs/v4-canonical-contracts.md +92 -0
  106. package/docs/v4-delivery-warrant-read-candidate.md +73 -0
  107. package/docs/v4-delivery-warrant-semantic-diff.md +75 -0
  108. package/docs/v4-production-release.md +63 -0
  109. package/docs/v4-stage-capsule.md +193 -0
  110. package/docs/versioning.md +3 -3
  111. package/package.json +19 -17
  112. package/packages/core/adopter-delivery-gate.js +576 -0
  113. package/packages/core/adopter-delivery-json.js +66 -0
  114. package/packages/core/artifact-signing.js +0 -61
  115. package/packages/core/artifact-verification-envelope.js +5 -5
  116. package/packages/core/build-facts.js +12 -4
  117. package/packages/core/buildchain-agent-manuals.js +0 -2
  118. package/packages/core/buildchain-config.js +4 -69
  119. package/packages/core/buildchain-contract.js +232 -46
  120. package/packages/core/buildchain-kfd-claims.js +1 -1
  121. package/packages/core/channel-candidate.js +0 -8
  122. package/packages/core/channel-promotion-baseline.js +0 -52
  123. package/packages/core/controller-evidence.js +3 -4
  124. package/packages/core/dev-alpha-candidate-selection.js +2 -10
  125. package/packages/core/dev-delivery-warrant-cancellation.js +0 -1
  126. package/packages/core/dev-delivery-warrant-settlement.js +1 -5
  127. package/packages/core/dev-delivery-warrant.js +12 -52
  128. package/packages/core/diagnostics.js +3 -8
  129. package/packages/core/github-governance-authority.js +3 -1
  130. package/packages/core/kfd-adopter-category-driver.js +167 -0
  131. package/packages/core/kfd-adopter-manifest.js +47 -46
  132. package/packages/core/kfd-gate.js +15 -45
  133. package/packages/core/paper-agent-entry.js +7 -16
  134. package/packages/core/paper-fleet.js +2 -2
  135. package/packages/core/paper-repository.js +2 -3
  136. package/packages/core/paper-scaffold-content.js +2 -23
  137. package/packages/core/paper.js +11 -43
  138. package/packages/core/publication-reproducibility.js +4 -4
  139. package/packages/core/release-line-bootstrap.js +21 -8
  140. package/packages/core/release-passport-contract.js +5 -5
  141. package/packages/core/release-passport.js +20 -131
  142. package/packages/core/self-dogfood-version.js +48 -35
  143. package/packages/core/spawn-command.js +232 -8
  144. package/packages/core/v4-adopter-delivery-parity.js +219 -0
  145. package/packages/core/v4-canonical-contracts.js +284 -0
  146. package/packages/core/v4-delivery-warrant-fixture-runner.js +371 -0
  147. package/packages/core/v4-delivery-warrant-read-candidate.js +279 -0
  148. package/packages/core/v4-delivery-warrant-semantic-diff-gate.js +352 -0
  149. package/packages/core/v4-delivery-warrant-shadow-adapter.js +447 -0
  150. package/packages/core/v4-partial-mutation-recovery-qualification.js +395 -0
  151. package/packages/core/v4-platform-stage-checkpoints.js +471 -0
  152. package/packages/core/v4-provider-operation-journal.js +531 -0
  153. package/packages/core/v4-provider-readback-idempotency.js +394 -0
  154. package/packages/core/v4-release-activation-shadow.js +519 -0
  155. package/packages/core/v4-stable-publication-fence.js +357 -0
  156. package/packages/core/v4-stage-capsule-local-store.js +426 -0
  157. package/packages/core/v4-stage-capsule-qualification-campaign.js +512 -0
  158. package/packages/core/v4-stage-capsule-qualification.js +456 -0
  159. package/packages/core/v4-stage-capsule-resume-planner.js +397 -0
  160. package/packages/core/v4-stage-capsule-store.js +401 -0
  161. package/packages/core/v4-stage-capsule.js +319 -0
  162. package/scripts/assemble-self-publication-admission.mjs +1 -1
  163. package/scripts/audit-publication-control-plane.mjs +5 -5
  164. package/scripts/auditable-demo-bundle-verification.mjs +3 -2
  165. package/scripts/auditable-demo-platform.mjs +2 -2
  166. package/scripts/auditable-demo-renditions.mjs +1 -1
  167. package/scripts/auditable-demo.mjs +2 -2
  168. package/scripts/aws-macos-jit-controller-core.mjs +13 -346
  169. package/scripts/aws-macos-jit-controller-runtime.mjs +2 -210
  170. package/scripts/aws-macos-jit-controller.mjs +37 -275
  171. package/scripts/aws-macos-jit-core.mjs +3 -41
  172. package/scripts/aws-macos-jit.mjs +0 -12
  173. package/scripts/aws-windows-jit-campaign.mjs +2 -2
  174. package/scripts/aws-windows-jit-controller-core.mjs +1 -1
  175. package/scripts/aws-windows-jit-controller.mjs +3 -3
  176. package/scripts/build-contract-core.mjs +3 -8
  177. package/scripts/build-standalone-binary.mjs +3 -14
  178. package/scripts/buildchain-channel-router.mjs +4 -0
  179. package/scripts/buildchain-cli-help.mjs +7 -13
  180. package/scripts/buildchain-contract-lock.mjs +0 -6
  181. package/scripts/check-action-bundles.mjs +3 -4
  182. package/scripts/check-internal-architecture.mjs +7 -6
  183. package/scripts/check-inventory.mjs +30 -25
  184. package/scripts/check-v4-public-dogfood-contract.mjs +270 -0
  185. package/scripts/create-release-bundle.mjs +8 -4
  186. package/scripts/dev-alpha-candidate-patrol.mjs +1 -22
  187. package/scripts/dev-delivery-proof.mjs +2 -54
  188. package/scripts/dev-delivery-warrant.mjs +59 -77
  189. package/scripts/dev-pr-auto-merge.mjs +4 -30
  190. package/scripts/dev-pr-delivery-warrant.mjs +0 -55
  191. package/scripts/dispatch-artifact-signing-authority.mjs +7 -4
  192. package/scripts/generate-buildchain-kfd-witnesses.mjs +94 -88
  193. package/scripts/generate-channel-build-workflow.mjs +54 -24
  194. package/scripts/generate-channel-promotion-workflow.mjs +15 -6
  195. package/scripts/generate-site-bundle.mjs +5 -21
  196. package/scripts/git-fetch-process-tree.mjs +34 -1
  197. package/scripts/init-repo.mjs +64 -159
  198. package/scripts/inspect-artifact-signing-requests.mjs +0 -6
  199. package/scripts/locked-source-checkout.mjs +3 -4
  200. package/scripts/maintainability-metrics.mjs +8 -2
  201. package/scripts/npm-publish-dry-run.mjs +2 -2
  202. package/scripts/npm-publish-transaction.mjs +2 -2
  203. package/scripts/publication-commit-evidence.mjs +23 -69
  204. package/scripts/release-candidate-resolver.mjs +11 -17
  205. package/scripts/release-tail.mjs +3 -49
  206. package/scripts/resume-from-candidate-run.mjs +9 -123
  207. package/scripts/run-lifecycle-core.mjs +12 -13
  208. package/scripts/seal-artifact-signing-requests.mjs +17 -21
  209. package/scripts/site-capability-metadata.mjs +2 -7
  210. package/scripts/stable-candidate-qualification.mjs +10 -10
  211. package/scripts/v4-architecture.mjs +12 -2
  212. package/scripts/v4-bridge-bootstrap.mjs +141 -0
  213. package/scripts/v4-bridge-evidence.mjs +141 -0
  214. package/scripts/v4-host-adapter.mjs +182 -0
  215. package/scripts/v4-platform-stage-checkpoint-rehearsal.mjs +207 -0
  216. package/scripts/v4-stage-capsule-qualification.mjs +528 -0
  217. package/scripts/v4-stage-capsule-resume-rehearsal.mjs +57 -0
  218. package/scripts/v4-warrant-shadow-plan.mjs +601 -0
  219. package/scripts/verify-golden-path.mjs +5 -5
  220. package/scripts/web-surface-cloudfront-rewrite.mjs +15 -15
  221. package/scripts/web-surface-core.mjs +2 -8
  222. package/scripts/workflow-call-contract.mjs +5 -184
  223. package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-perspective.json +0 -16
  224. package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-replay.json +0 -57
  225. package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +0 -47
  226. package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +0 -47
  227. package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +0 -40
  228. package/contracts/next-development-request-v1.schema.json +0 -66
  229. package/contracts/next-development-transition-v1.schema.json +0 -292
  230. package/contracts/publication-rehearsal-capsule-v1.schema.json +0 -173
  231. package/dist/site/schemas/publication-rehearsal-capsule-v1.schema.json +0 -269
  232. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +0 -353
  233. package/dist/site/schemas/release-tail-provider-bindings-v1.schema.json +0 -94
  234. package/docs/next-development-transition.md +0 -119
  235. package/docs/publication-rehearsal.md +0 -94
  236. package/packages/core/buildchain-compatibility-proof.js +0 -631
  237. package/packages/core/dev-delivery-native-proof.js +0 -333
  238. package/packages/core/dev-delivery-warrant-shadow.js +0 -502
  239. package/packages/core/next-development-candidate-reservation.js +0 -186
  240. package/packages/core/next-development-controller.js +0 -726
  241. package/packages/core/next-development-projection.js +0 -288
  242. package/packages/core/next-development-transition.js +0 -738
  243. package/packages/core/publication-rehearsal-projection.js +0 -173
  244. package/packages/core/publication-rehearsal-runtime.js +0 -921
  245. package/scripts/aws-macos-jit-instance-rehydrate.mjs +0 -260
  246. package/scripts/aws-macos-jit-source-rebind.mjs +0 -724
  247. package/scripts/dev-delivery-native-run.mjs +0 -187
  248. package/scripts/dev-delivery-two-phase.mjs +0 -598
  249. package/scripts/generate-next-development-guidance.mjs +0 -49
  250. package/scripts/materialize-self-release-candidate-version.mjs +0 -137
  251. package/scripts/next-development-self-dogfood-harness.mjs +0 -409
  252. package/scripts/next-development-self-dogfood.mjs +0 -532
  253. package/scripts/next-development-transition.mjs +0 -47
  254. package/scripts/release-candidate-tail-reseal.mjs +0 -426
  255. package/templates/native-dev-delivery.yml +0 -82
@@ -0,0 +1,155 @@
1
+ {
2
+ "schema": "buildchain-v4-partial-mutation-recovery-fixtures/v1",
3
+ "baseRequest": {
4
+ "schema": "buildchain-v4-partial-mutation-recovery-request/v1",
5
+ "evaluatedAt": "2026-08-09T09:30:00.000Z",
6
+ "sourceRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
7
+ "policyRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
8
+ "platformRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
9
+ "qualificationRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
10
+ "maxAttempts": 3,
11
+ "compensableBoundaryRoots": [
12
+ "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
13
+ ],
14
+ "stageResume": {
15
+ "schema": "buildchain-v4-stage-capsule-resume-evidence/v1",
16
+ "planRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
17
+ "sourceRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
18
+ "policyRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
19
+ "platformRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
20
+ "qualificationRoots": [
21
+ "sha256:6666666666666666666666666666666666666666666666666666666666666666",
22
+ "sha256:7777777777777777777777777777777777777777777777777777777777777777"
23
+ ],
24
+ "decisions": [
25
+ { "stageKey": "build", "decision": "reuse", "reasonCode": "eligible" },
26
+ { "stageKey": "verify", "decision": "reuse", "reasonCode": "eligible" }
27
+ ]
28
+ },
29
+ "activation": {
30
+ "schema": "buildchain-v4-release-activation-recovery-evidence/v1",
31
+ "planRoot": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
32
+ "stateRoot": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
33
+ "qualificationRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
34
+ "policyRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
35
+ "steps": [
36
+ {
37
+ "stepId": "github-release",
38
+ "operationRoot": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
39
+ "phase": "planned",
40
+ "journalRoot": null,
41
+ "journalStateRoot": null,
42
+ "compensationBoundaryRoot": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
43
+ "attemptCount": 0
44
+ },
45
+ {
46
+ "stepId": "npm-package",
47
+ "operationRoot": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
48
+ "phase": "planned",
49
+ "journalRoot": null,
50
+ "journalStateRoot": null,
51
+ "compensationBoundaryRoot": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
52
+ "attemptCount": 0
53
+ },
54
+ {
55
+ "stepId": "oci-image",
56
+ "operationRoot": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
57
+ "phase": "planned",
58
+ "journalRoot": null,
59
+ "journalStateRoot": null,
60
+ "compensationBoundaryRoot": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
61
+ "attemptCount": 0
62
+ }
63
+ ]
64
+ }
65
+ },
66
+ "cases": [
67
+ {
68
+ "id": "no-effect-failure",
69
+ "steps": [
70
+ { "stepId": "github-release", "phase": "retryable", "attemptCount": 1 },
71
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
72
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
73
+ ],
74
+ "expectedClassification": "retry",
75
+ "expectedNextStepIds": ["github-release"]
76
+ },
77
+ {
78
+ "id": "applied-but-unobserved",
79
+ "steps": [
80
+ {
81
+ "stepId": "github-release",
82
+ "phase": "attempting",
83
+ "attemptCount": 1
84
+ },
85
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
86
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
87
+ ],
88
+ "expectedClassification": "wait",
89
+ "expectedNextStepIds": ["github-release"]
90
+ },
91
+ {
92
+ "id": "observed-but-unconfirmed",
93
+ "steps": [
94
+ { "stepId": "github-release", "phase": "observed", "attemptCount": 1 },
95
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
96
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
97
+ ],
98
+ "expectedClassification": "reconcile",
99
+ "expectedNextStepIds": ["github-release"]
100
+ },
101
+ {
102
+ "id": "partial-multi-provider",
103
+ "steps": [
104
+ { "stepId": "github-release", "phase": "confirmed", "attemptCount": 1 },
105
+ { "stepId": "npm-package", "phase": "planned", "attemptCount": 0 },
106
+ { "stepId": "oci-image", "phase": "terminal", "attemptCount": 1 }
107
+ ],
108
+ "compensableBoundaryRoots": [
109
+ "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
110
+ ],
111
+ "expectedClassification": "compensate",
112
+ "expectedNextStepIds": ["oci-image", "npm-package"]
113
+ },
114
+ {
115
+ "id": "noncompensable-terminal",
116
+ "steps": [
117
+ { "stepId": "github-release", "phase": "terminal", "attemptCount": 1 },
118
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
119
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
120
+ ],
121
+ "compensableBoundaryRoots": [],
122
+ "expectedClassification": "escalate",
123
+ "expectedNextStepIds": ["github-release"]
124
+ },
125
+ {
126
+ "id": "repeated-terminal-resume",
127
+ "steps": [
128
+ { "stepId": "github-release", "phase": "confirmed", "attemptCount": 1 },
129
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
130
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
131
+ ],
132
+ "expectedClassification": "terminal-noop",
133
+ "expectedNextStepIds": []
134
+ },
135
+ {
136
+ "id": "attempt-budget-exhausted",
137
+ "steps": [
138
+ { "stepId": "github-release", "phase": "retryable", "attemptCount": 3 },
139
+ { "stepId": "npm-package", "phase": "confirmed", "attemptCount": 1 },
140
+ { "stepId": "oci-image", "phase": "confirmed", "attemptCount": 1 }
141
+ ],
142
+ "expectedClassification": "escalate",
143
+ "expectedNextStepIds": ["github-release"]
144
+ }
145
+ ],
146
+ "stageFailureCases": [
147
+ {
148
+ "id": "missing-stage",
149
+ "decision": "rebuild",
150
+ "reasonCode": "unavailable"
151
+ },
152
+ { "id": "expired-stage", "decision": "rebuild", "reasonCode": "expired" },
153
+ { "id": "corrupt-stage", "decision": "reject", "reasonCode": "corrupt" }
154
+ ]
155
+ }
@@ -0,0 +1,457 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "buildchain-v4-provider-operation-journal-fixtures/v1",
4
+ "validCases": [
5
+ {
6
+ "id": "unknown-readback-retry-confirmed",
7
+ "entries": [
8
+ {
9
+ "kind": "intent",
10
+ "schema": "buildchain-v4-provider-operation-intent/v1",
11
+ "sequence": 0,
12
+ "priorEntryRoot": null,
13
+ "operation": {
14
+ "schema": "buildchain-v4-provider-operation-identity/v1",
15
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
16
+ "capabilityId": "artifact.publish",
17
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
18
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
19
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
20
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
21
+ },
22
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
23
+ "declaredAt": "2026-08-09T04:00:00.000Z",
24
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
25
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
26
+ },
27
+ {
28
+ "kind": "attempt",
29
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
30
+ "sequence": 1,
31
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
32
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
33
+ "attemptOrdinal": 1,
34
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
35
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
36
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
37
+ },
38
+ {
39
+ "kind": "observation",
40
+ "schema": "buildchain-v4-provider-operation-observation/v1",
41
+ "sequence": 2,
42
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
43
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
44
+ "attemptRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
45
+ "observedAt": "2026-08-09T04:00:02.000Z",
46
+ "status": "unknown",
47
+ "evidenceRoots": [
48
+ "sha256:8888888888888888888888888888888888888888888888888888888888888888"
49
+ ],
50
+ "entryRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63"
51
+ },
52
+ {
53
+ "kind": "reconciliation",
54
+ "schema": "buildchain-v4-provider-operation-reconciliation/v1",
55
+ "sequence": 3,
56
+ "priorEntryRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63",
57
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
58
+ "observationRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63",
59
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
60
+ "reconciledAt": "2026-08-09T04:00:03.000Z",
61
+ "disposition": "retry",
62
+ "entryRoot": "sha256:7b6f9e1a815bf9965124ec81dd48f07e8c15a7d5b0d88418bf3cce68756b82d0"
63
+ },
64
+ {
65
+ "kind": "attempt",
66
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
67
+ "sequence": 4,
68
+ "priorEntryRoot": "sha256:7b6f9e1a815bf9965124ec81dd48f07e8c15a7d5b0d88418bf3cce68756b82d0",
69
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
70
+ "attemptOrdinal": 2,
71
+ "attemptedAt": "2026-08-09T04:00:04.000Z",
72
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
73
+ "entryRoot": "sha256:6fff8eb26a244ce5e5dcd3043271bd8b6904c9175649c22ebe4fd8799ee85e6c"
74
+ },
75
+ {
76
+ "kind": "observation",
77
+ "schema": "buildchain-v4-provider-operation-observation/v1",
78
+ "sequence": 5,
79
+ "priorEntryRoot": "sha256:6fff8eb26a244ce5e5dcd3043271bd8b6904c9175649c22ebe4fd8799ee85e6c",
80
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
81
+ "attemptRoot": "sha256:6fff8eb26a244ce5e5dcd3043271bd8b6904c9175649c22ebe4fd8799ee85e6c",
82
+ "observedAt": "2026-08-09T04:00:05.000Z",
83
+ "status": "succeeded",
84
+ "evidenceRoots": [
85
+ "sha256:9999999999999999999999999999999999999999999999999999999999999999",
86
+ "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
87
+ ],
88
+ "entryRoot": "sha256:f26df0076a741f91121842945b9c614c8e484c41c3cab04562be59f722fbbfb8"
89
+ },
90
+ {
91
+ "kind": "confirmation",
92
+ "schema": "buildchain-v4-provider-operation-confirmation/v1",
93
+ "sequence": 6,
94
+ "priorEntryRoot": "sha256:f26df0076a741f91121842945b9c614c8e484c41c3cab04562be59f722fbbfb8",
95
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
96
+ "observationRoot": "sha256:f26df0076a741f91121842945b9c614c8e484c41c3cab04562be59f722fbbfb8",
97
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
98
+ "confirmedAt": "2026-08-09T04:00:06.000Z",
99
+ "outcome": "confirmed",
100
+ "entryRoot": "sha256:346646666a06ddd1df7438a66a47815419aea9c40a2d43ebd7e4d6cb98d12f21"
101
+ }
102
+ ]
103
+ }
104
+ ],
105
+ "invalidCases": [
106
+ {
107
+ "id": "attempt-before-reconciliation",
108
+ "entries": [
109
+ {
110
+ "kind": "intent",
111
+ "schema": "buildchain-v4-provider-operation-intent/v1",
112
+ "sequence": 0,
113
+ "priorEntryRoot": null,
114
+ "operation": {
115
+ "schema": "buildchain-v4-provider-operation-identity/v1",
116
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
117
+ "capabilityId": "artifact.publish",
118
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
119
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
120
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
121
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
122
+ },
123
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
124
+ "declaredAt": "2026-08-09T04:00:00.000Z",
125
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
126
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
127
+ },
128
+ {
129
+ "kind": "attempt",
130
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
131
+ "sequence": 1,
132
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
133
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
134
+ "attemptOrdinal": 1,
135
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
136
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
137
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
138
+ },
139
+ {
140
+ "kind": "attempt",
141
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
142
+ "sequence": 2,
143
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
144
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
145
+ "attemptOrdinal": 2,
146
+ "attemptedAt": "2026-08-09T04:00:02.000Z",
147
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
148
+ "entryRoot": "sha256:5c97ea915e028f371d71b16c76e45c23574eff75838456c9a648a391dabac764"
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "id": "confirmation-without-rooted-observation",
154
+ "entries": [
155
+ {
156
+ "kind": "intent",
157
+ "schema": "buildchain-v4-provider-operation-intent/v1",
158
+ "sequence": 0,
159
+ "priorEntryRoot": null,
160
+ "operation": {
161
+ "schema": "buildchain-v4-provider-operation-identity/v1",
162
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
163
+ "capabilityId": "artifact.publish",
164
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
165
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
166
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
167
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
168
+ },
169
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
170
+ "declaredAt": "2026-08-09T04:00:00.000Z",
171
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
172
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
173
+ },
174
+ {
175
+ "kind": "attempt",
176
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
177
+ "sequence": 1,
178
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
179
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
180
+ "attemptOrdinal": 1,
181
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
182
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
183
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
184
+ },
185
+ {
186
+ "kind": "confirmation",
187
+ "schema": "buildchain-v4-provider-operation-confirmation/v1",
188
+ "sequence": 2,
189
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
190
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
191
+ "observationRoot": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
192
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
193
+ "confirmedAt": "2026-08-09T04:00:02.000Z",
194
+ "outcome": "confirmed",
195
+ "entryRoot": "sha256:0f6cf5fd157f47beab423431e3db61ad680de6de8d752777e97e6cd46b00eb5a"
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "id": "conflicting-confirmations",
201
+ "entries": [
202
+ {
203
+ "kind": "intent",
204
+ "schema": "buildchain-v4-provider-operation-intent/v1",
205
+ "sequence": 0,
206
+ "priorEntryRoot": null,
207
+ "operation": {
208
+ "schema": "buildchain-v4-provider-operation-identity/v1",
209
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
210
+ "capabilityId": "artifact.publish",
211
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
212
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
213
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
214
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
215
+ },
216
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
217
+ "declaredAt": "2026-08-09T04:00:00.000Z",
218
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
219
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
220
+ },
221
+ {
222
+ "kind": "attempt",
223
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
224
+ "sequence": 1,
225
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
226
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
227
+ "attemptOrdinal": 1,
228
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
229
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
230
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
231
+ },
232
+ {
233
+ "kind": "observation",
234
+ "schema": "buildchain-v4-provider-operation-observation/v1",
235
+ "sequence": 2,
236
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
237
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
238
+ "attemptRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
239
+ "observedAt": "2026-08-09T04:00:02.000Z",
240
+ "status": "succeeded",
241
+ "evidenceRoots": [
242
+ "sha256:9999999999999999999999999999999999999999999999999999999999999999",
243
+ "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
244
+ ],
245
+ "entryRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456"
246
+ },
247
+ {
248
+ "kind": "confirmation",
249
+ "schema": "buildchain-v4-provider-operation-confirmation/v1",
250
+ "sequence": 3,
251
+ "priorEntryRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456",
252
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
253
+ "observationRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456",
254
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
255
+ "confirmedAt": "2026-08-09T04:00:03.000Z",
256
+ "outcome": "confirmed",
257
+ "entryRoot": "sha256:c96d003472a7b222e360f091b80b2d7669e557c6741d0190f70a12f20e8a376d"
258
+ },
259
+ {
260
+ "kind": "confirmation",
261
+ "schema": "buildchain-v4-provider-operation-confirmation/v1",
262
+ "sequence": 4,
263
+ "priorEntryRoot": "sha256:c96d003472a7b222e360f091b80b2d7669e557c6741d0190f70a12f20e8a376d",
264
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
265
+ "observationRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456",
266
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
267
+ "confirmedAt": "2026-08-09T04:00:04.000Z",
268
+ "outcome": "rejected",
269
+ "entryRoot": "sha256:9ccffc975e29124b0c7ac3cdee3e8d026992367024ff241663e9544026856b7b"
270
+ }
271
+ ]
272
+ },
273
+ {
274
+ "id": "authority-escalation",
275
+ "entries": [
276
+ {
277
+ "kind": "intent",
278
+ "schema": "buildchain-v4-provider-operation-intent/v1",
279
+ "sequence": 0,
280
+ "priorEntryRoot": null,
281
+ "operation": {
282
+ "schema": "buildchain-v4-provider-operation-identity/v1",
283
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
284
+ "capabilityId": "artifact.publish",
285
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
286
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
287
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
288
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
289
+ },
290
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
291
+ "declaredAt": "2026-08-09T04:00:00.000Z",
292
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
293
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
294
+ },
295
+ {
296
+ "kind": "attempt",
297
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
298
+ "sequence": 1,
299
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
300
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
301
+ "attemptOrdinal": 1,
302
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
303
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
304
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
305
+ },
306
+ {
307
+ "kind": "observation",
308
+ "schema": "buildchain-v4-provider-operation-observation/v1",
309
+ "sequence": 2,
310
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
311
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
312
+ "attemptRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
313
+ "observedAt": "2026-08-09T04:00:02.000Z",
314
+ "status": "succeeded",
315
+ "evidenceRoots": [
316
+ "sha256:9999999999999999999999999999999999999999999999999999999999999999",
317
+ "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
318
+ ],
319
+ "entryRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456"
320
+ },
321
+ {
322
+ "kind": "confirmation",
323
+ "schema": "buildchain-v4-provider-operation-confirmation/v1",
324
+ "sequence": 3,
325
+ "priorEntryRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456",
326
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
327
+ "observationRoot": "sha256:bc7a42e9ea59c863ed077bc07ecfa2c27aca261190790f4e76ac36ba7a15e456",
328
+ "authorityRoot": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
329
+ "confirmedAt": "2026-08-09T04:00:03.000Z",
330
+ "outcome": "confirmed",
331
+ "entryRoot": "sha256:e0d4fdc7e2630447b6716185e32b72848c90f71f5a4b5387d5076e238af87333"
332
+ }
333
+ ]
334
+ },
335
+ {
336
+ "id": "retry-operation-identity-drift",
337
+ "entries": [
338
+ {
339
+ "kind": "intent",
340
+ "schema": "buildchain-v4-provider-operation-intent/v1",
341
+ "sequence": 0,
342
+ "priorEntryRoot": null,
343
+ "operation": {
344
+ "schema": "buildchain-v4-provider-operation-identity/v1",
345
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
346
+ "capabilityId": "artifact.publish",
347
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
348
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
349
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
350
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
351
+ },
352
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
353
+ "declaredAt": "2026-08-09T04:00:00.000Z",
354
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
355
+ "entryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d"
356
+ },
357
+ {
358
+ "kind": "attempt",
359
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
360
+ "sequence": 1,
361
+ "priorEntryRoot": "sha256:a78abebea3f8a6e2ff1ff19ba4d81a8d2f81b44ae902cb2a5c06cdec1a66570d",
362
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
363
+ "attemptOrdinal": 1,
364
+ "attemptedAt": "2026-08-09T04:00:01.000Z",
365
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
366
+ "entryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497"
367
+ },
368
+ {
369
+ "kind": "observation",
370
+ "schema": "buildchain-v4-provider-operation-observation/v1",
371
+ "sequence": 2,
372
+ "priorEntryRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
373
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
374
+ "attemptRoot": "sha256:d18336f1647795f8efd0751b5a2c933b59c47dbbcd0ffc1a7e8be97cb4ee0497",
375
+ "observedAt": "2026-08-09T04:00:02.000Z",
376
+ "status": "unknown",
377
+ "evidenceRoots": [
378
+ "sha256:8888888888888888888888888888888888888888888888888888888888888888"
379
+ ],
380
+ "entryRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63"
381
+ },
382
+ {
383
+ "kind": "reconciliation",
384
+ "schema": "buildchain-v4-provider-operation-reconciliation/v1",
385
+ "sequence": 3,
386
+ "priorEntryRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63",
387
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
388
+ "observationRoot": "sha256:88d0fedb53ac92a86c34ac2557a1b80c822543f0ab3edbbd91fc1f7ecffc3d63",
389
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
390
+ "reconciledAt": "2026-08-09T04:00:03.000Z",
391
+ "disposition": "retry",
392
+ "entryRoot": "sha256:7b6f9e1a815bf9965124ec81dd48f07e8c15a7d5b0d88418bf3cce68756b82d0"
393
+ },
394
+ {
395
+ "kind": "attempt",
396
+ "schema": "buildchain-v4-provider-operation-attempt/v1",
397
+ "sequence": 4,
398
+ "priorEntryRoot": "sha256:7b6f9e1a815bf9965124ec81dd48f07e8c15a7d5b0d88418bf3cce68756b82d0",
399
+ "operationRoot": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
400
+ "attemptOrdinal": 2,
401
+ "attemptedAt": "2026-08-09T04:00:04.000Z",
402
+ "effectRoot": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
403
+ "entryRoot": "sha256:5b0a0e467b7af519d6ef213928a1be30c81b7b489f64e8c70a60e397a4ac4f1f"
404
+ }
405
+ ]
406
+ },
407
+ {
408
+ "id": "provider-run-id-is-not-identity",
409
+ "entries": [
410
+ {
411
+ "kind": "intent",
412
+ "schema": "buildchain-v4-provider-operation-intent/v1",
413
+ "sequence": 0,
414
+ "priorEntryRoot": null,
415
+ "operation": {
416
+ "schema": "buildchain-v4-provider-operation-identity/v1",
417
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
418
+ "capabilityId": "artifact.publish",
419
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
420
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
421
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
422
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
423
+ "providerRunId": "mutable-run-42"
424
+ },
425
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
426
+ "declaredAt": "2026-08-09T04:00:00.000Z",
427
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
428
+ "entryRoot": "sha256:51e50861f72b2e4f8b8f5a74f8e6237ce6281d04936917cb70569e505675d616"
429
+ }
430
+ ]
431
+ },
432
+ {
433
+ "id": "unsafe-sequence-is-rejected",
434
+ "entries": [
435
+ {
436
+ "kind": "intent",
437
+ "schema": "buildchain-v4-provider-operation-intent/v1",
438
+ "sequence": 9007199254740992,
439
+ "priorEntryRoot": null,
440
+ "operation": {
441
+ "schema": "buildchain-v4-provider-operation-identity/v1",
442
+ "transactionRoot": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
443
+ "capabilityId": "artifact.publish",
444
+ "subjectRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
445
+ "targetRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
446
+ "authorityRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
447
+ "policyRoot": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
448
+ },
449
+ "operationRoot": "sha256:da9d7ae530da8b1294af799429a57fbff55b47132e6c4c8530c4d638618dd613",
450
+ "declaredAt": "2026-08-09T04:00:00.000Z",
451
+ "inputRoot": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
452
+ "entryRoot": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
453
+ }
454
+ ]
455
+ }
456
+ ]
457
+ }