@kungfu-tech/buildchain 3.0.6-alpha.2 → 3.0.6-alpha.4

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.
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.libkungfu.dev/schemas/release-candidate-recovery-v1.schema.json",
4
+ "title": "Buildchain Release Candidate Recovery Receipt v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "contract",
10
+ "action",
11
+ "createdAt",
12
+ "repository",
13
+ "recoveryRunId",
14
+ "originalCandidate",
15
+ "target",
16
+ "recovered",
17
+ "skippedBuildStages",
18
+ "payloadBytes",
19
+ "buildchainToolingSha",
20
+ "transaction",
21
+ "root"
22
+ ],
23
+ "properties": {
24
+ "schemaVersion": { "const": 1 },
25
+ "contract": { "const": "kungfu-buildchain-release-candidate-recovery/v1" },
26
+ "action": { "const": "reused" },
27
+ "createdAt": { "type": "string", "format": "date-time" },
28
+ "repository": { "type": "string", "pattern": "^[^/\\s]+/[^/\\s]+$" },
29
+ "recoveryRunId": { "type": "string" },
30
+ "originalCandidate": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["runId", "workflowFile", "workflowName", "pullRequest", "sourceSha", "mergeSha", "tree"],
34
+ "properties": {
35
+ "runId": { "type": "string", "pattern": "^[0-9]+$" },
36
+ "workflowFile": { "type": "string" },
37
+ "workflowName": { "type": "string" },
38
+ "pullRequest": { "type": "integer", "minimum": 1 },
39
+ "sourceSha": { "$ref": "#/$defs/gitSha" },
40
+ "mergeSha": { "type": "string", "pattern": "^(?:[0-9a-f]{40})?$" },
41
+ "tree": { "$ref": "#/$defs/gitSha" }
42
+ }
43
+ },
44
+ "target": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["channel", "ref", "sha", "tree", "version"],
48
+ "properties": {
49
+ "channel": { "enum": ["alpha", "release", "major"] },
50
+ "ref": { "type": "string" },
51
+ "sha": { "$ref": "#/$defs/gitSha" },
52
+ "tree": { "$ref": "#/$defs/gitSha" },
53
+ "version": { "type": "string", "minLength": 1 }
54
+ }
55
+ },
56
+ "recovered": {
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": ["candidateRoot", "buildSummaryRoot", "artifactRoot", "artifactArchiveRoot", "artifactCount", "artifacts"],
60
+ "properties": {
61
+ "candidateRoot": { "$ref": "#/$defs/sha256" },
62
+ "buildSummaryRoot": { "$ref": "#/$defs/sha256" },
63
+ "artifactRoot": { "$ref": "#/$defs/sha256" },
64
+ "artifactArchiveRoot": { "$ref": "#/$defs/sha256" },
65
+ "artifactCount": { "type": "integer", "minimum": 1 },
66
+ "artifacts": {
67
+ "type": "array",
68
+ "minItems": 1,
69
+ "items": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": ["name", "size", "digest"],
73
+ "properties": {
74
+ "name": { "type": "string", "minLength": 1 },
75
+ "size": { "type": "integer", "minimum": 0 },
76
+ "digest": { "$ref": "#/$defs/sha256" }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "skippedBuildStages": {
83
+ "const": ["install", "build", "verify", "platform-matrix"]
84
+ },
85
+ "payloadBytes": { "const": "unchanged" },
86
+ "buildchainToolingSha": { "$ref": "#/$defs/gitSha" },
87
+ "transaction": {
88
+ "type": "object",
89
+ "additionalProperties": false,
90
+ "required": ["identity", "state", "publicationState"],
91
+ "properties": {
92
+ "identity": { "type": "string" },
93
+ "state": { "enum": ["absent", "prepared", "sealed", "publishing", "publish_failed", "published", "finalizing", "complete", "repair_required", "abandoned", "failed_permanently"] },
94
+ "publicationState": { "type": "string", "minLength": 1 }
95
+ }
96
+ },
97
+ "root": { "$ref": "#/$defs/sha256" }
98
+ },
99
+ "$defs": {
100
+ "gitSha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
101
+ "sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
102
+ }
103
+ }
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "3.0.6-alpha.2",
7
+ "version": "3.0.6-alpha.4",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v3",
@@ -107,7 +107,8 @@
107
107
  "requiredOutputs": [
108
108
  "promoted-sha",
109
109
  "built-source-sha",
110
- "release-candidate-artifact"
110
+ "release-candidate-artifact",
111
+ "release-candidate-action"
111
112
  ],
112
113
  "breakingDefaults": {
113
114
  "channelDefault": "auto",
@@ -123,6 +124,15 @@
123
124
  "buildchain-stable-contract-lock-path",
124
125
  "release-candidate-workflow-file",
125
126
  "release-candidate-workflow-name",
127
+ "resume-candidate-repository",
128
+ "resume-candidate-run-id",
129
+ "resume-expected-workflow-file",
130
+ "resume-expected-workflow-name",
131
+ "resume-expected-source-tree",
132
+ "resume-expected-candidate-root",
133
+ "resume-expected-candidate-runtime-sha",
134
+ "resume-buildchain-runtime-sha",
135
+ "resume-transaction-id",
126
136
  "publish-required-artifacts-json",
127
137
  "release-passport-kfd-1-witness-jsons",
128
138
  "release-passport-kfd-2-claim-jsons",
@@ -171,13 +181,19 @@
171
181
  "train and exact-SHA runtime overrides remain limited to trusted workflow_dispatch actors",
172
182
  "promotion reuses PR-stage release-candidate artifacts",
173
183
  "promotion does not run the heavy native build matrix",
184
+ "a fresh workflow event can recover an exact successful candidate run after startup or router failure",
185
+ "recovery validates repository, workflow, PR, ancestry, tree, candidate roots, controller evidence, manifests, archive digests, and payload bytes before mutation",
186
+ "recovery emits action reused and never silently falls back to a full build",
174
187
  "built source and promotion channel SHA are recorded separately",
175
188
  "contract drift is checked before release-candidate resolution and publish",
176
189
  "publish-gate source locks are created by the wrapper and enforced by promote-buildchain-ref before publish side effects",
177
190
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
178
191
  ],
179
- "breakingDigest": "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf",
180
- "auditDigest": "sha256:39e885f508cfc6a51817a982ccb14d575782d44650b5da50d8e9e3afbb16eb72"
192
+ "compatibleBreakingDigests": [
193
+ "sha256:acd401cfc46450115a3763fd4b679d85f185e8757ebd52510d6262e1533df4cf"
194
+ ],
195
+ "breakingDigest": "sha256:e60642aa298933d2c103284794921a6c340a50aa91ee528b06e58892a2a006bf",
196
+ "auditDigest": "sha256:952ff4870c1e682ea62141b0c848c33825767212111ef26110617dbdaeacac5b"
181
197
  },
182
198
  {
183
199
  "contractVersion": 1,
@@ -193,7 +209,8 @@
193
209
  "requiredOutputs": [
194
210
  "promoted-sha",
195
211
  "built-source-sha",
196
- "release-candidate-artifact"
212
+ "release-candidate-artifact",
213
+ "release-candidate-action"
197
214
  ],
198
215
  "breakingDefaults": {
199
216
  "promoteOnlyReleaseCandidate": true,
@@ -212,14 +229,27 @@
212
229
  "promotion-contract-lock-digest",
213
230
  "promotion-publication-channel",
214
231
  "promotion-target-ref",
215
- "promotion-override-used"
232
+ "promotion-override-used",
233
+ "resume-candidate-repository",
234
+ "resume-candidate-run-id",
235
+ "resume-expected-workflow-file",
236
+ "resume-expected-workflow-name",
237
+ "resume-expected-source-tree",
238
+ "resume-expected-candidate-root",
239
+ "resume-expected-candidate-runtime-sha",
240
+ "resume-buildchain-runtime-sha",
241
+ "resume-transaction-id"
216
242
  ],
217
243
  "guarantees": [
218
244
  "advanced promotion verifies routed shell, runtime, lock, publication channel, and target bindings before candidate resolution",
219
- "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix"
245
+ "promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix",
246
+ "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph"
220
247
  ],
221
- "breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0",
222
- "auditDigest": "sha256:09d9eaeb13eaa8468b261e7de085d3025f0a1b8b53472292073e02fca182433d"
248
+ "compatibleBreakingDigests": [
249
+ "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
250
+ ],
251
+ "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
252
+ "auditDigest": "sha256:2bc947b42da3c5b06cf75c498658c76d58b0205e7ad408011c3d1ecb4ecfa415"
223
253
  },
224
254
  {
225
255
  "contractVersion": 1,
@@ -760,7 +790,7 @@
760
790
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
761
791
  ],
762
792
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
763
- "auditDigest": "sha256:565f31c93c6f5dacd0d027832e2a291da997dfc71cd9beaf394c8b3512257a45"
793
+ "auditDigest": "sha256:f24cd2d463263e9309e79c14374762f951d88617f1cd0bee2e5b404bbe39859d"
764
794
  },
