@kungfu-tech/buildchain 4.0.1-alpha.2 → 4.0.1-alpha.21

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 (203) hide show
  1. package/actions/release-tail/README.md +8 -0
  2. package/architecture/ci-lane-change-budget.json +187 -0
  3. package/architecture/decisions/0002-next-development-transition.md +101 -0
  4. package/architecture/decisions/0003-two-phase-delivery-warrant.md +152 -0
  5. package/architecture/internal-capabilities.json +211 -8
  6. package/architecture/maintainability-policy.json +113 -28
  7. package/architecture/release-tail-contract-inventory.json +5 -2
  8. package/architecture/v3-core-mechanism-inventory.json +91 -0
  9. package/architecture/v4-adopter-delivery-parity.json +32 -5
  10. package/architecture/v4-capability-state-machine-manifest.json +73 -0
  11. package/architecture/v4-compatibility-facts-parity.json +77 -0
  12. package/architecture/v4-delivery-authority-parity.json +250 -0
  13. package/architecture/v4-delivery-warrant-shadow-fixtures.json +41 -9
  14. package/architecture/v4-floating-consumer-policy.json +6 -0
  15. package/architecture/v4-next-development-parity.json +192 -0
  16. package/architecture/v4-publication-rehearsal-parity.json +84 -0
  17. package/architecture/v4-release-train-parity.json +1 -0
  18. package/architecture/v4-tail-reseal-parity.json +150 -0
  19. package/bin/buildchain.mjs +32 -3
  20. package/bin/internal/adopter-delivery-cli.mjs +70 -0
  21. package/bin/internal/command-registry.mjs +3 -0
  22. package/bin/internal/compatibility-facts-cli.mjs +101 -0
  23. package/contracts/dev-delivery-authority-v2.schema.json +662 -0
  24. package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +47 -0
  25. package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +47 -0
  26. package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +40 -0
  27. package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
  28. package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
  29. package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
  30. package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
  31. package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
  32. package/contracts/fixtures/v4-compatibility-facts-v1/shared.json +1129 -0
  33. package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +7 -1
  34. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
  35. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
  36. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
  37. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
  38. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
  39. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
  40. package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
  41. package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
  42. package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
  43. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +229 -0
  44. package/contracts/next-development-request-v1.schema.json +66 -0
  45. package/contracts/next-development-transition-v1.schema.json +292 -0
  46. package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
  47. package/contracts/v4-compatibility-facts-v1.schema.json +230 -0
  48. package/contracts/v4-floating-consumer-policy-receipt-v1.schema.json +4 -2
  49. package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  50. package/contracts/v4-tail-reseal-v1.schema.json +276 -0
  51. package/dist/site/agent-index.json +5 -0
  52. package/dist/site/artifact-schemas.json +10 -0
  53. package/dist/site/buildchain-contract.json +1475 -27
  54. package/dist/site/buildchain-site.json +627 -31
  55. package/dist/site/capability-registry.json +17 -14
  56. package/dist/site/cli-registry.json +205 -3
  57. package/dist/site/kfd-claims.json +490 -16
  58. package/dist/site/kfd-upstream-aggregate.json +1 -1
  59. package/dist/site/manual-registry.json +52 -6
  60. package/dist/site/node-api-registry.json +14736 -8851
  61. package/dist/site/page-registry.json +593 -21
  62. package/dist/site/public-surface-audit.json +837 -48
  63. package/dist/site/publication-authority-registry.json +44 -8
  64. package/dist/site/publication-registry.json +4 -4
  65. package/dist/site/release-provenance.json +24 -0
  66. package/dist/site/schemas/dev-delivery-authority-v2.schema.json +662 -0
  67. package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
  68. package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
  69. package/dist/site/schemas/v4-compatibility-facts-v1.schema.json +230 -0
  70. package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
  71. package/dist/site/site-manifest.json +34 -10
  72. package/dist/site/workflow-registry.json +160 -10
  73. package/docs/MAP.md +8 -2
  74. package/docs/cli-reference.md +404 -13
  75. package/docs/cli.md +8 -0
  76. package/docs/dev-alpha-candidate-patrol.md +8 -0
  77. package/docs/dev-delivery-qualification-landing-adr.md +251 -0
  78. package/docs/dev-delivery-warrant.md +351 -38
  79. package/docs/next-development-transition.md +118 -0
  80. package/docs/node-api-reference.md +646 -293
  81. package/docs/release-tail-provider-plane.md +30 -0
  82. package/docs/v4-adopter-delivery.md +133 -0
  83. package/docs/v4-compatibility-facts.md +91 -0
  84. package/docs/v4-publication-rehearsal.md +130 -0
  85. package/docs/v4-tail-reseal.md +73 -0
  86. package/docs/versioning.md +4 -3
  87. package/package.json +34 -6
  88. package/packages/core/adopter-delivery-passport.js +259 -0
  89. package/packages/core/adopter-delivery-vectors.js +158 -0
  90. package/packages/core/adopter-delivery-vectors.json +77 -0
  91. package/packages/core/buildchain-agent-manuals.js +3 -0
  92. package/packages/core/buildchain-compatibility-authority.js +336 -0
  93. package/packages/core/buildchain-compatibility-fact.js +394 -0
  94. package/packages/core/buildchain-compatibility-facts.json +217 -0
  95. package/packages/core/buildchain-compatibility-proof.js +566 -0
  96. package/packages/core/buildchain-config.js +84 -0
  97. package/packages/core/buildchain-contract.js +96 -143
  98. package/packages/core/buildchain-delivery-bootstrap.js +240 -0
  99. package/packages/core/buildchain-delivery-infrastructure.js +164 -0
  100. package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
  101. package/packages/core/buildchain-publication-authority.js +1 -0
  102. package/packages/core/channel-candidate.js +8 -0
  103. package/packages/core/channel-promotion-baseline.js +55 -0
  104. package/packages/core/ci-lane-change-budget.js +247 -0
  105. package/packages/core/dev-alpha-candidate-selection.js +10 -2
  106. package/packages/core/dev-delivery-authority-candidate.js +270 -0
  107. package/packages/core/dev-delivery-authority-evidence.js +146 -0
  108. package/packages/core/dev-delivery-authority-landing.js +461 -0
  109. package/packages/core/dev-delivery-authority-observation.js +48 -0
  110. package/packages/core/dev-delivery-authority-qualification.js +591 -0
  111. package/packages/core/dev-delivery-authority-settlement.js +213 -0
  112. package/packages/core/dev-delivery-authority-state.js +583 -0
  113. package/packages/core/dev-delivery-candidate-identity.js +13 -0
  114. package/packages/core/dev-delivery-contract-surface.js +76 -0
  115. package/packages/core/dev-delivery-execution-failure.js +133 -0
  116. package/packages/core/dev-delivery-execution-transfer.js +592 -0
  117. package/packages/core/dev-delivery-landing-admission-core.js +119 -0
  118. package/packages/core/dev-delivery-landing-readback.js +598 -0
  119. package/packages/core/dev-delivery-landing-terminal-evidence.js +271 -0
  120. package/packages/core/dev-delivery-landing-testing-port.js +6 -0
  121. package/packages/core/dev-delivery-native-execution.js +110 -0
  122. package/packages/core/dev-delivery-native-proof.js +562 -0
  123. package/packages/core/dev-delivery-process-boundary.js +563 -0
  124. package/packages/core/dev-delivery-provider-attempt.js +127 -0
  125. package/packages/core/dev-delivery-provider-heartbeat.js +382 -0
  126. package/packages/core/dev-delivery-warrant-cancellation.js +1 -0
  127. package/packages/core/dev-delivery-warrant-qualification.js +145 -0
  128. package/packages/core/dev-delivery-warrant-settlement.js +237 -36
  129. package/packages/core/dev-delivery-warrant-state.js +587 -0
  130. package/packages/core/dev-delivery-warrant.js +328 -370
  131. package/packages/core/github-governance-authority.js +1 -0
  132. package/packages/core/index.js +5 -0
  133. package/packages/core/kungfu-temporal-fact.js +557 -0
  134. package/packages/core/legacy-kfd-adopter-driver.js +167 -0
  135. package/packages/core/next-development-candidate-reservation.js +186 -0
  136. package/packages/core/next-development-controller.js +728 -0
  137. package/packages/core/next-development-projection.js +287 -0
  138. package/packages/core/next-development-transition.js +738 -0
  139. package/packages/core/paper-agent-entry.js +11 -5
  140. package/packages/core/paper.js +16 -5
  141. package/packages/core/published-delivery-authority.js +266 -0
  142. package/packages/core/release-candidate-recovery.js +70 -15
  143. package/packages/core/release-candidate.js +2 -2
  144. package/packages/core/release-passport.js +36 -9
  145. package/packages/core/v4-adopter-delivery-parity.js +3 -3
  146. package/packages/core/v4-adopter-delivery.js +359 -0
  147. package/packages/core/v4-canonical-contracts.js +5 -0
  148. package/packages/core/v4-delivery-warrant-read-candidate.js +10 -3
  149. package/packages/core/v4-floating-consumer-evidence.js +18 -4
  150. package/packages/core/v4-floating-consumer-policy.js +143 -20
  151. package/packages/core/v4-floating-consumer-release-passport.js +32 -5
  152. package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
  153. package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
  154. package/packages/core/v4-publication-rehearsal.js +481 -0
  155. package/packages/core/v4-tail-reseal-contract.js +26 -0
  156. package/packages/core/v4-tail-reseal-github.js +178 -0
  157. package/packages/core/v4-tail-reseal-receipt.js +225 -0
  158. package/packages/core/v4-tail-reseal.js +594 -0
  159. package/packages/core/workflow-yaml-contract.js +24 -2
  160. package/scripts/buildchain-cli-help.mjs +41 -2
  161. package/scripts/check-ci-lane-change-budget.mjs +100 -0
  162. package/scripts/check-inventory.mjs +14 -3
  163. package/scripts/check-v4-floating-consumer-policy-contract.mjs +23 -4
  164. package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
  165. package/scripts/dev-delivery-authority-command-adapters.mjs +206 -0
  166. package/scripts/dev-delivery-authority-provider.mjs +28 -0
  167. package/scripts/dev-delivery-authority.mjs +490 -0
  168. package/scripts/dev-delivery-native-run.mjs +177 -0
  169. package/scripts/dev-delivery-process-boundary.mjs +260 -0
  170. package/scripts/dev-delivery-proof.mjs +67 -2
  171. package/scripts/dev-delivery-provider-heartbeat.mjs +215 -0
  172. package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
  173. package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
  174. package/scripts/dev-delivery-two-phase-resume.mjs +345 -0
  175. package/scripts/dev-delivery-two-phase.mjs +573 -0
  176. package/scripts/dev-delivery-warrant-options.mjs +266 -0
  177. package/scripts/dev-delivery-warrant-store.mjs +231 -0
  178. package/scripts/dev-delivery-warrant.mjs +232 -194
  179. package/scripts/dev-pr-auto-merge.mjs +1 -1
  180. package/scripts/dev-pr-delivery-warrant.mjs +11 -0
  181. package/scripts/dev-qualification-patrol.mjs +9 -9
  182. package/scripts/dispatch-artifact-signing-authority.mjs +1 -1
  183. package/scripts/generate-channel-promotion-workflow.mjs +2 -2
  184. package/scripts/generate-next-development-guidance.mjs +49 -0
  185. package/scripts/generate-release-candidate-passport.mjs +152 -0
  186. package/scripts/generate-site-bundle.mjs +69 -4
  187. package/scripts/init-repo.mjs +22 -4
  188. package/scripts/next-development-self-dogfood-harness.mjs +460 -0
  189. package/scripts/next-development-self-dogfood.mjs +597 -0
  190. package/scripts/next-development-transition.mjs +47 -0
  191. package/scripts/npm-publish-transaction.mjs +2 -2
  192. package/scripts/promotion-channel-router.mjs +4 -4
  193. package/scripts/release-candidate-anchor-provenance.mjs +99 -0
  194. package/scripts/release-tail.mjs +51 -3
  195. package/scripts/release-train-self-dogfood.mjs +94 -92
  196. package/scripts/resume-from-candidate-run.mjs +557 -30
  197. package/scripts/site-capability-metadata.mjs +41 -0
  198. package/scripts/stable-candidate-qualification.mjs +9 -10
  199. package/scripts/v4-consumer-policy.mjs +5 -5
  200. package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
  201. package/scripts/v4-tail-reseal-macos-rehearsal.mjs +134 -0
  202. package/scripts/v4-tail-reseal.mjs +416 -0
  203. package/templates/native-dev-delivery.yml +143 -0
@@ -4,11 +4,1320 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "4.0.1-alpha.2",
7
+ "version": "4.0.1-alpha.21",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v4",
11
11
  "compatibilityPolicy": "major-compatible",
12
+ "compatibilityFacts": [
13
+ {
14
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
15
+ "factId": "build-channel-router-d40dd0-to-30549a",
16
+ "factRoot": "sha256:47c1d78adba0d75ac74409d85ad6cf1188d10d25165d2d561118cf76e9ccb701",
17
+ "sourceRoot": "sha256:ecf235e22344544c30b205323c6e01644561bcda143d0c566acac2571ecd18d7",
18
+ "targetRoot": "sha256:88cdf46c2a819e99374e7f10e609c34773fb67db9b5161adcb4112c1ccf6dc01",
19
+ "predicate": {
20
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
21
+ "record": {
22
+ "schema": "kungfu.fact.temporal-predicate/v1",
23
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
24
+ "operations": [
25
+ "accept-contract-lock"
26
+ ],
27
+ "direction": "source-to-target",
28
+ "pathPolicy": "explicit-bounded",
29
+ "cyclePolicy": "forbid",
30
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
31
+ }
32
+ },
33
+ "relation": {
34
+ "root": "sha256:47c1d78adba0d75ac74409d85ad6cf1188d10d25165d2d561118cf76e9ccb701",
35
+ "record": {
36
+ "schema": "kungfu.fact.temporal-relation/v1",
37
+ "relationId": "buildchain:compatibility:build-channel-router-d40dd0-to-30549a",
38
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
39
+ "sourceRoot": "sha256:ecf235e22344544c30b205323c6e01644561bcda143d0c566acac2571ecd18d7",
40
+ "targetRoot": "sha256:88cdf46c2a819e99374e7f10e609c34773fb67db9b5161adcb4112c1ccf6dc01",
41
+ "validFromCutRoot": "sha256:3b83f02e22ca82fc4a099b5f8c4353fffb1423b0a5cba41860b1ba86f7c8cbb7",
42
+ "scopeRoot": "sha256:dc381e72e9cad86293254f8542394f1abc27b4b0f07c122cb4cad5f73b381ccb",
43
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
44
+ "admissionRoots": [
45
+ "sha256:e449bdc62832fd18b33d93833207d70e843f066a85aae8b0c717234194ecb497"
46
+ ]
47
+ }
48
+ },
49
+ "proof": {
50
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
51
+ "proofId": "build-channel-router-d40dd0-to-30549a",
52
+ "predicate": "compatible-breaking-digest",
53
+ "direction": "source-to-target",
54
+ "operation": "accept-contract-lock",
55
+ "source": {
56
+ "contract": "kungfu-buildchain-runtime-contract-world",
57
+ "surfaceId": "controller:build-channel-router",
58
+ "surfaceKind": "controller",
59
+ "breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273"
60
+ },
61
+ "target": {
62
+ "contract": "kungfu-buildchain-runtime-contract-world",
63
+ "surfaceId": "controller:build-channel-router",
64
+ "surfaceKind": "controller",
65
+ "breakingDigest": "sha256:30549aa26cd1e1dd81f10fe3529d3c6e3f8438a6efa0100c47ebae4d2f3d71df"
66
+ },
67
+ "scope": {
68
+ "contract": "kungfu-buildchain-runtime-contract-world",
69
+ "surfaceId": "controller:build-channel-router",
70
+ "surfaceKind": "controller",
71
+ "majorLines": [
72
+ "v2",
73
+ "v3"
74
+ ],
75
+ "operation": "accept-contract-lock"
76
+ },
77
+ "scopeRoot": "sha256:dc381e72e9cad86293254f8542394f1abc27b4b0f07c122cb4cad5f73b381ccb",
78
+ "evidence": {
79
+ "kind": "protected-pull-request-contract-acceptance",
80
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2549",
81
+ "protectedBase": "dev/v3/v3.0",
82
+ "sourceCommit": "0d87b772265066f5e6157e1ba6a2ba1021fb5225",
83
+ "mergeCommit": "34fad9d3a94c450d75c0d06fd6ed00470c992ff7",
84
+ "contractDigest": "sha256:2584ba36ab54cd5e9bab9e34dfc08d87a55dc57de1be7641492bf7ceb1366350",
85
+ "compatibilityDigest": "sha256:80f65cc191b1f771475184edf8a1bf9c10dd69bb58060aa09313d0e1e57f508a"
86
+ },
87
+ "evidenceRoot": "sha256:e449bdc62832fd18b33d93833207d70e843f066a85aae8b0c717234194ecb497",
88
+ "authority": {
89
+ "kind": "protected-base-contract-authority",
90
+ "repository": "kungfu-systems/buildchain",
91
+ "protectedBase": "dev/v3/v3.0"
92
+ },
93
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
94
+ "cut": {
95
+ "kind": "protected-git-cut",
96
+ "repository": "kungfu-systems/buildchain",
97
+ "protectedBase": "dev/v3/v3.0",
98
+ "commit": "34fad9d3a94c450d75c0d06fd6ed00470c992ff7"
99
+ },
100
+ "cutRoot": "sha256:3b83f02e22ca82fc4a099b5f8c4353fffb1423b0a5cba41860b1ba86f7c8cbb7",
101
+ "proofRoot": "sha256:36d2e188f43385d6191116393aa81ea025ccf61e21a1c5eae1d56be92a203b31"
102
+ }
103
+ },
104
+ {
105
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
106
+ "factId": "promote-buildchain-ref-action-a59f09-to-6147c0",
107
+ "factRoot": "sha256:50e5b6e644493ac00d5b1d83a0ec6009f9faaae1bee15e88ee8386c9ec8a775d",
108
+ "sourceRoot": "sha256:b2ea5e385297f25146de02e5da2247b6a2d7f518d88eac95624a693891107a79",
109
+ "targetRoot": "sha256:33eee394ed2fe9892fd833eba4dc76dcae95a2ff1d8fb507a926651604be20e9",
110
+ "predicate": {
111
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
112
+ "record": {
113
+ "schema": "kungfu.fact.temporal-predicate/v1",
114
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
115
+ "operations": [
116
+ "accept-contract-lock"
117
+ ],
118
+ "direction": "source-to-target",
119
+ "pathPolicy": "explicit-bounded",
120
+ "cyclePolicy": "forbid",
121
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
122
+ }
123
+ },
124
+ "relation": {
125
+ "root": "sha256:50e5b6e644493ac00d5b1d83a0ec6009f9faaae1bee15e88ee8386c9ec8a775d",
126
+ "record": {
127
+ "schema": "kungfu.fact.temporal-relation/v1",
128
+ "relationId": "buildchain:compatibility:promote-buildchain-ref-action-a59f09-to-6147c0",
129
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
130
+ "sourceRoot": "sha256:b2ea5e385297f25146de02e5da2247b6a2d7f518d88eac95624a693891107a79",
131
+ "targetRoot": "sha256:33eee394ed2fe9892fd833eba4dc76dcae95a2ff1d8fb507a926651604be20e9",
132
+ "validFromCutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
133
+ "scopeRoot": "sha256:dbf061c2f7608451f0d2ae47e2d7eaa323d7cf61699f20467ac73712748e50c5",
134
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
135
+ "admissionRoots": [
136
+ "sha256:454c8cf77d6ecb35de2cdb2f8f80832d7fb31b9f9ef300749ac8b1595fd5cf86"
137
+ ]
138
+ }
139
+ },
140
+ "proof": {
141
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
142
+ "proofId": "promote-buildchain-ref-action-a59f09-to-6147c0",
143
+ "predicate": "compatible-breaking-digest",
144
+ "direction": "source-to-target",
145
+ "operation": "accept-contract-lock",
146
+ "source": {
147
+ "contract": "kungfu-buildchain-runtime-contract-world",
148
+ "surfaceId": "promote-buildchain-ref-action",
149
+ "surfaceKind": "action",
150
+ "breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
151
+ },
152
+ "target": {
153
+ "contract": "kungfu-buildchain-runtime-contract-world",
154
+ "surfaceId": "promote-buildchain-ref-action",
155
+ "surfaceKind": "action",
156
+ "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda"
157
+ },
158
+ "scope": {
159
+ "contract": "kungfu-buildchain-runtime-contract-world",
160
+ "surfaceId": "promote-buildchain-ref-action",
161
+ "surfaceKind": "action",
162
+ "majorLines": [
163
+ "v2",
164
+ "v3"
165
+ ],
166
+ "operation": "accept-contract-lock"
167
+ },
168
+ "scopeRoot": "sha256:dbf061c2f7608451f0d2ae47e2d7eaa323d7cf61699f20467ac73712748e50c5",
169
+ "evidence": {
170
+ "kind": "protected-pull-request-contract-acceptance",
171
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/1556",
172
+ "protectedBase": "dev/v2/v2.14",
173
+ "sourceCommit": "f8e2c5d28ef34d711892589331b7e018095a96d7",
174
+ "mergeCommit": "6e0c29be1489f686a9a3792b46bfaa4466828393",
175
+ "contractDigest": "sha256:f6dbf5147d9ad3b8c49ba6630cd52b8c7853ead7c921d7e1210a393aebf97d1f",
176
+ "compatibilityDigest": "sha256:cdf588422ec6b460bd6f631400efa6e361a045e052c8967d6c50fadd7aa4dd90"
177
+ },
178
+ "evidenceRoot": "sha256:454c8cf77d6ecb35de2cdb2f8f80832d7fb31b9f9ef300749ac8b1595fd5cf86",
179
+ "authority": {
180
+ "kind": "protected-base-contract-authority",
181
+ "repository": "kungfu-systems/buildchain",
182
+ "protectedBase": "dev/v3/v3.0"
183
+ },
184
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
185
+ "cut": {
186
+ "kind": "protected-git-cut",
187
+ "repository": "kungfu-systems/buildchain",
188
+ "protectedBase": "dev/v3/v3.0",
189
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
190
+ },
191
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
192
+ "proofRoot": "sha256:e6f93f44a6613a9d6de776ebe8f29b1779b0cd18a24bdf126ec6c1a07770fa75"
193
+ }
194
+ },
195
+ {
196
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
197
+ "factId": "advanced-release-candidate-promote-aa30f2-to-9db8dd",
198
+ "factRoot": "sha256:5664da2363bed0b45497215b60763c3be627e568eb3182af5891c23ae3875fbe",
199
+ "sourceRoot": "sha256:df85dfa54c463f6889cfa1374a1b67c25f41e3e32cd59dee80262d4c766945e9",
200
+ "targetRoot": "sha256:07960d74a035f5417974f7761c4cb2a203e7fc6166366a3d113f09f41df597e8",
201
+ "predicate": {
202
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
203
+ "record": {
204
+ "schema": "kungfu.fact.temporal-predicate/v1",
205
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
206
+ "operations": [
207
+ "accept-contract-lock"
208
+ ],
209
+ "direction": "source-to-target",
210
+ "pathPolicy": "explicit-bounded",
211
+ "cyclePolicy": "forbid",
212
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
213
+ }
214
+ },
215
+ "relation": {
216
+ "root": "sha256:5664da2363bed0b45497215b60763c3be627e568eb3182af5891c23ae3875fbe",
217
+ "record": {
218
+ "schema": "kungfu.fact.temporal-relation/v1",
219
+ "relationId": "buildchain:compatibility:advanced-release-candidate-promote-aa30f2-to-9db8dd",
220
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
221
+ "sourceRoot": "sha256:df85dfa54c463f6889cfa1374a1b67c25f41e3e32cd59dee80262d4c766945e9",
222
+ "targetRoot": "sha256:07960d74a035f5417974f7761c4cb2a203e7fc6166366a3d113f09f41df597e8",
223
+ "validFromCutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
224
+ "scopeRoot": "sha256:c9746475e09a42adf6e33cf3656d9d7cef8e880ba3efc31b8a3cd599b938a124",
225
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
226
+ "admissionRoots": [
227
+ "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373"
228
+ ]
229
+ }
230
+ },
231
+ "proof": {
232
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
233
+ "proofId": "advanced-release-candidate-promote-aa30f2-to-9db8dd",
234
+ "predicate": "compatible-breaking-digest",
235
+ "direction": "source-to-target",
236
+ "operation": "accept-contract-lock",
237
+ "source": {
238
+ "contract": "kungfu-buildchain-runtime-contract-world",
239
+ "surfaceId": "advanced-release-candidate-promote",
240
+ "surfaceKind": "workflow",
241
+ "breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
242
+ },
243
+ "target": {
244
+ "contract": "kungfu-buildchain-runtime-contract-world",
245
+ "surfaceId": "advanced-release-candidate-promote",
246
+ "surfaceKind": "workflow",
247
+ "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5"
248
+ },
249
+ "scope": {
250
+ "contract": "kungfu-buildchain-runtime-contract-world",
251
+ "surfaceId": "advanced-release-candidate-promote",
252
+ "surfaceKind": "workflow",
253
+ "majorLines": [
254
+ "v2",
255
+ "v3"
256
+ ],
257
+ "operation": "accept-contract-lock"
258
+ },
259
+ "scopeRoot": "sha256:c9746475e09a42adf6e33cf3656d9d7cef8e880ba3efc31b8a3cd599b938a124",
260
+ "evidence": {
261
+ "kind": "protected-pull-request-contract-acceptance",
262
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2342",
263
+ "protectedBase": "dev/v3/v3.0",
264
+ "sourceCommit": "8870db287a9ee5fb95eebbbe907b1649d84d5b7f",
265
+ "mergeCommit": "30b605adea1ed33dcf0bbb4cc7b666b64a6ccd18",
266
+ "contractDigest": "sha256:9c07dbdb9aa8390569cd07ace044af45e6751b91ffe8fcc0cb69a77388b0f72b",
267
+ "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe"
268
+ },
269
+ "evidenceRoot": "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373",
270
+ "authority": {
271
+ "kind": "protected-base-contract-authority",
272
+ "repository": "kungfu-systems/buildchain",
273
+ "protectedBase": "dev/v3/v3.0"
274
+ },
275
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
276
+ "cut": {
277
+ "kind": "protected-git-cut",
278
+ "repository": "kungfu-systems/buildchain",
279
+ "protectedBase": "dev/v3/v3.0",
280
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
281
+ },
282
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
283
+ "proofRoot": "sha256:36c85ba487be1528e85776d2bc5f766a971d42ac238aec30071945f7d60d9fc5"
284
+ }
285
+ },
286
+ {
287
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
288
+ "factId": "reusable-build-a6a353-to-dfbedd",
289
+ "factRoot": "sha256:7c85c77b8282d123924b89b4f5b239b58b7b1383af91b9006425d9269a2c6ce5",
290
+ "sourceRoot": "sha256:d62613e555428da8c08287d9335f00b5ecf4c90950307e1b2407bf84ffbc633d",
291
+ "targetRoot": "sha256:db4272cd6eba98596dedf2bb6c843604fa977950e188fdde6df22534d9715c23",
292
+ "predicate": {
293
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
294
+ "record": {
295
+ "schema": "kungfu.fact.temporal-predicate/v1",
296
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
297
+ "operations": [
298
+ "accept-contract-lock"
299
+ ],
300
+ "direction": "source-to-target",
301
+ "pathPolicy": "explicit-bounded",
302
+ "cyclePolicy": "forbid",
303
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
304
+ }
305
+ },
306
+ "relation": {
307
+ "root": "sha256:7c85c77b8282d123924b89b4f5b239b58b7b1383af91b9006425d9269a2c6ce5",
308
+ "record": {
309
+ "schema": "kungfu.fact.temporal-relation/v1",
310
+ "relationId": "buildchain:compatibility:reusable-build-a6a353-to-dfbedd",
311
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
312
+ "sourceRoot": "sha256:d62613e555428da8c08287d9335f00b5ecf4c90950307e1b2407bf84ffbc633d",
313
+ "targetRoot": "sha256:db4272cd6eba98596dedf2bb6c843604fa977950e188fdde6df22534d9715c23",
314
+ "validFromCutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
315
+ "scopeRoot": "sha256:b50ae93f868501c8acfc93d93dc2deec916a4fcf12c19f959fbb3893cc11bb6c",
316
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
317
+ "admissionRoots": [
318
+ "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c"
319
+ ]
320
+ }
321
+ },
322
+ "proof": {
323
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
324
+ "proofId": "reusable-build-a6a353-to-dfbedd",
325
+ "predicate": "compatible-breaking-digest",
326
+ "direction": "source-to-target",
327
+ "operation": "accept-contract-lock",
328
+ "source": {
329
+ "contract": "kungfu-buildchain-runtime-contract-world",
330
+ "surfaceId": "reusable-build",
331
+ "surfaceKind": "workflow",
332
+ "breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650"
333
+ },
334
+ "target": {
335
+ "contract": "kungfu-buildchain-runtime-contract-world",
336
+ "surfaceId": "reusable-build",
337
+ "surfaceKind": "workflow",
338
+ "breakingDigest": "sha256:dfbedd543ae0c067982b5c8c02d98dd2f7f7df88752be97fb330da6b0ba30faa"
339
+ },
340
+ "scope": {
341
+ "contract": "kungfu-buildchain-runtime-contract-world",
342
+ "surfaceId": "reusable-build",
343
+ "surfaceKind": "workflow",
344
+ "majorLines": [
345
+ "v2",
346
+ "v3"
347
+ ],
348
+ "operation": "accept-contract-lock"
349
+ },
350
+ "scopeRoot": "sha256:b50ae93f868501c8acfc93d93dc2deec916a4fcf12c19f959fbb3893cc11bb6c",
351
+ "evidence": {
352
+ "kind": "protected-pull-request-contract-acceptance",
353
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2089",
354
+ "protectedBase": "dev/v3/v3.0",
355
+ "sourceCommit": "1a6cb874bc6f1611f3eef607e711d3532798e9e7",
356
+ "mergeCommit": "71a75f21159b994241ec7cb2c50f7a150c5d440b",
357
+ "contractDigest": "sha256:7c2a7c132a2b2722f70f148b81048147047d4d2c46cf33f7cd2dc158aec092e0",
358
+ "compatibilityDigest": "sha256:61af7d0871220bc0909008bdc571905ad500cccf853e7841bc5d462a34b2d436"
359
+ },
360
+ "evidenceRoot": "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c",
361
+ "authority": {
362
+ "kind": "protected-base-contract-authority",
363
+ "repository": "kungfu-systems/buildchain",
364
+ "protectedBase": "dev/v3/v3.0"
365
+ },
366
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
367
+ "cut": {
368
+ "kind": "protected-git-cut",
369
+ "repository": "kungfu-systems/buildchain",
370
+ "protectedBase": "dev/v3/v3.0",
371
+ "commit": "71a75f21159b994241ec7cb2c50f7a150c5d440b"
372
+ },
373
+ "cutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
374
+ "proofRoot": "sha256:b99176f414752ffb276f4add6183aa81eeb480598368ca4f57804f024212d0f5"
375
+ }
376
+ },
377
+ {
378
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
379
+ "factId": "build-lifecycle-e264a7-to-6b8d38",
380
+ "factRoot": "sha256:b45ecad5988d358bc4604f28db0faad793a02d8ee8592cc1f4323365e951c6f0",
381
+ "sourceRoot": "sha256:556fde50370a3065212b7357efccc4e84f6332dc4c8ff94357caf5f428773fdf",
382
+ "targetRoot": "sha256:da550aa8c13f0f1424d1edf68653611a8206b49b1f82d0939d248010d49e9080",
383
+ "predicate": {
384
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
385
+ "record": {
386
+ "schema": "kungfu.fact.temporal-predicate/v1",
387
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
388
+ "operations": [
389
+ "accept-contract-lock"
390
+ ],
391
+ "direction": "source-to-target",
392
+ "pathPolicy": "explicit-bounded",
393
+ "cyclePolicy": "forbid",
394
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
395
+ }
396
+ },
397
+ "relation": {
398
+ "root": "sha256:b45ecad5988d358bc4604f28db0faad793a02d8ee8592cc1f4323365e951c6f0",
399
+ "record": {
400
+ "schema": "kungfu.fact.temporal-relation/v1",
401
+ "relationId": "buildchain:compatibility:build-lifecycle-e264a7-to-6b8d38",
402
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
403
+ "sourceRoot": "sha256:556fde50370a3065212b7357efccc4e84f6332dc4c8ff94357caf5f428773fdf",
404
+ "targetRoot": "sha256:da550aa8c13f0f1424d1edf68653611a8206b49b1f82d0939d248010d49e9080",
405
+ "validFromCutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
406
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
407
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
408
+ "admissionRoots": [
409
+ "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109"
410
+ ]
411
+ }
412
+ },
413
+ "proof": {
414
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
415
+ "proofId": "build-lifecycle-e264a7-to-6b8d38",
416
+ "predicate": "compatible-breaking-digest",
417
+ "direction": "source-to-target",
418
+ "operation": "accept-contract-lock",
419
+ "source": {
420
+ "contract": "kungfu-buildchain-runtime-contract-world",
421
+ "surfaceId": "controller:build-lifecycle",
422
+ "surfaceKind": "controller",
423
+ "breakingDigest": "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be"
424
+ },
425
+ "target": {
426
+ "contract": "kungfu-buildchain-runtime-contract-world",
427
+ "surfaceId": "controller:build-lifecycle",
428
+ "surfaceKind": "controller",
429
+ "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb"
430
+ },
431
+ "scope": {
432
+ "contract": "kungfu-buildchain-runtime-contract-world",
433
+ "surfaceId": "controller:build-lifecycle",
434
+ "surfaceKind": "controller",
435
+ "majorLines": [
436
+ "v2",
437
+ "v3"
438
+ ],
439
+ "operation": "accept-contract-lock"
440
+ },
441
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
442
+ "evidence": {
443
+ "kind": "protected-pull-request-contract-acceptance",
444
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2058",
445
+ "protectedBase": "dev/v3/v3.0",
446
+ "sourceCommit": "c9a86bd1ac17b4fae54b0410498830edad80d831",
447
+ "mergeCommit": "3991801a7a7d6fe5e31b9a670dfde7ea59e61253",
448
+ "contractDigest": "sha256:da72850bbd3088f0e9eb20c17382557e0dfb7e68bf4469d352ed870ee8a334e8",
449
+ "compatibilityDigest": "sha256:32a651504c57829085dc8863f0e41dee98eb60708ff6dec958c9c7e4b1010102"
450
+ },
451
+ "evidenceRoot": "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109",
452
+ "authority": {
453
+ "kind": "protected-base-contract-authority",
454
+ "repository": "kungfu-systems/buildchain",
455
+ "protectedBase": "dev/v3/v3.0"
456
+ },
457
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
458
+ "cut": {
459
+ "kind": "protected-git-cut",
460
+ "repository": "kungfu-systems/buildchain",
461
+ "protectedBase": "dev/v3/v3.0",
462
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
463
+ },
464
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
465
+ "proofRoot": "sha256:9024634cef43a9d695fa224d26be9aeb6370d3c981b003ece3b659dde8e73713"
466
+ }
467
+ },
468
+ {
469
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
470
+ "factId": "web-surface-da569f-to-27f0cb",
471
+ "factRoot": "sha256:bba5690e6c535b54623d31b3260e59381bdb50161d7bff33b8e42b8b6dd3135a",
472
+ "sourceRoot": "sha256:b613d47196d2589279675d55435cb23f9dfc59bf5cdd37430c692b47e981bf23",
473
+ "targetRoot": "sha256:a409f21ebea76066bbf6ae064f220bef20cceba806e35ffc1caa107cacd0c0c2",
474
+ "predicate": {
475
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
476
+ "record": {
477
+ "schema": "kungfu.fact.temporal-predicate/v1",
478
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
479
+ "operations": [
480
+ "accept-contract-lock"
481
+ ],
482
+ "direction": "source-to-target",
483
+ "pathPolicy": "explicit-bounded",
484
+ "cyclePolicy": "forbid",
485
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
486
+ }
487
+ },
488
+ "relation": {
489
+ "root": "sha256:bba5690e6c535b54623d31b3260e59381bdb50161d7bff33b8e42b8b6dd3135a",
490
+ "record": {
491
+ "schema": "kungfu.fact.temporal-relation/v1",
492
+ "relationId": "buildchain:compatibility:web-surface-da569f-to-27f0cb",
493
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
494
+ "sourceRoot": "sha256:b613d47196d2589279675d55435cb23f9dfc59bf5cdd37430c692b47e981bf23",
495
+ "targetRoot": "sha256:a409f21ebea76066bbf6ae064f220bef20cceba806e35ffc1caa107cacd0c0c2",
496
+ "validFromCutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
497
+ "scopeRoot": "sha256:0288a1bc232405047630819733074df11cfd86596c0fc95afd4403948399d679",
498
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
499
+ "admissionRoots": [
500
+ "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c"
501
+ ]
502
+ }
503
+ },
504
+ "proof": {
505
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
506
+ "proofId": "web-surface-da569f-to-27f0cb",
507
+ "predicate": "compatible-breaking-digest",
508
+ "direction": "source-to-target",
509
+ "operation": "accept-contract-lock",
510
+ "source": {
511
+ "contract": "kungfu-buildchain-runtime-contract-world",
512
+ "surfaceId": "web-surface",
513
+ "surfaceKind": "workflow",
514
+ "breakingDigest": "sha256:da569f90374e878948e3d5160ed9929338ce0572473ca8ee54867b0fe1aaeace"
515
+ },
516
+ "target": {
517
+ "contract": "kungfu-buildchain-runtime-contract-world",
518
+ "surfaceId": "web-surface",
519
+ "surfaceKind": "workflow",
520
+ "breakingDigest": "sha256:27f0cb9c7d97288850d215be8696b323471c41fd1cdf3a2ff3ebf21f62541960"
521
+ },
522
+ "scope": {
523
+ "contract": "kungfu-buildchain-runtime-contract-world",
524
+ "surfaceId": "web-surface",
525
+ "surfaceKind": "workflow",
526
+ "majorLines": [
527
+ "v2",
528
+ "v3"
529
+ ],
530
+ "operation": "accept-contract-lock"
531
+ },
532
+ "scopeRoot": "sha256:0288a1bc232405047630819733074df11cfd86596c0fc95afd4403948399d679",
533
+ "evidence": {
534
+ "kind": "protected-pull-request-contract-acceptance",
535
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2089",
536
+ "protectedBase": "dev/v3/v3.0",
537
+ "sourceCommit": "1a6cb874bc6f1611f3eef607e711d3532798e9e7",
538
+ "mergeCommit": "71a75f21159b994241ec7cb2c50f7a150c5d440b",
539
+ "contractDigest": "sha256:7c2a7c132a2b2722f70f148b81048147047d4d2c46cf33f7cd2dc158aec092e0",
540
+ "compatibilityDigest": "sha256:61af7d0871220bc0909008bdc571905ad500cccf853e7841bc5d462a34b2d436"
541
+ },
542
+ "evidenceRoot": "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c",
543
+ "authority": {
544
+ "kind": "protected-base-contract-authority",
545
+ "repository": "kungfu-systems/buildchain",
546
+ "protectedBase": "dev/v3/v3.0"
547
+ },
548
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
549
+ "cut": {
550
+ "kind": "protected-git-cut",
551
+ "repository": "kungfu-systems/buildchain",
552
+ "protectedBase": "dev/v3/v3.0",
553
+ "commit": "71a75f21159b994241ec7cb2c50f7a150c5d440b"
554
+ },
555
+ "cutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
556
+ "proofRoot": "sha256:3ba66a1e8f8d00ddd45f3f448bcccb15469cbd31f5765d36f61e4cfe7fd0dd41"
557
+ }
558
+ },
559
+ {
560
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
561
+ "factId": "build-lifecycle-307459-to-6b8d38",
562
+ "factRoot": "sha256:c803aa7787c92e9ac71e0f52b6d2ec0cc76e8bc0e55f192affa9546286899ce9",
563
+ "sourceRoot": "sha256:4ac7d3ce8c279470d2ae71deda9a8a898064c240e75f02006c0ea4057ce690b1",
564
+ "targetRoot": "sha256:da550aa8c13f0f1424d1edf68653611a8206b49b1f82d0939d248010d49e9080",
565
+ "predicate": {
566
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
567
+ "record": {
568
+ "schema": "kungfu.fact.temporal-predicate/v1",
569
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
570
+ "operations": [
571
+ "accept-contract-lock"
572
+ ],
573
+ "direction": "source-to-target",
574
+ "pathPolicy": "explicit-bounded",
575
+ "cyclePolicy": "forbid",
576
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
577
+ }
578
+ },
579
+ "relation": {
580
+ "root": "sha256:c803aa7787c92e9ac71e0f52b6d2ec0cc76e8bc0e55f192affa9546286899ce9",
581
+ "record": {
582
+ "schema": "kungfu.fact.temporal-relation/v1",
583
+ "relationId": "buildchain:compatibility:build-lifecycle-307459-to-6b8d38",
584
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
585
+ "sourceRoot": "sha256:4ac7d3ce8c279470d2ae71deda9a8a898064c240e75f02006c0ea4057ce690b1",
586
+ "targetRoot": "sha256:da550aa8c13f0f1424d1edf68653611a8206b49b1f82d0939d248010d49e9080",
587
+ "validFromCutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
588
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
589
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
590
+ "admissionRoots": [
591
+ "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109"
592
+ ]
593
+ }
594
+ },
595
+ "proof": {
596
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
597
+ "proofId": "build-lifecycle-307459-to-6b8d38",
598
+ "predicate": "compatible-breaking-digest",
599
+ "direction": "source-to-target",
600
+ "operation": "accept-contract-lock",
601
+ "source": {
602
+ "contract": "kungfu-buildchain-runtime-contract-world",
603
+ "surfaceId": "controller:build-lifecycle",
604
+ "surfaceKind": "controller",
605
+ "breakingDigest": "sha256:30745921541e9b0f70475bb2178c2559f6aef248f6680670ccd44d8c5a69a6b1"
606
+ },
607
+ "target": {
608
+ "contract": "kungfu-buildchain-runtime-contract-world",
609
+ "surfaceId": "controller:build-lifecycle",
610
+ "surfaceKind": "controller",
611
+ "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb"
612
+ },
613
+ "scope": {
614
+ "contract": "kungfu-buildchain-runtime-contract-world",
615
+ "surfaceId": "controller:build-lifecycle",
616
+ "surfaceKind": "controller",
617
+ "majorLines": [
618
+ "v2",
619
+ "v3"
620
+ ],
621
+ "operation": "accept-contract-lock"
622
+ },
623
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
624
+ "evidence": {
625
+ "kind": "protected-pull-request-contract-acceptance",
626
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2058",
627
+ "protectedBase": "dev/v3/v3.0",
628
+ "sourceCommit": "c9a86bd1ac17b4fae54b0410498830edad80d831",
629
+ "mergeCommit": "3991801a7a7d6fe5e31b9a670dfde7ea59e61253",
630
+ "contractDigest": "sha256:da72850bbd3088f0e9eb20c17382557e0dfb7e68bf4469d352ed870ee8a334e8",
631
+ "compatibilityDigest": "sha256:32a651504c57829085dc8863f0e41dee98eb60708ff6dec958c9c7e4b1010102"
632
+ },
633
+ "evidenceRoot": "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109",
634
+ "authority": {
635
+ "kind": "protected-base-contract-authority",
636
+ "repository": "kungfu-systems/buildchain",
637
+ "protectedBase": "dev/v3/v3.0"
638
+ },
639
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
640
+ "cut": {
641
+ "kind": "protected-git-cut",
642
+ "repository": "kungfu-systems/buildchain",
643
+ "protectedBase": "dev/v3/v3.0",
644
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
645
+ },
646
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
647
+ "proofRoot": "sha256:3bd1c54198b78a462d2005ac66c139ad4d6f1962925c8f0971b4d0a222f1a7c5"
648
+ }
649
+ },
650
+ {
651
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
652
+ "factId": "release-candidate-promote-acd401-to-e60642",
653
+ "factRoot": "sha256:ec1c70ff70cca52ac276fab344b1c2d00c9581a8efec6d6fa37d56cb11632af1",
654
+ "sourceRoot": "sha256:4e97e8e31e7d00e6f616774fec9ab802d5274ed15c852d4e922a1187cd599f91",
655
+ "targetRoot": "sha256:465664b29542d294179396d8c78d507551373f34a5ee0d2682b342fe523174ad",
656
+ "predicate": {
657
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
658
+ "record": {
659
+ "schema": "kungfu.fact.temporal-predicate/v1",
660
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
661
+ "operations": [
662
+ "accept-contract-lock"
663
+ ],
664
+ "direction": "source-to-target",
665
+ "pathPolicy": "explicit-bounded",
666
+ "cyclePolicy": "forbid",
667
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
668
+ }
669
+ },
670
+ "relation": {
671
+ "root": "sha256:ec1c70ff70cca52ac276fab344b1c2d00c9581a8efec6d6fa37d56cb11632af1",
672
+ "record": {
673
+ "schema": "kungfu.fact.temporal-relation/v1",
674
+ "relationId": "buildchain:compatibility:release-candidate-promote-acd401-to-e60642",
675
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
676
+ "sourceRoot": "sha256:4e97e8e31e7d00e6f616774fec9ab802d5274ed15c852d4e922a1187cd599f91",
677
+ "targetRoot": "sha256:465664b29542d294179396d8c78d507551373f34a5ee0d2682b342fe523174ad",
678
+ "validFromCutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
679
+ "scopeRoot": "sha256:0b8668413118308004e8ded1e9d051d94c68311c3944791babb9a4ad29d2d50b",
680
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
681
+ "admissionRoots": [
682
+ "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373"
683
+ ]
684
+ }
685
+ },
686
+ "proof": {
687
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
688
+ "proofId": "release-candidate-promote-acd401-to-e60642",
689
+ "predicate": "compatible-breaking-digest",
690
+ "direction": "source-to-target",
691
+ "operation": "accept-contract-lock",
692
+ "source": {
693
+ "contract": "kungfu-buildchain-runtime-contract-world",
694
+ "surfaceId": "release-candidate-promote",
695
+ "surfaceKind": "workflow",
696
+ "breakingDigest": "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf"
697
+ },
698
+ "target": {
699
+ "contract": "kungfu-buildchain-runtime-contract-world",
700
+ "surfaceId": "release-candidate-promote",
701
+ "surfaceKind": "workflow",
702
+ "breakingDigest": "sha256:e60642aa298933d2c103284794921a6c340a50aa91ee528b06e58892a2a006bf"
703
+ },
704
+ "scope": {
705
+ "contract": "kungfu-buildchain-runtime-contract-world",
706
+ "surfaceId": "release-candidate-promote",
707
+ "surfaceKind": "workflow",
708
+ "majorLines": [
709
+ "v2",
710
+ "v3"
711
+ ],
712
+ "operation": "accept-contract-lock"
713
+ },
714
+ "scopeRoot": "sha256:0b8668413118308004e8ded1e9d051d94c68311c3944791babb9a4ad29d2d50b",
715
+ "evidence": {
716
+ "kind": "protected-pull-request-contract-acceptance",
717
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2342",
718
+ "protectedBase": "dev/v3/v3.0",
719
+ "sourceCommit": "8870db287a9ee5fb95eebbbe907b1649d84d5b7f",
720
+ "mergeCommit": "30b605adea1ed33dcf0bbb4cc7b666b64a6ccd18",
721
+ "contractDigest": "sha256:9c07dbdb9aa8390569cd07ace044af45e6751b91ffe8fcc0cb69a77388b0f72b",
722
+ "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe"
723
+ },
724
+ "evidenceRoot": "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373",
725
+ "authority": {
726
+ "kind": "protected-base-contract-authority",
727
+ "repository": "kungfu-systems/buildchain",
728
+ "protectedBase": "dev/v3/v3.0"
729
+ },
730
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
731
+ "cut": {
732
+ "kind": "protected-git-cut",
733
+ "repository": "kungfu-systems/buildchain",
734
+ "protectedBase": "dev/v3/v3.0",
735
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
736
+ },
737
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
738
+ "proofRoot": "sha256:cb642b68aaf60e9c0eb93d46a2a1fc482810142201c7340ad7efe824b1683921"
739
+ }
740
+ },
741
+ {
742
+ "schema": "kungfu.buildchain.compatibility-fact/v1",
743
+ "factId": "release-propagation-d7a1f1-to-b873ce",
744
+ "factRoot": "sha256:f6e89a46bb73e93583477eeb3bc3a8bd1f36bdafd040777fb3a999460191b360",
745
+ "sourceRoot": "sha256:9d5429548ca8095450edd77104ffcd3ba9ee0f3cf6b24d690ea179938b932ed5",
746
+ "targetRoot": "sha256:06f31cc613d65375a8a893d0d0f7cb665bce2346d04448b348bdc384590826e8",
747
+ "predicate": {
748
+ "root": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
749
+ "record": {
750
+ "schema": "kungfu.fact.temporal-predicate/v1",
751
+ "predicateId": "kungfu.buildchain.compatibility:accept-contract-lock/v1",
752
+ "operations": [
753
+ "accept-contract-lock"
754
+ ],
755
+ "direction": "source-to-target",
756
+ "pathPolicy": "explicit-bounded",
757
+ "cyclePolicy": "forbid",
758
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea"
759
+ }
760
+ },
761
+ "relation": {
762
+ "root": "sha256:f6e89a46bb73e93583477eeb3bc3a8bd1f36bdafd040777fb3a999460191b360",
763
+ "record": {
764
+ "schema": "kungfu.fact.temporal-relation/v1",
765
+ "relationId": "buildchain:compatibility:release-propagation-d7a1f1-to-b873ce",
766
+ "predicateRoot": "sha256:2b211f8251b0410b178f1f579d9bda9aa707877cc05c1ee839a3343f0f2307c9",
767
+ "sourceRoot": "sha256:9d5429548ca8095450edd77104ffcd3ba9ee0f3cf6b24d690ea179938b932ed5",
768
+ "targetRoot": "sha256:06f31cc613d65375a8a893d0d0f7cb665bce2346d04448b348bdc384590826e8",
769
+ "validFromCutRoot": "sha256:8bff86e6995cb22ff77eb3ea5a62b843734e9b9688694dc3d6e3e8847fd88499",
770
+ "scopeRoot": "sha256:0ff862e406419464370403011c3bf90d291d85a2c08ae8179d6b8d540c9e70f2",
771
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
772
+ "admissionRoots": [
773
+ "sha256:943908ff0b680d7ae84c68dc90412e4e6292323531b5e449ce4d1433061258c8"
774
+ ]
775
+ }
776
+ },
777
+ "proof": {
778
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
779
+ "proofId": "release-propagation-d7a1f1-to-b873ce",
780
+ "predicate": "compatible-breaking-digest",
781
+ "direction": "source-to-target",
782
+ "operation": "accept-contract-lock",
783
+ "source": {
784
+ "contract": "kungfu-buildchain-runtime-contract-world",
785
+ "surfaceId": "controller:release-propagation",
786
+ "surfaceKind": "controller",
787
+ "breakingDigest": "sha256:d7a1f15990ce8bd13149474888232c7d4451dd2a49bebf4d4ce1336695da430e"
788
+ },
789
+ "target": {
790
+ "contract": "kungfu-buildchain-runtime-contract-world",
791
+ "surfaceId": "controller:release-propagation",
792
+ "surfaceKind": "controller",
793
+ "breakingDigest": "sha256:b873ceb65618972bea615afcb9c616c138ce834b3246ec7237ef87c1618d68bd"
794
+ },
795
+ "scope": {
796
+ "contract": "kungfu-buildchain-runtime-contract-world",
797
+ "surfaceId": "controller:release-propagation",
798
+ "surfaceKind": "controller",
799
+ "majorLines": [
800
+ "v2",
801
+ "v3"
802
+ ],
803
+ "operation": "accept-contract-lock"
804
+ },
805
+ "scopeRoot": "sha256:0ff862e406419464370403011c3bf90d291d85a2c08ae8179d6b8d540c9e70f2",
806
+ "evidence": {
807
+ "kind": "protected-pull-request-contract-acceptance",
808
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2143",
809
+ "protectedBase": "dev/v3/v3.0",
810
+ "sourceCommit": "b63aff4dd63ad6017b8f48e1c690f595a9c832a2",
811
+ "mergeCommit": "487ee09ca4832ffd15607db00060df4c0839fbae",
812
+ "contractDigest": "sha256:00c37f8a663387831ba4d066056d0b21d4f3c5f3ea5b0cf84456af332cf8d87e",
813
+ "compatibilityDigest": "sha256:3bbcaf835844260ed98414d3bd176667245d12131e13fc748e4c2fae12399691"
814
+ },
815
+ "evidenceRoot": "sha256:943908ff0b680d7ae84c68dc90412e4e6292323531b5e449ce4d1433061258c8",
816
+ "authority": {
817
+ "kind": "protected-base-contract-authority",
818
+ "repository": "kungfu-systems/buildchain",
819
+ "protectedBase": "dev/v3/v3.0"
820
+ },
821
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
822
+ "cut": {
823
+ "kind": "protected-git-cut",
824
+ "repository": "kungfu-systems/buildchain",
825
+ "protectedBase": "dev/v3/v3.0",
826
+ "commit": "487ee09ca4832ffd15607db00060df4c0839fbae"
827
+ },
828
+ "cutRoot": "sha256:8bff86e6995cb22ff77eb3ea5a62b843734e9b9688694dc3d6e3e8847fd88499",
829
+ "proofRoot": "sha256:8b98ff903d3abd8d9a9b6a0b250efd8fdf6fd5d4127aa4d0d0c4a5b3db87f353"
830
+ }
831
+ }
832
+ ],
833
+ "compatibilityProofs": [
834
+ {
835
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
836
+ "proofId": "advanced-release-candidate-promote-aa30f2-to-9db8dd",
837
+ "predicate": "compatible-breaking-digest",
838
+ "direction": "source-to-target",
839
+ "operation": "accept-contract-lock",
840
+ "source": {
841
+ "contract": "kungfu-buildchain-runtime-contract-world",
842
+ "surfaceId": "advanced-release-candidate-promote",
843
+ "surfaceKind": "workflow",
844
+ "breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
845
+ },
846
+ "target": {
847
+ "contract": "kungfu-buildchain-runtime-contract-world",
848
+ "surfaceId": "advanced-release-candidate-promote",
849
+ "surfaceKind": "workflow",
850
+ "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5"
851
+ },
852
+ "scope": {
853
+ "contract": "kungfu-buildchain-runtime-contract-world",
854
+ "surfaceId": "advanced-release-candidate-promote",
855
+ "surfaceKind": "workflow",
856
+ "majorLines": [
857
+ "v2",
858
+ "v3"
859
+ ],
860
+ "operation": "accept-contract-lock"
861
+ },
862
+ "scopeRoot": "sha256:c9746475e09a42adf6e33cf3656d9d7cef8e880ba3efc31b8a3cd599b938a124",
863
+ "evidence": {
864
+ "kind": "protected-pull-request-contract-acceptance",
865
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2342",
866
+ "protectedBase": "dev/v3/v3.0",
867
+ "sourceCommit": "8870db287a9ee5fb95eebbbe907b1649d84d5b7f",
868
+ "mergeCommit": "30b605adea1ed33dcf0bbb4cc7b666b64a6ccd18",
869
+ "contractDigest": "sha256:9c07dbdb9aa8390569cd07ace044af45e6751b91ffe8fcc0cb69a77388b0f72b",
870
+ "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe"
871
+ },
872
+ "evidenceRoot": "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373",
873
+ "authority": {
874
+ "kind": "protected-base-contract-authority",
875
+ "repository": "kungfu-systems/buildchain",
876
+ "protectedBase": "dev/v3/v3.0"
877
+ },
878
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
879
+ "cut": {
880
+ "kind": "protected-git-cut",
881
+ "repository": "kungfu-systems/buildchain",
882
+ "protectedBase": "dev/v3/v3.0",
883
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
884
+ },
885
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
886
+ "proofRoot": "sha256:36c85ba487be1528e85776d2bc5f766a971d42ac238aec30071945f7d60d9fc5"
887
+ },
888
+ {
889
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
890
+ "proofId": "build-channel-router-d40dd0-to-30549a",
891
+ "predicate": "compatible-breaking-digest",
892
+ "direction": "source-to-target",
893
+ "operation": "accept-contract-lock",
894
+ "source": {
895
+ "contract": "kungfu-buildchain-runtime-contract-world",
896
+ "surfaceId": "controller:build-channel-router",
897
+ "surfaceKind": "controller",
898
+ "breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273"
899
+ },
900
+ "target": {
901
+ "contract": "kungfu-buildchain-runtime-contract-world",
902
+ "surfaceId": "controller:build-channel-router",
903
+ "surfaceKind": "controller",
904
+ "breakingDigest": "sha256:30549aa26cd1e1dd81f10fe3529d3c6e3f8438a6efa0100c47ebae4d2f3d71df"
905
+ },
906
+ "scope": {
907
+ "contract": "kungfu-buildchain-runtime-contract-world",
908
+ "surfaceId": "controller:build-channel-router",
909
+ "surfaceKind": "controller",
910
+ "majorLines": [
911
+ "v2",
912
+ "v3"
913
+ ],
914
+ "operation": "accept-contract-lock"
915
+ },
916
+ "scopeRoot": "sha256:dc381e72e9cad86293254f8542394f1abc27b4b0f07c122cb4cad5f73b381ccb",
917
+ "evidence": {
918
+ "kind": "protected-pull-request-contract-acceptance",
919
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2549",
920
+ "protectedBase": "dev/v3/v3.0",
921
+ "sourceCommit": "0d87b772265066f5e6157e1ba6a2ba1021fb5225",
922
+ "mergeCommit": "34fad9d3a94c450d75c0d06fd6ed00470c992ff7",
923
+ "contractDigest": "sha256:2584ba36ab54cd5e9bab9e34dfc08d87a55dc57de1be7641492bf7ceb1366350",
924
+ "compatibilityDigest": "sha256:80f65cc191b1f771475184edf8a1bf9c10dd69bb58060aa09313d0e1e57f508a"
925
+ },
926
+ "evidenceRoot": "sha256:e449bdc62832fd18b33d93833207d70e843f066a85aae8b0c717234194ecb497",
927
+ "authority": {
928
+ "kind": "protected-base-contract-authority",
929
+ "repository": "kungfu-systems/buildchain",
930
+ "protectedBase": "dev/v3/v3.0"
931
+ },
932
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
933
+ "cut": {
934
+ "kind": "protected-git-cut",
935
+ "repository": "kungfu-systems/buildchain",
936
+ "protectedBase": "dev/v3/v3.0",
937
+ "commit": "34fad9d3a94c450d75c0d06fd6ed00470c992ff7"
938
+ },
939
+ "cutRoot": "sha256:3b83f02e22ca82fc4a099b5f8c4353fffb1423b0a5cba41860b1ba86f7c8cbb7",
940
+ "proofRoot": "sha256:36d2e188f43385d6191116393aa81ea025ccf61e21a1c5eae1d56be92a203b31"
941
+ },
942
+ {
943
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
944
+ "proofId": "web-surface-da569f-to-27f0cb",
945
+ "predicate": "compatible-breaking-digest",
946
+ "direction": "source-to-target",
947
+ "operation": "accept-contract-lock",
948
+ "source": {
949
+ "contract": "kungfu-buildchain-runtime-contract-world",
950
+ "surfaceId": "web-surface",
951
+ "surfaceKind": "workflow",
952
+ "breakingDigest": "sha256:da569f90374e878948e3d5160ed9929338ce0572473ca8ee54867b0fe1aaeace"
953
+ },
954
+ "target": {
955
+ "contract": "kungfu-buildchain-runtime-contract-world",
956
+ "surfaceId": "web-surface",
957
+ "surfaceKind": "workflow",
958
+ "breakingDigest": "sha256:27f0cb9c7d97288850d215be8696b323471c41fd1cdf3a2ff3ebf21f62541960"
959
+ },
960
+ "scope": {
961
+ "contract": "kungfu-buildchain-runtime-contract-world",
962
+ "surfaceId": "web-surface",
963
+ "surfaceKind": "workflow",
964
+ "majorLines": [
965
+ "v2",
966
+ "v3"
967
+ ],
968
+ "operation": "accept-contract-lock"
969
+ },
970
+ "scopeRoot": "sha256:0288a1bc232405047630819733074df11cfd86596c0fc95afd4403948399d679",
971
+ "evidence": {
972
+ "kind": "protected-pull-request-contract-acceptance",
973
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2089",
974
+ "protectedBase": "dev/v3/v3.0",
975
+ "sourceCommit": "1a6cb874bc6f1611f3eef607e711d3532798e9e7",
976
+ "mergeCommit": "71a75f21159b994241ec7cb2c50f7a150c5d440b",
977
+ "contractDigest": "sha256:7c2a7c132a2b2722f70f148b81048147047d4d2c46cf33f7cd2dc158aec092e0",
978
+ "compatibilityDigest": "sha256:61af7d0871220bc0909008bdc571905ad500cccf853e7841bc5d462a34b2d436"
979
+ },
980
+ "evidenceRoot": "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c",
981
+ "authority": {
982
+ "kind": "protected-base-contract-authority",
983
+ "repository": "kungfu-systems/buildchain",
984
+ "protectedBase": "dev/v3/v3.0"
985
+ },
986
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
987
+ "cut": {
988
+ "kind": "protected-git-cut",
989
+ "repository": "kungfu-systems/buildchain",
990
+ "protectedBase": "dev/v3/v3.0",
991
+ "commit": "71a75f21159b994241ec7cb2c50f7a150c5d440b"
992
+ },
993
+ "cutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
994
+ "proofRoot": "sha256:3ba66a1e8f8d00ddd45f3f448bcccb15469cbd31f5765d36f61e4cfe7fd0dd41"
995
+ },
996
+ {
997
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
998
+ "proofId": "build-lifecycle-307459-to-6b8d38",
999
+ "predicate": "compatible-breaking-digest",
1000
+ "direction": "source-to-target",
1001
+ "operation": "accept-contract-lock",
1002
+ "source": {
1003
+ "contract": "kungfu-buildchain-runtime-contract-world",
1004
+ "surfaceId": "controller:build-lifecycle",
1005
+ "surfaceKind": "controller",
1006
+ "breakingDigest": "sha256:30745921541e9b0f70475bb2178c2559f6aef248f6680670ccd44d8c5a69a6b1"
1007
+ },
1008
+ "target": {
1009
+ "contract": "kungfu-buildchain-runtime-contract-world",
1010
+ "surfaceId": "controller:build-lifecycle",
1011
+ "surfaceKind": "controller",
1012
+ "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb"
1013
+ },
1014
+ "scope": {
1015
+ "contract": "kungfu-buildchain-runtime-contract-world",
1016
+ "surfaceId": "controller:build-lifecycle",
1017
+ "surfaceKind": "controller",
1018
+ "majorLines": [
1019
+ "v2",
1020
+ "v3"
1021
+ ],
1022
+ "operation": "accept-contract-lock"
1023
+ },
1024
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
1025
+ "evidence": {
1026
+ "kind": "protected-pull-request-contract-acceptance",
1027
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2058",
1028
+ "protectedBase": "dev/v3/v3.0",
1029
+ "sourceCommit": "c9a86bd1ac17b4fae54b0410498830edad80d831",
1030
+ "mergeCommit": "3991801a7a7d6fe5e31b9a670dfde7ea59e61253",
1031
+ "contractDigest": "sha256:da72850bbd3088f0e9eb20c17382557e0dfb7e68bf4469d352ed870ee8a334e8",
1032
+ "compatibilityDigest": "sha256:32a651504c57829085dc8863f0e41dee98eb60708ff6dec958c9c7e4b1010102"
1033
+ },
1034
+ "evidenceRoot": "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109",
1035
+ "authority": {
1036
+ "kind": "protected-base-contract-authority",
1037
+ "repository": "kungfu-systems/buildchain",
1038
+ "protectedBase": "dev/v3/v3.0"
1039
+ },
1040
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1041
+ "cut": {
1042
+ "kind": "protected-git-cut",
1043
+ "repository": "kungfu-systems/buildchain",
1044
+ "protectedBase": "dev/v3/v3.0",
1045
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
1046
+ },
1047
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
1048
+ "proofRoot": "sha256:3bd1c54198b78a462d2005ac66c139ad4d6f1962925c8f0971b4d0a222f1a7c5"
1049
+ },
1050
+ {
1051
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
1052
+ "proofId": "release-propagation-d7a1f1-to-b873ce",
1053
+ "predicate": "compatible-breaking-digest",
1054
+ "direction": "source-to-target",
1055
+ "operation": "accept-contract-lock",
1056
+ "source": {
1057
+ "contract": "kungfu-buildchain-runtime-contract-world",
1058
+ "surfaceId": "controller:release-propagation",
1059
+ "surfaceKind": "controller",
1060
+ "breakingDigest": "sha256:d7a1f15990ce8bd13149474888232c7d4451dd2a49bebf4d4ce1336695da430e"
1061
+ },
1062
+ "target": {
1063
+ "contract": "kungfu-buildchain-runtime-contract-world",
1064
+ "surfaceId": "controller:release-propagation",
1065
+ "surfaceKind": "controller",
1066
+ "breakingDigest": "sha256:b873ceb65618972bea615afcb9c616c138ce834b3246ec7237ef87c1618d68bd"
1067
+ },
1068
+ "scope": {
1069
+ "contract": "kungfu-buildchain-runtime-contract-world",
1070
+ "surfaceId": "controller:release-propagation",
1071
+ "surfaceKind": "controller",
1072
+ "majorLines": [
1073
+ "v2",
1074
+ "v3"
1075
+ ],
1076
+ "operation": "accept-contract-lock"
1077
+ },
1078
+ "scopeRoot": "sha256:0ff862e406419464370403011c3bf90d291d85a2c08ae8179d6b8d540c9e70f2",
1079
+ "evidence": {
1080
+ "kind": "protected-pull-request-contract-acceptance",
1081
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2143",
1082
+ "protectedBase": "dev/v3/v3.0",
1083
+ "sourceCommit": "b63aff4dd63ad6017b8f48e1c690f595a9c832a2",
1084
+ "mergeCommit": "487ee09ca4832ffd15607db00060df4c0839fbae",
1085
+ "contractDigest": "sha256:00c37f8a663387831ba4d066056d0b21d4f3c5f3ea5b0cf84456af332cf8d87e",
1086
+ "compatibilityDigest": "sha256:3bbcaf835844260ed98414d3bd176667245d12131e13fc748e4c2fae12399691"
1087
+ },
1088
+ "evidenceRoot": "sha256:943908ff0b680d7ae84c68dc90412e4e6292323531b5e449ce4d1433061258c8",
1089
+ "authority": {
1090
+ "kind": "protected-base-contract-authority",
1091
+ "repository": "kungfu-systems/buildchain",
1092
+ "protectedBase": "dev/v3/v3.0"
1093
+ },
1094
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1095
+ "cut": {
1096
+ "kind": "protected-git-cut",
1097
+ "repository": "kungfu-systems/buildchain",
1098
+ "protectedBase": "dev/v3/v3.0",
1099
+ "commit": "487ee09ca4832ffd15607db00060df4c0839fbae"
1100
+ },
1101
+ "cutRoot": "sha256:8bff86e6995cb22ff77eb3ea5a62b843734e9b9688694dc3d6e3e8847fd88499",
1102
+ "proofRoot": "sha256:8b98ff903d3abd8d9a9b6a0b250efd8fdf6fd5d4127aa4d0d0c4a5b3db87f353"
1103
+ },
1104
+ {
1105
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
1106
+ "proofId": "build-lifecycle-e264a7-to-6b8d38",
1107
+ "predicate": "compatible-breaking-digest",
1108
+ "direction": "source-to-target",
1109
+ "operation": "accept-contract-lock",
1110
+ "source": {
1111
+ "contract": "kungfu-buildchain-runtime-contract-world",
1112
+ "surfaceId": "controller:build-lifecycle",
1113
+ "surfaceKind": "controller",
1114
+ "breakingDigest": "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be"
1115
+ },
1116
+ "target": {
1117
+ "contract": "kungfu-buildchain-runtime-contract-world",
1118
+ "surfaceId": "controller:build-lifecycle",
1119
+ "surfaceKind": "controller",
1120
+ "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb"
1121
+ },
1122
+ "scope": {
1123
+ "contract": "kungfu-buildchain-runtime-contract-world",
1124
+ "surfaceId": "controller:build-lifecycle",
1125
+ "surfaceKind": "controller",
1126
+ "majorLines": [
1127
+ "v2",
1128
+ "v3"
1129
+ ],
1130
+ "operation": "accept-contract-lock"
1131
+ },
1132
+ "scopeRoot": "sha256:c1a391a06ad2732c09c09fe0a0806569ac066684f5f2cd381a634c7784da6de3",
1133
+ "evidence": {
1134
+ "kind": "protected-pull-request-contract-acceptance",
1135
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2058",
1136
+ "protectedBase": "dev/v3/v3.0",
1137
+ "sourceCommit": "c9a86bd1ac17b4fae54b0410498830edad80d831",
1138
+ "mergeCommit": "3991801a7a7d6fe5e31b9a670dfde7ea59e61253",
1139
+ "contractDigest": "sha256:da72850bbd3088f0e9eb20c17382557e0dfb7e68bf4469d352ed870ee8a334e8",
1140
+ "compatibilityDigest": "sha256:32a651504c57829085dc8863f0e41dee98eb60708ff6dec958c9c7e4b1010102"
1141
+ },
1142
+ "evidenceRoot": "sha256:ec5b8374a76dea9fd344cace735f46caa7a8167eef1becd55fbdb0d3cd6f1109",
1143
+ "authority": {
1144
+ "kind": "protected-base-contract-authority",
1145
+ "repository": "kungfu-systems/buildchain",
1146
+ "protectedBase": "dev/v3/v3.0"
1147
+ },
1148
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1149
+ "cut": {
1150
+ "kind": "protected-git-cut",
1151
+ "repository": "kungfu-systems/buildchain",
1152
+ "protectedBase": "dev/v3/v3.0",
1153
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
1154
+ },
1155
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
1156
+ "proofRoot": "sha256:9024634cef43a9d695fa224d26be9aeb6370d3c981b003ece3b659dde8e73713"
1157
+ },
1158
+ {
1159
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
1160
+ "proofId": "reusable-build-a6a353-to-dfbedd",
1161
+ "predicate": "compatible-breaking-digest",
1162
+ "direction": "source-to-target",
1163
+ "operation": "accept-contract-lock",
1164
+ "source": {
1165
+ "contract": "kungfu-buildchain-runtime-contract-world",
1166
+ "surfaceId": "reusable-build",
1167
+ "surfaceKind": "workflow",
1168
+ "breakingDigest": "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650"
1169
+ },
1170
+ "target": {
1171
+ "contract": "kungfu-buildchain-runtime-contract-world",
1172
+ "surfaceId": "reusable-build",
1173
+ "surfaceKind": "workflow",
1174
+ "breakingDigest": "sha256:dfbedd543ae0c067982b5c8c02d98dd2f7f7df88752be97fb330da6b0ba30faa"
1175
+ },
1176
+ "scope": {
1177
+ "contract": "kungfu-buildchain-runtime-contract-world",
1178
+ "surfaceId": "reusable-build",
1179
+ "surfaceKind": "workflow",
1180
+ "majorLines": [
1181
+ "v2",
1182
+ "v3"
1183
+ ],
1184
+ "operation": "accept-contract-lock"
1185
+ },
1186
+ "scopeRoot": "sha256:b50ae93f868501c8acfc93d93dc2deec916a4fcf12c19f959fbb3893cc11bb6c",
1187
+ "evidence": {
1188
+ "kind": "protected-pull-request-contract-acceptance",
1189
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2089",
1190
+ "protectedBase": "dev/v3/v3.0",
1191
+ "sourceCommit": "1a6cb874bc6f1611f3eef607e711d3532798e9e7",
1192
+ "mergeCommit": "71a75f21159b994241ec7cb2c50f7a150c5d440b",
1193
+ "contractDigest": "sha256:7c2a7c132a2b2722f70f148b81048147047d4d2c46cf33f7cd2dc158aec092e0",
1194
+ "compatibilityDigest": "sha256:61af7d0871220bc0909008bdc571905ad500cccf853e7841bc5d462a34b2d436"
1195
+ },
1196
+ "evidenceRoot": "sha256:8e0184e579c42a66851992a79d54b6f8add9eea776a589bc3004fe0e2177b15c",
1197
+ "authority": {
1198
+ "kind": "protected-base-contract-authority",
1199
+ "repository": "kungfu-systems/buildchain",
1200
+ "protectedBase": "dev/v3/v3.0"
1201
+ },
1202
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1203
+ "cut": {
1204
+ "kind": "protected-git-cut",
1205
+ "repository": "kungfu-systems/buildchain",
1206
+ "protectedBase": "dev/v3/v3.0",
1207
+ "commit": "71a75f21159b994241ec7cb2c50f7a150c5d440b"
1208
+ },
1209
+ "cutRoot": "sha256:4a758c2d730bf99a28ae37057e865e9f0cb8a516200b5a0c29851ca414efa556",
1210
+ "proofRoot": "sha256:b99176f414752ffb276f4add6183aa81eeb480598368ca4f57804f024212d0f5"
1211
+ },
1212
+ {
1213
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
1214
+ "proofId": "release-candidate-promote-acd401-to-e60642",
1215
+ "predicate": "compatible-breaking-digest",
1216
+ "direction": "source-to-target",
1217
+ "operation": "accept-contract-lock",
1218
+ "source": {
1219
+ "contract": "kungfu-buildchain-runtime-contract-world",
1220
+ "surfaceId": "release-candidate-promote",
1221
+ "surfaceKind": "workflow",
1222
+ "breakingDigest": "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf"
1223
+ },
1224
+ "target": {
1225
+ "contract": "kungfu-buildchain-runtime-contract-world",
1226
+ "surfaceId": "release-candidate-promote",
1227
+ "surfaceKind": "workflow",
1228
+ "breakingDigest": "sha256:e60642aa298933d2c103284794921a6c340a50aa91ee528b06e58892a2a006bf"
1229
+ },
1230
+ "scope": {
1231
+ "contract": "kungfu-buildchain-runtime-contract-world",
1232
+ "surfaceId": "release-candidate-promote",
1233
+ "surfaceKind": "workflow",
1234
+ "majorLines": [
1235
+ "v2",
1236
+ "v3"
1237
+ ],
1238
+ "operation": "accept-contract-lock"
1239
+ },
1240
+ "scopeRoot": "sha256:0b8668413118308004e8ded1e9d051d94c68311c3944791babb9a4ad29d2d50b",
1241
+ "evidence": {
1242
+ "kind": "protected-pull-request-contract-acceptance",
1243
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/2342",
1244
+ "protectedBase": "dev/v3/v3.0",
1245
+ "sourceCommit": "8870db287a9ee5fb95eebbbe907b1649d84d5b7f",
1246
+ "mergeCommit": "30b605adea1ed33dcf0bbb4cc7b666b64a6ccd18",
1247
+ "contractDigest": "sha256:9c07dbdb9aa8390569cd07ace044af45e6751b91ffe8fcc0cb69a77388b0f72b",
1248
+ "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe"
1249
+ },
1250
+ "evidenceRoot": "sha256:c428bab55d265c91220aa10f7f3d8be508bdc1b412049ca9de48fa6f9898a373",
1251
+ "authority": {
1252
+ "kind": "protected-base-contract-authority",
1253
+ "repository": "kungfu-systems/buildchain",
1254
+ "protectedBase": "dev/v3/v3.0"
1255
+ },
1256
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1257
+ "cut": {
1258
+ "kind": "protected-git-cut",
1259
+ "repository": "kungfu-systems/buildchain",
1260
+ "protectedBase": "dev/v3/v3.0",
1261
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
1262
+ },
1263
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
1264
+ "proofRoot": "sha256:cb642b68aaf60e9c0eb93d46a2a1fc482810142201c7340ad7efe824b1683921"
1265
+ },
1266
+ {
1267
+ "schema": "kungfu.buildchain.compatibility-proof/v1",
1268
+ "proofId": "promote-buildchain-ref-action-a59f09-to-6147c0",
1269
+ "predicate": "compatible-breaking-digest",
1270
+ "direction": "source-to-target",
1271
+ "operation": "accept-contract-lock",
1272
+ "source": {
1273
+ "contract": "kungfu-buildchain-runtime-contract-world",
1274
+ "surfaceId": "promote-buildchain-ref-action",
1275
+ "surfaceKind": "action",
1276
+ "breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
1277
+ },
1278
+ "target": {
1279
+ "contract": "kungfu-buildchain-runtime-contract-world",
1280
+ "surfaceId": "promote-buildchain-ref-action",
1281
+ "surfaceKind": "action",
1282
+ "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda"
1283
+ },
1284
+ "scope": {
1285
+ "contract": "kungfu-buildchain-runtime-contract-world",
1286
+ "surfaceId": "promote-buildchain-ref-action",
1287
+ "surfaceKind": "action",
1288
+ "majorLines": [
1289
+ "v2",
1290
+ "v3"
1291
+ ],
1292
+ "operation": "accept-contract-lock"
1293
+ },
1294
+ "scopeRoot": "sha256:dbf061c2f7608451f0d2ae47e2d7eaa323d7cf61699f20467ac73712748e50c5",
1295
+ "evidence": {
1296
+ "kind": "protected-pull-request-contract-acceptance",
1297
+ "pullRequest": "https://github.com/kungfu-systems/buildchain/pull/1556",
1298
+ "protectedBase": "dev/v2/v2.14",
1299
+ "sourceCommit": "f8e2c5d28ef34d711892589331b7e018095a96d7",
1300
+ "mergeCommit": "6e0c29be1489f686a9a3792b46bfaa4466828393",
1301
+ "contractDigest": "sha256:f6dbf5147d9ad3b8c49ba6630cd52b8c7853ead7c921d7e1210a393aebf97d1f",
1302
+ "compatibilityDigest": "sha256:cdf588422ec6b460bd6f631400efa6e361a045e052c8967d6c50fadd7aa4dd90"
1303
+ },
1304
+ "evidenceRoot": "sha256:454c8cf77d6ecb35de2cdb2f8f80832d7fb31b9f9ef300749ac8b1595fd5cf86",
1305
+ "authority": {
1306
+ "kind": "protected-base-contract-authority",
1307
+ "repository": "kungfu-systems/buildchain",
1308
+ "protectedBase": "dev/v3/v3.0"
1309
+ },
1310
+ "authorityRoot": "sha256:6908bf14a35e1ad7d0b865cb776744b789d1b41a0920d2160ef374febb4e24ea",
1311
+ "cut": {
1312
+ "kind": "protected-git-cut",
1313
+ "repository": "kungfu-systems/buildchain",
1314
+ "protectedBase": "dev/v3/v3.0",
1315
+ "commit": "ff0f9006be1c8f63be40e67789e0cfd28fd69d46"
1316
+ },
1317
+ "cutRoot": "sha256:4fd5ae0cdad01a09e91bbb3f183ac595510a8f25baf7ba865de7633a7eacb3eb",
1318
+ "proofRoot": "sha256:e6f93f44a6613a9d6de776ebe8f29b1779b0cd18a24bdf126ec6c1a07770fa75"
1319
+ }
1320
+ ],
12
1321
  "surfaces": [
13
1322
  {
14
1323
  "contractVersion": 1,
@@ -52,7 +1361,16 @@
52
1361
  "retryable GitHub fallback fetches use a bounded attempt budget before exact source SHA and tree verification"
53
1362
  ],
54
1363
  "breakingDigest": "sha256:dfbedd543ae0c067982b5c8c02d98dd2f7f7df88752be97fb330da6b0ba30faa",
55
- "auditDigest": "sha256:b3cad87356b28e5d78fe8663f63354fada735cf8ad32c93884bb804ef73be76c"
1364
+ "auditDigest": "sha256:6cf134f8bc0c0ab488cb159ef2bb9f7a94b454c4f7adee134ce7dee00d84c5d3",
1365
+ "compatibleBreakingDigests": [
1366
+ "sha256:a6a35370d6b0d0f46e1b2712dcc01961fe53c2febde95409a27a485c10a36650"
1367
+ ],
1368
+ "compatibilityProofRoots": [
1369
+ "sha256:b99176f414752ffb276f4add6183aa81eeb480598368ca4f57804f024212d0f5"
1370
+ ],
1371
+ "compatibilityFactRoots": [
1372
+ "sha256:7c85c77b8282d123924b89b4f5b239b58b7b1383af91b9006425d9269a2c6ce5"
1373
+ ]
56
1374
  },