765
795
  {
766
796
  "contractVersion": 1,
@@ -782,7 +812,7 @@
782
812
  "agents can discover supported Node APIs without importing internal file paths"
783
813
  ],
784
814
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
785
- "auditDigest": "sha256:4ff63adedbf139619bcdf840b76c6380f9714a5b120598f5a43b38beb16a111f"
815
+ "auditDigest": "sha256:7f3a40e74933c7cf3fe91cca948f61adb011ca772d0cc039c9167a4277575f4a"
786
816
  },
787
817
  {
788
818
  "contractVersion": 1,
@@ -833,7 +863,7 @@
833
863
  "controllerDescriptor": {
834
864
  "contract": "buildchain.controller-descriptor/v1",
835
865
  "digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
836
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
866
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
837
867
  "inputClassifications": {
838
868
  "buildchain-ref": {
839
869
  "classification": "included",
@@ -1016,7 +1046,7 @@
1016
1046
  "controllerDescriptor": {
1017
1047
  "contract": "buildchain.controller-descriptor/v1",
1018
1048
  "digest": "sha256:9c0aacca910cef4619a797898ff5c24027c1583f84431a93a5efc854925326e7",
1019
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
1049
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
1020
1050
  "inputClassifications": {
1021
1051
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1022
1052
  "classification": "redacted",
@@ -1551,7 +1581,7 @@
1551
1581
  "controllerDescriptor": {
1552
1582
  "contract": "buildchain.controller-descriptor/v1",
1553
1583
  "digest": "sha256:48545554883888862984cdf1b6b4b56341531cdd6192600782a76b92ad22fd36",
1554
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
1584
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
1555
1585
  "inputClassifications": {
1556
1586
  "BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
1557
1587
  "classification": "redacted",
@@ -2024,7 +2054,7 @@
2024
2054
  "controllerDescriptor": {
2025
2055
  "contract": "buildchain.controller-descriptor/v1",
2026
2056
  "digest": "sha256:8e42956a2c10fa109500e72b97994f06b3d22a19cc63a46f66410b2e81706e9d",
2027
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
2057
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
2028
2058
  "inputClassifications": {
2029
2059
  "artifact-name": {
2030
2060
  "classification": "included",
@@ -2241,7 +2271,7 @@
2241
2271
  "controllerDescriptor": {
2242
2272
  "contract": "buildchain.controller-descriptor/v1",
2243
2273
  "digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575",
2244
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
2274
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
2245
2275
  "inputClassifications": {
2246
2276
  "artifact-path": {
2247
2277
  "classification": "digest-only",
@@ -2485,7 +2515,7 @@
2485
2515
  "controllerDescriptor": {
2486
2516
  "contract": "buildchain.controller-descriptor/v1",
2487
2517
  "digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
2488
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
2518
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
2489
2519
  "inputClassifications": {
2490
2520
  "artifact-name": {
2491
2521
  "classification": "included",
@@ -2667,7 +2697,7 @@
2667
2697
  "controllerDescriptor": {
2668
2698
  "contract": "buildchain.controller-descriptor/v1",
2669
2699
  "digest": "sha256:6d71409659fbf8543c7e520b0c493d8afe86bdf60286b860bb917f0041ebc173",
2670
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
2700
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
2671
2701
  "inputClassifications": {
2672
2702
  "artifact-name": {
2673
2703
  "classification": "included",
@@ -2977,6 +3007,15 @@
2977
3007
  "release-propagation-config-path",
2978
3008
  "required-artifact-count",
2979
3009
  "required-status-check",
3010
+ "resume-buildchain-runtime-sha",
3011
+ "resume-candidate-repository",
3012
+ "resume-candidate-run-id",
3013
+ "resume-expected-candidate-root",
3014
+ "resume-expected-candidate-runtime-sha",
3015
+ "resume-expected-source-tree",
3016
+ "resume-expected-workflow-file",
3017
+ "resume-expected-workflow-name",
3018
+ "resume-transaction-id",
2980
3019
  "runner-preset",
2981
3020
  "standalone-binary-distribution",
2982
3021
  "target-ref",
@@ -2985,8 +3024,8 @@
2985
3024
  ],
2986
3025
  "controllerDescriptor": {
2987
3026
  "contract": "buildchain.controller-descriptor/v1",
2988
- "digest": "sha256:a13b820669b162ab2f39d213164e7b7ab4e24c65f93cd3265a977fcd667c1303",
2989
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
3027
+ "digest": "sha256:bc03b3ac295e33b738fe5168e14ebf4d0fabf2325b4ae4a3d2b3c12afe816068",
3028
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
2990
3029
  "inputClassifications": {
2991
3030
  "BUILDCHAIN_ISSUE_APP_ID": {
2992
3031
  "classification": "redacted",
@@ -3396,6 +3435,42 @@
3396
3435
  "classification": "included",
3397
3436
  "source": "workflow-call-input"
3398
3437
  },
3438
+ "resume-buildchain-runtime-sha": {
3439
+ "classification": "included",
3440
+ "source": "workflow-call-input"
3441
+ },
3442
+ "resume-candidate-repository": {
3443
+ "classification": "included",
3444
+ "source": "workflow-call-input"
3445
+ },
3446
+ "resume-candidate-run-id": {
3447
+ "classification": "included",
3448
+ "source": "workflow-call-input"
3449
+ },
3450
+ "resume-expected-candidate-root": {
3451
+ "classification": "included",
3452
+ "source": "workflow-call-input"
3453
+ },
3454
+ "resume-expected-candidate-runtime-sha": {
3455
+ "classification": "included",
3456
+ "source": "workflow-call-input"
3457
+ },
3458
+ "resume-expected-source-tree": {
3459
+ "classification": "included",
3460
+ "source": "workflow-call-input"
3461
+ },
3462
+ "resume-expected-workflow-file": {
3463
+ "classification": "included",
3464
+ "source": "workflow-call-input"
3465
+ },
3466
+ "resume-expected-workflow-name": {
3467
+ "classification": "included",
3468
+ "source": "workflow-call-input"
3469
+ },
3470
+ "resume-transaction-id": {
3471
+ "classification": "included",
3472
+ "source": "workflow-call-input"
3473
+ },
3399
3474
  "runner-preset": {
3400
3475
  "classification": "digest-only",
3401
3476
  "source": "workflow-call-input"
@@ -3425,7 +3500,7 @@
3425
3500
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
3426
3501
  ],
3427
3502
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
3428
- "auditDigest": "sha256:09d9eaeb13eaa8468b261e7de085d3025f0a1b8b53472292073e02fca182433d"
3503
+ "auditDigest": "sha256:2bc947b42da3c5b06cf75c498658c76d58b0205e7ad408011c3d1ecb4ecfa415"
3429
3504
  },
3430
3505
  {
3431
3506
  "contractVersion": 1,
@@ -3490,7 +3565,7 @@
3490
3565
  "controllerDescriptor": {
3491
3566
  "contract": "buildchain.controller-descriptor/v1",
3492
3567
  "digest": "sha256:660579b5561e8e33375a3f3b1fefbb8a5bd8241a55ba43374d786fb772c24a12",
3493
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
3568
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
3494
3569
  "inputClassifications": {
3495
3570
  "agent-work-context-json": {
3496
3571
  "classification": "digest-only",
@@ -3625,7 +3700,7 @@
3625
3700
  "controllerDescriptor": {
3626
3701
  "contract": "buildchain.controller-descriptor/v1",
3627
3702
  "digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555",
3628
- "registryDigest": "sha256:e7d02924b5f42f513e6f6a3b2cdbccdcd92b594b63ebc7aa8dd8cd3d8376283e",
3703
+ "registryDigest": "sha256:cc205cd0abe4ba5023d8afc38dea9d3f17c06f4a3622a6b8ccd3fc90b10e3fb7",
3629
3704
  "inputClassifications": {}
3630
3705
  },
3631
3706
  "guarantees": [
@@ -3638,6 +3713,6 @@
3638
3713
  "auditDigest": "sha256:d07482cd66413a2fb3781a3b76f960b8151b6231841799647fe237820de2fde6"
3639
3714
  }
3640
3715
  ],
3641
- "compatibilityDigest": "sha256:76c3dd58a02887ecd6af33d63e749fef0a988a820fea99bdf4cb078cc48caa83",
3642
- "contractDigest": "sha256:eae7908098d9561b5a149f8b79e9e4ed484db7f205ee6864b0b70db17edccbe8"
3716
+ "compatibilityDigest": "sha256:80cfdf1786019217c439810f1a80d2866bf8f7ef35a6fa569e1a687fb2bf4cbe",
3717
+ "contractDigest": "sha256:046dc2789bed166a53ef2662f46562c3d131224973372cbdccda5fc53c000ff4"
3643
3718
  }