57
1375
  {
58
1376
  "contractVersion": 1,
@@ -93,6 +1411,89 @@
93
1411
  "breakingDigest": "sha256:c4597dfa89e1a58f1023905092b849644f5c080abf150aeba9c7e1cd5ed43962",
94
1412
  "auditDigest": "sha256:97fa61f0e97641edd3b1b435ace06c621e702f0b8b406c4f3998c148a337c74a"
95
1413
  },
1414
+ {
1415
+ "contractVersion": 1,
1416
+ "stability": "stable",
1417
+ "additiveChanges": "optional inputs, optional outputs, diagnostics, and documentation may be added within the same major line",
1418
+ "id": "dev-pr-auto-merge",
1419
+ "kind": "workflow",
1420
+ "path": ".github/workflows/dev-pr-auto-merge.yml",
1421
+ "publicRef": "kungfu-systems/buildchain/.github/workflows/dev-pr-auto-merge.yml@v4-alpha",
1422
+ "requiredInputs": [
1423
+ "target-branch",
1424
+ "expected-pr-number",
1425
+ "expected-head-sha"
1426
+ ],
1427
+ "requiredOutputs": [
1428
+ "admission-receipt-root",
1429
+ "warrant-state-root",
1430
+ "provider-heartbeat-receipt-root",
1431
+ "provider-finalizer-boundary-root"
1432
+ ],
1433
+ "breakingDefaults": {
1434
+ "runtimeSelectorDefault": "v4",
1435
+ "authorityMode": "two-phase-delivery-warrant",
1436
+ "boundedAuthorityWorkflowIntegration": "not-advertised",
1437
+ "boundedAuthoritySupportedSurfaces": [
1438
+ "cli",
1439
+ "node-api",
1440
+ "schema"
1441
+ ],
1442
+ "publicFloatingCaller": "v4-alpha",
1443
+ "durableSelfDeliveryRef": "v4-alpha",
1444
+ "independentHeartbeatRunner": "macos-15",
1445
+ "candidateCredentialAccess": "forbidden"
1446
+ },
1447
+ "optionalInputs": [
1448
+ "buildchain-repository",
1449
+ "buildchain-ref",
1450
+ "source-workflow-run-id",
1451
+ "legacy-active-owner-binding-json",
1452
+ "delivery-warrant-mode",
1453
+ "handoff-workflow-id",
1454
+ "source-workflow-id",
1455
+ "assignment-root",
1456
+ "initiative-root",
1457
+ "source-identity-root",
1458
+ "source-patch-root",
1459
+ "plan-root",
1460
+ "closure-root",
1461
+ "dependency-root",
1462
+ "toolchain-root",
1463
+ "environment-root",
1464
+ "affected-paths-json",
1465
+ "shard-evidence-roots-json",
1466
+ "release-blocker-priority-json",
1467
+ "native-proof-json",
1468
+ "native-command",
1469
+ "native-command-root",
1470
+ "native-heartbeat-seconds",
1471
+ "delivery-class",
1472
+ "delivery-priority",
1473
+ "required-status-checks",
1474
+ "queue-admission-context",
1475
+ "active-lease-context",
1476
+ "ready-label",
1477
+ "block-labels",
1478
+ "allowed-head-prefixes",
1479
+ "require-approval",
1480
+ "same-repository-only",
1481
+ "max-merges",
1482
+ "merge-method",
1483
+ "landing-mode",
1484
+ "dry-run"
1485
+ ],
1486
+ "guarantees": [
1487
+ "this reusable workflow executes the single-flight v1 Delivery Warrant and does not advertise bounded v2 Landing integration",
1488
+ "bounded v2 authority is a separate opt-in CLI, Node API, and schema surface whose controller deployment must be explicit",
1489
+ "candidate execution and evidence sealing receive no provider write credentials",
1490
+ "a separate credentialed hosted runner durably heartbeats the exact fence through provider-confirmed native and seal completion",
1491
+ "the finalizer validates rooted heartbeat continuity and latest durable state before qualification, failure settlement, or landing",
1492
+ "durable consumers call the public floating workflow and may route a train or exact runtime only through trusted non-persistent dispatch input"
1493
+ ],
1494
+ "breakingDigest": "sha256:21b65d0746d2e8b3e8a7df4c6fab295a85c8fd42cc405ec3bc5df5cdab0421f0",
1495
+ "auditDigest": "sha256:1392bc85e8aef8c19161b06764900c2cdb0f0cd57bf65dc95ad578040add7bea"
1496
+ },
96
1497
  {
97
1498
  "contractVersion": 1,
98
1499
  "stability": "stable",
@@ -189,11 +1590,8 @@
189
1590
  "publish-gate source locks are created by the wrapper and enforced by promote-buildchain-ref before publish side effects",
190
1591
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
191
1592
  ],
192
- "compatibleBreakingDigests": [
193
- "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf"
194
- ],
195
1593
  "breakingDigest": "sha256:5f10c81d3f80cb417960be682921884639c40b6d875f1a3b1ffae7e652c3f468",
196
- "auditDigest": "sha256:2d8eaa093d31391c56a7c672a8ba1fbb756b66f5d05dc4f04909fceb077ea376"
1594
+ "auditDigest": "sha256:0fc3f61d5a10b76dcc03aba4e1d4eea2a25b0de4921929d5c86d27db00d08da6"
197
1595
  },
198
1596
  {
199
1597
  "contractVersion": 1,
@@ -247,11 +1645,17 @@
247
1645
  "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix",
248
1646
  "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph"
249
1647
  ],
1648
+ "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
1649
+ "auditDigest": "sha256:80b3532dc9b473dd2327c28dd68fb7ddfe01b6bdad14f22f7e9be435490f9088",
250
1650
  "compatibleBreakingDigests": [
251
1651
  "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
252
1652
  ],
253
- "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
254
- "auditDigest": "sha256:b7532257bb94b8cf5ed401a49caa14a7beda404efa201a89bee928b0fb52a7c9"
1653
+ "compatibilityProofRoots": [
1654
+ "sha256:36c85ba487be1528e85776d2bc5f766a971d42ac238aec30071945f7d60d9fc5"
1655
+ ],
1656
+ "compatibilityFactRoots": [
1657
+ "sha256:5664da2363bed0b45497215b60763c3be627e568eb3182af5891c23ae3875fbe"
1658
+ ]
255
1659
  },
256
1660
  {
257
1661
  "contractVersion": 1,
@@ -295,7 +1699,16 @@
295
1699
  "channel-aware artifact host facts are checked against the deploy plan before adapter side effects"
296
1700
  ],
297
1701
  "breakingDigest": "sha256:27f0cb9c7d97288850d215be8696b323471c41fd1cdf3a2ff3ebf21f62541960",
298
- "auditDigest": "sha256:748e1d69ca28b631e86788de0ff359b11164b3ac1edda1b146ca49f3ac3856dc"
1702
+ "auditDigest": "sha256:748e1d69ca28b631e86788de0ff359b11164b3ac1edda1b146ca49f3ac3856dc",
1703
+ "compatibleBreakingDigests": [
1704
+ "sha256:da569f90374e878948e3d5160ed9929338ce0572473ca8ee54867b0fe1aaeace"
1705
+ ],
1706
+ "compatibilityProofRoots": [
1707
+ "sha256:3ba66a1e8f8d00ddd45f3f448bcccb15469cbd31f5765d36f61e4cfe7fd0dd41"
1708
+ ],
1709
+ "compatibilityFactRoots": [
1710
+ "sha256:bba5690e6c535b54623d31b3260e59381bdb50161d7bff33b8e42b8b6dd3135a"
1711
+ ]
299
1712
  },
300
1713
  {
301
1714
  "contractVersion": 1,
@@ -474,11 +1887,17 @@
474
1887
  "publish transactions can require a resolved publish-gate source lock to prevent floating-ref drift",
475
1888
  "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata bound to the authoritative publication channel and tag syntax retained as the fallback for ordinary callers"
476
1889
  ],
1890
+ "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
1891
+ "auditDigest": "sha256:3c34606573df2ff29c4bc9b959f0b842ca7653427139c4bf8d600f152d5fe1a4",
477
1892
  "compatibleBreakingDigests": [
478
1893
  "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
479
1894
  ],
480
- "breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
481
- "auditDigest": "sha256:c84da8a7e2bf428288e24c7a105dd718a8cc2db1d08d9e8fd0fa374430653fa7"
1895
+ "compatibilityProofRoots": [
1896
+ "sha256:e6f93f44a6613a9d6de776ebe8f29b1779b0cd18a24bdf126ec6c1a07770fa75"
1897
+ ],
1898
+ "compatibilityFactRoots": [
1899
+ "sha256:50e5b6e644493ac00d5b1d83a0ec6009f9faaae1bee15e88ee8386c9ec8a775d"
1900
+ ]
482
1901
  },
483
1902
  {
484
1903
  "contractVersion": 1,
@@ -593,7 +2012,7 @@
593
2012
  "release-state SHA is recorded as a durable audit entrance"
594
2013
  ],
595
2014
  "breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
596
- "auditDigest": "sha256:8276788ccdcfb55fab5a0343ecf9474273e91c99fc5e1630e19ccf6b920cbd90"
2015
+ "auditDigest": "sha256:2988f713a00099a83b76302bff589c355502c90854c53f608d004e64e9ee7302"
597
2016
  },
598
2017
  {
599
2018
  "contractVersion": 1,
@@ -642,7 +2061,7 @@
642
2061
  "prose-only public claims downgrade the release trust passport audit"
643
2062
  ],
644
2063
  "breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
645
- "auditDigest": "sha256:8276788ccdcfb55fab5a0343ecf9474273e91c99fc5e1630e19ccf6b920cbd90"
2064
+ "auditDigest": "sha256:2988f713a00099a83b76302bff589c355502c90854c53f608d004e64e9ee7302"
646
2065
  },
647
2066
  {
648
2067
  "contractVersion": 1,
@@ -702,7 +2121,7 @@
702
2121
  "README badge block checks and writes are generated from machine-readable repository facts"
703
2122
  ],
704
2123
  "breakingDigest": "sha256:90a73892b2d6c214048448d5f45df75639bdf7b7e8fefd9c596e04b087407bcc",
705
- "auditDigest": "sha256:377a975d16ffd1e36f5abd60538107380c3bd9e60337482af6aa5b1384742a1b"
2124
+ "auditDigest": "sha256:b3ca92bdcfc8415867ebfd504883ac05982ee9116056141e0bdf10b400fe4d9a"
706
2125
  },
707
2126
  {
708
2127
  "contractVersion": 1,
@@ -792,7 +2211,7 @@
792
2211
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
793
2212
  ],
794
2213
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
795
- "auditDigest": "sha256:e55862ef0e7e4c93238c953d01c758846fd72f73fbf0d1c99a589fc900142127"
2214
+ "auditDigest": "sha256:9ac244b89ab685df5c1d43ebcb9195c9133261b77d2ce948e3d4083e8651f086"
796
2215
  },
797
2216
  {
798
2217
  "contractVersion": 1,
@@ -814,7 +2233,7 @@
814
2233
  "agents can discover supported Node APIs without importing internal file paths"
815
2234
  ],
816
2235
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
817
- "auditDigest": "sha256:67fa2bad84b1c726e71b9a22c8ca3fe80864b044476fd6fe18d776bfb3b21cc0"
2236
+ "auditDigest": "sha256:faab536c4d343dcda528bef9fe3c1646dba922c64d8fd39a85fde543f3bab0de"
818
2237
  },
819
2238
  {
820
2239
  "contractVersion": 1,
@@ -929,7 +2348,7 @@
929
2348
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
930
2349
  ],
931
2350
  "breakingDigest": "sha256:d4bd0f2a1921bfed71a4d9104d45934555bde74a5c189f93ad79f37074c02b87",
932
- "auditDigest": "sha256:d85f695dd506fba489dab99d7c37f3ebf6ac7efed32d887288286b9496108209"
2351
+ "auditDigest": "sha256:754b9b628d1906785c3882a5ec62c7f8a9f83140ce3741fecc40f3baa91bd0a2"
933
2352
  },
934
2353
  {
935
2354
  "contractVersion": 1,
@@ -1482,10 +2901,6 @@
1482
2901
  }
1483
2902
  }
1484
2903
  },
1485
- "compatibleBreakingDigests": [
1486
- "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be",
1487
- "sha256:30745921541e9b0f70475bb2178c2559f6aef248f6680670ccd44d8c5a69a6b1"
1488
- ],
1489
2904
  "guarantees": [
1490
2905
  "plans bind exact consumer source SHA, exact Buildchain runtime SHA, and the runtime contract digest",
1491
2906
  "receipts bind the plan digest and preserve pass, fail, skip, and partial stage outcomes",
@@ -1493,7 +2908,19 @@
1493
2908
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1494
2909
  ],
1495
2910
  "breakingDigest": "sha256:6b8d38e92b2c67b5bc83fae0a3fd95bfa47582fbc176e6cdeebe7630a57534cb",
1496
- "auditDigest": "sha256:b3cad87356b28e5d78fe8663f63354fada735cf8ad32c93884bb804ef73be76c"
2911
+ "auditDigest": "sha256:6cf134f8bc0c0ab488cb159ef2bb9f7a94b454c4f7adee134ce7dee00d84c5d3",
2912
+ "compatibleBreakingDigests": [
2913
+ "sha256:30745921541e9b0f70475bb2178c2559f6aef248f6680670ccd44d8c5a69a6b1",
2914
+ "sha256:e264a79f9f399038c2fcfd21e4168c68c2e1485ee5c651c02242a02b622ac2be"
2915
+ ],
2916
+ "compatibilityProofRoots": [
2917
+ "sha256:3bd1c54198b78a462d2005ac66c139ad4d6f1962925c8f0971b4d0a222f1a7c5",
2918
+ "sha256:9024634cef43a9d695fa224d26be9aeb6370d3c981b003ece3b659dde8e73713"
2919
+ ],
2920
+ "compatibilityFactRoots": [
2921
+ "sha256:c803aa7787c92e9ac71e0f52b6d2ec0cc76e8bc0e55f192affa9546286899ce9",
2922
+ "sha256:b45ecad5988d358bc4604f28db0faad793a02d8ee8592cc1f4323365e951c6f0"
2923
+ ]
1497
2924
  },
1498
2925
  {
1499
2926
  "contractVersion": 1,
@@ -2060,7 +3487,16 @@
2060
3487
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
2061
3488
  ],
2062
3489
  "breakingDigest": "sha256:30549aa26cd1e1dd81f10fe3529d3c6e3f8438a6efa0100c47ebae4d2f3d71df",
2063
- "auditDigest": "sha256:97fa61f0e97641edd3b1b435ace06c621e702f0b8b406c4f3998c148a337c74a"
3490
+ "auditDigest": "sha256:97fa61f0e97641edd3b1b435ace06c621e702f0b8b406c4f3998c148a337c74a",
3491
+ "compatibleBreakingDigests": [
3492
+ "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273"
3493
+ ],
3494
+ "compatibilityProofRoots": [
3495
+ "sha256:36d2e188f43385d6191116393aa81ea025ccf61e21a1c5eae1d56be92a203b31"
3496
+ ],
3497
+ "compatibilityFactRoots": [
3498
+ "sha256:47c1d78adba0d75ac74409d85ad6cf1188d10d25165d2d561118cf76e9ccb701"
3499
+ ]
2064
3500
  },
2065
3501
  {
2066
3502
  "contractVersion": 1,
@@ -3646,7 +5082,7 @@
3646
5082
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
3647
5083
  ],
3648
5084
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
3649
- "auditDigest": "sha256:b7532257bb94b8cf5ed401a49caa14a7beda404efa201a89bee928b0fb52a7c9"
5085
+ "auditDigest": "sha256:80b3532dc9b473dd2327c28dd68fb7ddfe01b6bdad14f22f7e9be435490f9088"
3650
5086
  },
3651
5087
  {
3652
5088
  "contractVersion": 1,
@@ -3802,7 +5238,16 @@
3802
5238
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
3803
5239
  ],
3804
5240
  "breakingDigest": "sha256:b873ceb65618972bea615afcb9c616c138ce834b3246ec7237ef87c1618d68bd",
3805
- "auditDigest": "sha256:ef845b25978cd63c0fc6cbc83271e30b245f9d8605c2c25ae7e87c13a35b1302"
5241
+ "auditDigest": "sha256:ef845b25978cd63c0fc6cbc83271e30b245f9d8605c2c25ae7e87c13a35b1302",
5242
+ "compatibleBreakingDigests": [
5243
+ "sha256:d7a1f15990ce8bd13149474888232c7d4451dd2a49bebf4d4ce1336695da430e"
5244
+ ],
5245
+ "compatibilityProofRoots": [
5246
+ "sha256:8b98ff903d3abd8d9a9b6a0b250efd8fdf6fd5d4127aa4d0d0c4a5b3db87f353"
5247
+ ],
5248
+ "compatibilityFactRoots": [
5249
+ "sha256:f6e89a46bb73e93583477eeb3bc3a8bd1f36bdafd040777fb3a999460191b360"
5250
+ ]
3806
5251
  },
3807
5252
  {
3808
5253
  "contractVersion": 1,
@@ -3859,6 +5304,9 @@
3859
5304
  "auditDigest": "sha256:d07482cd66413a2fb3781a3b76f960b8151b6231841799647fe237820de2fde6"
3860
5305
  }
3861
5306
  ],
3862
- "compatibilityDigest": "sha256:7234ed200c568b1fea0e469de61ec7a67da48ede0af6290fb49b93a9e62e0b65",
3863
- "contractDigest": "sha256:969638b160fb3df24759937f155b07ea5316a3d35f40b80563f50f7bf2b92ae7"
5307
+ "compatibilityFactRegistryRoot": "sha256:232fd556a2372b29db586bbc2acbdfce6464a68c93902797ff527f75f7816c42",
5308
+ "compatibilityFactCutRoot": "sha256:f61b975d4a96c921cc4bd37fb3ed9a0596b47004fe34dc7219979d697e3707f9",
5309
+ "compatibilityProofRegistryRoot": "sha256:b7194b811e4d3af2df4390bc4d1731e16a86215bd64ee18cb630dd5492f4fb63",
5310
+ "compatibilityDigest": "sha256:5de1c69386510b74b17eb70141b8bdd07063d62c504f91db5e84b67c6d4b64a2",
5311
+ "contractDigest": "sha256:6ee848026189647e8ccffdbddb07fb264262600ee914ae405989584162474629"
3864
5312
  }