@kungfu-tech/buildchain 3.0.6-alpha.0 → 3.0.6-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/actions/promote-buildchain-ref/README.md +8 -0
- package/bin/buildchain.mjs +13 -1
- package/contracts/auditable-demo-scenario-v1.schema.json +52 -0
- package/dist/site/buildchain-contract.json +47 -27
- package/dist/site/buildchain-site.json +165 -44
- package/dist/site/capability-registry.json +3 -3
- package/dist/site/cli-registry.json +40 -4
- package/dist/site/controller-registry.json +20 -4
- package/dist/site/kfd-claims.json +140 -19
- package/dist/site/kfd-upstream-aggregate.json +9 -9
- package/dist/site/manual-registry.json +9 -9
- package/dist/site/node-api-registry.json +1161 -180
- package/dist/site/page-registry.json +152 -31
- package/dist/site/public-surface-audit.json +386 -19
- package/dist/site/publication-authority-registry.json +61 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +1 -0
- package/dist/site/site-manifest.json +13 -13
- package/dist/site/workflow-registry.json +151 -13
- package/docs/MAP.md +2 -0
- package/docs/auditable-demo.md +58 -11
- package/docs/aws-us-elastic-runner-burst-plane.md +114 -80
- package/docs/cli-reference.md +154 -0
- package/docs/dev-alpha-candidate-patrol.md +13 -5
- package/docs/dev-delivery-warrant.md +158 -0
- package/docs/node-api-reference.md +54 -15
- package/docs/publication-authority.md +11 -0
- package/docs/release-candidate.md +19 -2
- package/docs/release-governance.md +60 -1
- package/docs/reusable-build-surface.md +11 -1
- package/docs/shifu-gate-profiles.md +12 -1
- package/docs/versioning.md +2 -0
- package/package.json +4 -2
- package/packages/core/buildchain-publication-authority.js +3 -1
- package/packages/core/channel-candidate.js +2 -21
- package/packages/core/channel-promotion-baseline.js +199 -0
- package/packages/core/dev-delivery-candidate-identity.js +94 -0
- package/packages/core/dev-delivery-common.js +73 -0
- package/packages/core/dev-delivery-proof.js +252 -0
- package/packages/core/dev-delivery-warrant-cancellation.js +94 -0
- package/packages/core/dev-delivery-warrant-settlement.js +73 -0
- package/packages/core/dev-delivery-warrant.js +591 -0
- package/scripts/auditable-demo-bundle-verification.mjs +148 -0
- package/scripts/auditable-demo-platform.mjs +86 -50
- package/scripts/auditable-demo-presentation.mjs +83 -0
- package/scripts/auditable-demo-renditions.mjs +264 -0
- package/scripts/auditable-demo.mjs +24 -30
- package/scripts/aws-windows-jit-campaign-core.mjs +7 -8
- package/scripts/aws-windows-jit-controller.mjs +1 -0
- package/scripts/aws-windows-jit-core.mjs +1 -1
- package/scripts/build-contract-core.mjs +58 -3
- package/scripts/buildchain-cli-help.mjs +8 -0
- package/scripts/buildchain-patrol.mjs +9 -0
- package/scripts/check-inventory.mjs +1 -0
- package/scripts/dev-alpha-candidate-patrol.mjs +45 -48
- package/scripts/dev-delivery-proof.mjs +193 -0
- package/scripts/dev-delivery-warrant.mjs +426 -0
- package/scripts/dev-pr-auto-merge.mjs +497 -55
- package/scripts/dev-pr-delivery-warrant.mjs +209 -0
- package/scripts/dispatch-artifact-signing-authority.mjs +2 -4
- package/scripts/gate-profile-core.mjs +24 -0
- package/scripts/generate-site-bundle.mjs +2 -2
- package/scripts/git-fetch-process-tree.mjs +142 -0
- package/scripts/lifecycle-substage-evidence.mjs +274 -0
- package/scripts/locked-source-checkout.mjs +6 -3
- package/scripts/resolve-artifact-transfer-mode.mjs +9 -0
- package/scripts/resolve-build-contract.mjs +7 -0
- package/scripts/route-offline-runners.mjs +1 -0
- package/scripts/run-lifecycle-core.mjs +9 -9
- package/scripts/shifu-gate-profile.mjs +10 -16
- package/scripts/site-capability-metadata.mjs +14 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-05T21:38:24.130Z",
|
|
5
|
+
"publishedAt": "2026-08-05T21:38:24.130Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "931e1a448f3460a29d6b6765c1f1e3e3e26f19cc",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"package": {
|
|
34
34
|
"name": "@kungfu-tech/buildchain",
|
|
35
|
-
"version": "3.0.6-alpha.
|
|
35
|
+
"version": "3.0.6-alpha.2",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"./cache-evidence": "./packages/core/cache-evidence.js",
|
|
26
26
|
"./controller-evidence": "./packages/core/controller-evidence.js",
|
|
27
27
|
"./diagnostics": "./packages/core/diagnostics.js",
|
|
28
|
+
"./dev-delivery-warrant": "./packages/core/dev-delivery-warrant.js",
|
|
28
29
|
"./homebrew": "./packages/core/homebrew.js",
|
|
29
30
|
"./issue-reporting": "./packages/core/issue-reporting.js",
|
|
30
31
|
"./kfd": "./packages/core/kfd.js",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-05T21:38:24.130Z",
|
|
5
|
+
"publishedAt": "2026-08-05T21:38:24.130Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "931e1a448f3460a29d6b6765c1f1e3e3e26f19cc",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"package": {
|
|
39
39
|
"name": "@kungfu-tech/buildchain",
|
|
40
|
-
"version": "3.0.6-alpha.
|
|
40
|
+
"version": "3.0.6-alpha.2",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"path": "docs/MAP.md",
|
|
54
54
|
"plane": "use",
|
|
55
55
|
"exists": true,
|
|
56
|
-
"digest": "sha256:
|
|
56
|
+
"digest": "sha256:d76416d8cd04dcdb560b7d06fef287fa22d6b186a729cb92cd4cf71cebbac1e9"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": "getting-started",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"path": "docs/auditable-demo.md",
|
|
70
70
|
"plane": "verify",
|
|
71
71
|
"exists": true,
|
|
72
|
-
"digest": "sha256:
|
|
72
|
+
"digest": "sha256:c49e734fdfe3b74d317e23a523e198f1194b2c7cd16cca87e8e3a3ffc7bf589f"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"id": "install",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"path": "docs/publication-authority.md",
|
|
110
110
|
"plane": "verify",
|
|
111
111
|
"exists": true,
|
|
112
|
-
"digest": "sha256:
|
|
112
|
+
"digest": "sha256:a1650158943d95b979d164ca98a73d7919fda577d648e4a4a9d04588ec698796"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"id": "github-governance-authority",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"path": "docs/release-candidate.md",
|
|
126
126
|
"plane": "verify",
|
|
127
127
|
"exists": true,
|
|
128
|
-
"digest": "sha256:
|
|
128
|
+
"digest": "sha256:48e42e92174b1091e8ff32e876099f092ca12ce886d3382f019f0ccd907f1c9b"
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
"id": "release-propagation",
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"path": "docs/cli-reference.md",
|
|
230
230
|
"plane": "use",
|
|
231
231
|
"exists": true,
|
|
232
|
-
"digest": "sha256:
|
|
232
|
+
"digest": "sha256:2365e125d38e43b68a4af277a91be7aca708a8bf785954ed4589dbd9a5d8db97"
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"id": "node-api-reference",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"path": "docs/node-api-reference.md",
|
|
238
238
|
"plane": "use",
|
|
239
239
|
"exists": true,
|
|
240
|
-
"digest": "sha256:
|
|
240
|
+
"digest": "sha256:e0e720eeacfa61a1ca235142858f544e18d3f7a000e300a4311e246fe738ff81"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"id": "build-facts",
|
|
@@ -277,7 +277,7 @@
|
|
|
277
277
|
"path": "docs/reusable-build-surface.md",
|
|
278
278
|
"plane": "use",
|
|
279
279
|
"exists": true,
|
|
280
|
-
"digest": "sha256:
|
|
280
|
+
"digest": "sha256:7bc04f658d7e298872756278c60143d8edf5dfb841d0b0d3ea62af8028735b54"
|
|
281
281
|
},
|
|
282
282
|
{
|
|
283
283
|
"id": "publish-transaction",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
"path": "docs/release-governance.md",
|
|
294
294
|
"plane": "why",
|
|
295
295
|
"exists": true,
|
|
296
|
-
"digest": "sha256:
|
|
296
|
+
"digest": "sha256:481640f398d966dca4f1f2e29a8100f0f479315ee19e65b0e259720f2b61213f"
|
|
297
297
|
},
|
|
298
298
|
{
|
|
299
299
|
"id": "release-flow",
|
|
@@ -317,7 +317,7 @@
|
|
|
317
317
|
"path": "docs/versioning.md",
|
|
318
318
|
"plane": "why",
|
|
319
319
|
"exists": true,
|
|
320
|
-
"digest": "sha256:
|
|
320
|
+
"digest": "sha256:793db9414d11aeb314ff2d37a52481826ca5f636d08eaf93772d37962a51484f"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"id": "web-surface-deployments",
|
|
@@ -176,9 +176,10 @@
|
|
|
176
176
|
"shifu-cache-profile-ref",
|
|
177
177
|
"untrusted-policy",
|
|
178
178
|
"verify-command",
|
|
179
|
+
"verify-substage-evidence-path",
|
|
179
180
|
"working-directory"
|
|
180
181
|
],
|
|
181
|
-
"inputCount":
|
|
182
|
+
"inputCount": 86,
|
|
182
183
|
"secrets": [
|
|
183
184
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
|
|
184
185
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
|
|
@@ -283,12 +284,13 @@
|
|
|
283
284
|
"materialize",
|
|
284
285
|
"materialize-base-ref",
|
|
285
286
|
"media-profile",
|
|
287
|
+
"render-failure-advisory",
|
|
286
288
|
"render-media",
|
|
287
289
|
"renderer-image",
|
|
288
290
|
"scenario-path",
|
|
289
291
|
"source-ref"
|
|
290
292
|
],
|
|
291
|
-
"inputCount":
|
|
293
|
+
"inputCount": 12,
|
|
292
294
|
"secrets": [
|
|
293
295
|
"DEMO_UPDATE_TOKEN"
|
|
294
296
|
],
|
|
@@ -299,9 +301,10 @@
|
|
|
299
301
|
"evidence-artifact-digest",
|
|
300
302
|
"evidence-artifact-name",
|
|
301
303
|
"publication-pr-url",
|
|
304
|
+
"render-result",
|
|
302
305
|
"source-sha"
|
|
303
306
|
],
|
|
304
|
-
"outputCount":
|
|
307
|
+
"outputCount": 7,
|
|
305
308
|
"surface": "declarative-auditable-demo",
|
|
306
309
|
"capabilityGroup": "api-cli-reference",
|
|
307
310
|
"status": "preview",
|
|
@@ -392,6 +395,7 @@
|
|
|
392
395
|
"auto-no-gate",
|
|
393
396
|
"buildchain-ref",
|
|
394
397
|
"buildchain-repository",
|
|
398
|
+
"consumer-gate-command",
|
|
395
399
|
"consumer-predicate-digest",
|
|
396
400
|
"consumer-predicate-id",
|
|
397
401
|
"consumer-qualification-required",
|
|
@@ -419,7 +423,7 @@
|
|
|
419
423
|
"target-ref",
|
|
420
424
|
"used-nonces-json"
|
|
421
425
|
],
|
|
422
|
-
"inputCount":
|
|
426
|
+
"inputCount": 34,
|
|
423
427
|
"secrets": [
|
|
424
428
|
"KUNGFU_GOVERNANCE_AUDITOR_APP_PRIVATE_KEY"
|
|
425
429
|
],
|
|
@@ -491,6 +495,7 @@
|
|
|
491
495
|
"publication-control-plane-audit-json",
|
|
492
496
|
"publication-expected-json",
|
|
493
497
|
"publication-gate-aggregate-json",
|
|
498
|
+
"publication-gate-command",
|
|
494
499
|
"publication-package-name",
|
|
495
500
|
"publication-product",
|
|
496
501
|
"publication-publisher-workflow-path",
|
|
@@ -514,6 +519,7 @@
|
|
|
514
519
|
"release-candidate-family-evidence-required",
|
|
515
520
|
"release-candidate-family-evidence-root",
|
|
516
521
|
"release-candidate-family-initiative-id",
|
|
522
|
+
"release-candidate-wait-seconds",
|
|
517
523
|
"release-candidate-workflow-file",
|
|
518
524
|
"release-candidate-workflow-name",
|
|
519
525
|
"release-passport",
|
|
@@ -544,7 +550,7 @@
|
|
|
544
550
|
"target-sha",
|
|
545
551
|
"trusted-publishing"
|
|
546
552
|
],
|
|
547
|
-
"inputCount":
|
|
553
|
+
"inputCount": 97,
|
|
548
554
|
"secrets": [
|
|
549
555
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
550
556
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1271,9 +1277,10 @@
|
|
|
1271
1277
|
"shifu-cache-profile-ref",
|
|
1272
1278
|
"untrusted-policy",
|
|
1273
1279
|
"verify-command",
|
|
1280
|
+
"verify-substage-evidence-path",
|
|
1274
1281
|
"working-directory"
|
|
1275
1282
|
],
|
|
1276
|
-
"inputCount":
|
|
1283
|
+
"inputCount": 89,
|
|
1277
1284
|
"secrets": [
|
|
1278
1285
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
|
|
1279
1286
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
|
|
@@ -1367,6 +1374,27 @@
|
|
|
1367
1374
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1368
1375
|
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1369
1376
|
},
|
|
1377
|
+
{
|
|
1378
|
+
"id": "buildchain-dev-delivery",
|
|
1379
|
+
"path": ".github/workflows/buildchain-dev-delivery.yml",
|
|
1380
|
+
"reusable": false,
|
|
1381
|
+
"inputs": [],
|
|
1382
|
+
"inputCount": 0,
|
|
1383
|
+
"secrets": [],
|
|
1384
|
+
"secretCount": 0,
|
|
1385
|
+
"outputs": [],
|
|
1386
|
+
"outputCount": 0,
|
|
1387
|
+
"surface": "dev-governance",
|
|
1388
|
+
"capabilityGroup": "governance-versioning",
|
|
1389
|
+
"status": "active",
|
|
1390
|
+
"owner": "buildchain-workflows",
|
|
1391
|
+
"maturity": "active",
|
|
1392
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
1393
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1394
|
+
"deprecationReplacement": "",
|
|
1395
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1396
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1397
|
+
},
|
|
1370
1398
|
{
|
|
1371
1399
|
"id": "buildchain-patrol-daily",
|
|
1372
1400
|
"path": ".github/workflows/buildchain-patrol-daily.yml",
|
|
@@ -1647,6 +1675,87 @@
|
|
|
1647
1675
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1648
1676
|
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1649
1677
|
},
|
|
1678
|
+
{
|
|
1679
|
+
"id": "dev-delivery-warrant-cancel",
|
|
1680
|
+
"path": ".github/workflows/dev-delivery-warrant-cancel.yml",
|
|
1681
|
+
"reusable": true,
|
|
1682
|
+
"inputs": [
|
|
1683
|
+
"buildchain-ref",
|
|
1684
|
+
"buildchain-repository",
|
|
1685
|
+
"event-action",
|
|
1686
|
+
"expected-candidate-id",
|
|
1687
|
+
"expected-old-state-root",
|
|
1688
|
+
"expected-pr-number",
|
|
1689
|
+
"expected-source-head-sha",
|
|
1690
|
+
"observed-source-head-sha",
|
|
1691
|
+
"outcome",
|
|
1692
|
+
"reason",
|
|
1693
|
+
"target-branch",
|
|
1694
|
+
"terminal-evidence-root"
|
|
1695
|
+
],
|
|
1696
|
+
"inputCount": 12,
|
|
1697
|
+
"secrets": [
|
|
1698
|
+
"github-token"
|
|
1699
|
+
],
|
|
1700
|
+
"secretCount": 1,
|
|
1701
|
+
"outputs": [
|
|
1702
|
+
"cancellation-action",
|
|
1703
|
+
"cancellation-receipt-root",
|
|
1704
|
+
"final-state-root"
|
|
1705
|
+
],
|
|
1706
|
+
"outputCount": 3,
|
|
1707
|
+
"surface": "repository-workflow",
|
|
1708
|
+
"capabilityGroup": "governance-versioning",
|
|
1709
|
+
"status": "active",
|
|
1710
|
+
"owner": "buildchain-workflows",
|
|
1711
|
+
"maturity": "active",
|
|
1712
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
1713
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1714
|
+
"deprecationReplacement": "",
|
|
1715
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1716
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1717
|
+
},
|
|
1718
|
+
{
|
|
1719
|
+
"id": "dev-delivery-warrant-close",
|
|
1720
|
+
"path": ".github/workflows/dev-delivery-warrant-close.yml",
|
|
1721
|
+
"reusable": true,
|
|
1722
|
+
"inputs": [
|
|
1723
|
+
"buildchain-ref",
|
|
1724
|
+
"buildchain-repository",
|
|
1725
|
+
"current-base-sha",
|
|
1726
|
+
"expected-head-sha",
|
|
1727
|
+
"expected-pr-number",
|
|
1728
|
+
"merge-group-head-sha",
|
|
1729
|
+
"merge-group-tree-sha",
|
|
1730
|
+
"outcome",
|
|
1731
|
+
"reason",
|
|
1732
|
+
"replay-tree-sha",
|
|
1733
|
+
"required-context-roots-json",
|
|
1734
|
+
"target-branch",
|
|
1735
|
+
"terminal-evidence-root"
|
|
1736
|
+
],
|
|
1737
|
+
"inputCount": 13,
|
|
1738
|
+
"secrets": [
|
|
1739
|
+
"github-token"
|
|
1740
|
+
],
|
|
1741
|
+
"secretCount": 1,
|
|
1742
|
+
"outputs": [
|
|
1743
|
+
"close-receipt-root",
|
|
1744
|
+
"final-state-root",
|
|
1745
|
+
"integration-proof-root"
|
|
1746
|
+
],
|
|
1747
|
+
"outputCount": 3,
|
|
1748
|
+
"surface": "repository-workflow",
|
|
1749
|
+
"capabilityGroup": "governance-versioning",
|
|
1750
|
+
"status": "active",
|
|
1751
|
+
"owner": "buildchain-workflows",
|
|
1752
|
+
"maturity": "active",
|
|
1753
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
1754
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1755
|
+
"deprecationReplacement": "",
|
|
1756
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
1757
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
1758
|
+
},
|
|
1650
1759
|
{
|
|
1651
1760
|
"id": "dev-merge-queue-governance",
|
|
1652
1761
|
"path": ".github/workflows/dev-merge-queue-governance.yml",
|
|
@@ -1673,34 +1782,60 @@
|
|
|
1673
1782
|
"path": ".github/workflows/dev-pr-auto-merge.yml",
|
|
1674
1783
|
"reusable": true,
|
|
1675
1784
|
"inputs": [
|
|
1785
|
+
"affected-paths-json",
|
|
1676
1786
|
"allowed-head-prefixes",
|
|
1787
|
+
"assignment-root",
|
|
1677
1788
|
"block-labels",
|
|
1678
1789
|
"buildchain-ref",
|
|
1679
1790
|
"buildchain-repository",
|
|
1791
|
+
"closure-root",
|
|
1792
|
+
"delivery-class",
|
|
1793
|
+
"delivery-priority",
|
|
1794
|
+
"delivery-warrant-mode",
|
|
1795
|
+
"dependency-root",
|
|
1796
|
+
"diagnostic-context",
|
|
1680
1797
|
"dry-run",
|
|
1798
|
+
"expected-head-sha",
|
|
1799
|
+
"expected-pr-number",
|
|
1800
|
+
"initiative-root",
|
|
1681
1801
|
"landing-mode",
|
|
1682
1802
|
"max-merges",
|
|
1683
1803
|
"merge-method",
|
|
1804
|
+
"plan-root",
|
|
1805
|
+
"project-cut-proof-json",
|
|
1806
|
+
"queue-admission-context",
|
|
1684
1807
|
"ready-label",
|
|
1685
1808
|
"require-approval",
|
|
1686
1809
|
"required-status-checks",
|
|
1687
1810
|
"same-repository-only",
|
|
1688
|
-
"
|
|
1689
|
-
|
|
1690
|
-
|
|
1811
|
+
"shard-evidence-roots-json",
|
|
1812
|
+
"source-identity-root",
|
|
1813
|
+
"source-patch-root",
|
|
1814
|
+
"target-branch",
|
|
1815
|
+
"toolchain-root",
|
|
1816
|
+
"warrant-lease-seconds"
|
|
1817
|
+
],
|
|
1818
|
+
"inputCount": 32,
|
|
1691
1819
|
"secrets": [
|
|
1692
1820
|
"github-token"
|
|
1693
1821
|
],
|
|
1694
1822
|
"secretCount": 1,
|
|
1695
1823
|
"outputs": [
|
|
1696
1824
|
"action-count",
|
|
1825
|
+
"admission-receipt-root",
|
|
1826
|
+
"admission-state",
|
|
1697
1827
|
"enqueued-count",
|
|
1698
1828
|
"evaluated-count",
|
|
1699
1829
|
"final-base-sha",
|
|
1700
1830
|
"merged-count",
|
|
1701
|
-
"
|
|
1831
|
+
"project-cut-proof-root",
|
|
1832
|
+
"skipped-count",
|
|
1833
|
+
"source-proof-root",
|
|
1834
|
+
"warrant-receipt-root",
|
|
1835
|
+
"warrant-state-commit",
|
|
1836
|
+
"warrant-state-root"
|
|
1702
1837
|
],
|
|
1703
|
-
"outputCount":
|
|
1838
|
+
"outputCount": 13,
|
|
1704
1839
|
"surface": "dev-governance",
|
|
1705
1840
|
"capabilityGroup": "governance-versioning",
|
|
1706
1841
|
"status": "active",
|
|
@@ -2219,6 +2354,7 @@
|
|
|
2219
2354
|
"publication-control-plane-audit-json",
|
|
2220
2355
|
"publication-expected-json",
|
|
2221
2356
|
"publication-gate-aggregate-json",
|
|
2357
|
+
"publication-gate-command",
|
|
2222
2358
|
"publication-package-name",
|
|
2223
2359
|
"publication-product",
|
|
2224
2360
|
"publication-publisher-workflow-path",
|
|
@@ -2242,6 +2378,7 @@
|
|
|
2242
2378
|
"release-candidate-family-evidence-required",
|
|
2243
2379
|
"release-candidate-family-evidence-root",
|
|
2244
2380
|
"release-candidate-family-initiative-id",
|
|
2381
|
+
"release-candidate-wait-seconds",
|
|
2245
2382
|
"release-candidate-workflow-file",
|
|
2246
2383
|
"release-candidate-workflow-name",
|
|
2247
2384
|
"release-passport",
|
|
@@ -2272,7 +2409,7 @@
|
|
|
2272
2409
|
"target-sha",
|
|
2273
2410
|
"trusted-publishing"
|
|
2274
2411
|
],
|
|
2275
|
-
"inputCount":
|
|
2412
|
+
"inputCount": 89,
|
|
2276
2413
|
"secrets": [
|
|
2277
2414
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
2278
2415
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -2835,10 +2972,11 @@
|
|
|
2835
2972
|
"required",
|
|
2836
2973
|
"sample-process-tree",
|
|
2837
2974
|
"stage",
|
|
2975
|
+
"substage-evidence-path",
|
|
2838
2976
|
"summary-path",
|
|
2839
2977
|
"timeout-minutes"
|
|
2840
2978
|
],
|
|
2841
|
-
"inputCount":
|
|
2979
|
+
"inputCount": 22,
|
|
2842
2980
|
"capabilityGroup": "reusable-build",
|
|
2843
2981
|
"status": "active",
|
|
2844
2982
|
"owner": "buildchain-actions",
|
package/docs/MAP.md
CHANGED
|
@@ -111,6 +111,7 @@ replace them.
|
|
|
111
111
|
| Why does Buildchain use branch-driven release governance? | [`release-governance.md`](release-governance.md) | why | stable |
|
|
112
112
|
| How do protected dev branches and scheduled ready-PR merging work? | [`release-governance.md`](release-governance.md#protected-dev-branches) | use | stable |
|
|
113
113
|
| How do slow required checks land reliably on a busy dev channel? | [`release-governance.md`](release-governance.md#protected-dev-branches) + [`cli.md`](cli.md#commands) | use | preview |
|
|
114
|
+
| How does the durable fair Dev Delivery Warrant Queue prevent slow-candidate starvation? | [`dev-delivery-warrant.md`](dev-delivery-warrant.md) | use/verify | preview |
|
|
114
115
|
| How do I coalesce rapid Dev changes, preserve release runner priority, and retry only transient failed jobs? | [`dev-qualification-patrol.md`](dev-qualification-patrol.md) | use/verify | preview |
|
|
115
116
|
| How do I run daily, weekly, or monthly repository patrols? | [`release-governance.md`](release-governance.md#buildchain-patrol) | use | stable |
|
|
116
117
|
| How does Buildchain decide patch, minor, and major release lines? | [`versioning.md`](versioning.md) | why | stable |
|
|
@@ -152,6 +153,7 @@ replace them.
|
|
|
152
153
|
| How do I automatically qualify alpha candidates and publish the newest non-revoked qualified candidate at a fixed window? | [`stable-candidate-patrol.md`](stable-candidate-patrol.md) | use | preview |
|
|
153
154
|
| How do I deploy a site/app preview, staging, or production surface? | [`web-surface-deployments.md`](web-surface-deployments.md) | use | stable |
|
|
154
155
|
| How do I publish observed infrastructure contracts for downstream consumers? | [`infra-contract.md`](infra-contract.md) | use | preview |
|
|
156
|
+
| How do I operate a repeatable, disabled-by-default, budget-fail-closed AWS Windows JIT campaign? | [`aws-us-elastic-runner-burst-plane.md`](aws-us-elastic-runner-burst-plane.md#phase-2-operator-workflow) | use/verify | preview |
|
|
155
157
|
| How do I use the active actions directly? | [`../actions/validate-config/README.md`](../actions/validate-config/README.md), [`../actions/run-lifecycle/README.md`](../actions/run-lifecycle/README.md), [`../actions/promote-buildchain-ref/README.md`](../actions/promote-buildchain-ref/README.md), [`../actions/report-buildchain-issue/README.md`](../actions/report-buildchain-issue/README.md), [`../actions/github-artifact-attestation/README.md`](../actions/github-artifact-attestation/README.md), [`../actions/macos-credential-island/README.md`](../actions/macos-credential-island/README.md); `dist/site/workflow-registry.json#actions` is authoritative for the six-entry inventory. | use | stable |
|
|
156
158
|
| How can a consumer workflow report a Buildchain-owned failure back to Buildchain? | [`consumer-issue-reporting.md`](consumer-issue-reporting.md) + [`../actions/report-buildchain-issue/README.md`](../actions/report-buildchain-issue/README.md) | use | stable |
|
|
157
159
|
| What do the fixture repositories demonstrate? | [`../fixtures/libnode-shaped/README.md`](../fixtures/libnode-shaped/README.md), [`../fixtures/publish-transaction-shaped/README.md`](../fixtures/publish-transaction-shaped/README.md), [`../fixtures/web-surface-shaped/README.md`](../fixtures/web-surface-shaped/README.md), [`../fixtures/publication-artifact-shaped/README.md`](../fixtures/publication-artifact-shaped/README.md) | verify | stable |
|
package/docs/auditable-demo.md
CHANGED
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: self-reviewed
|
|
11
|
-
last_reviewed: 2026-08-
|
|
11
|
+
last_reviewed: 2026-08-05
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
@@ -52,6 +52,39 @@ the default. Both classes retain 4 MiB per step, a clean Home/XDG environment,
|
|
|
52
52
|
no inherited credentials, and a network-disabled read-only container with
|
|
53
53
|
bounded tmpfs.
|
|
54
54
|
|
|
55
|
+
Consumers may optionally add a
|
|
56
|
+
`buildchain.declarative-demo-presentation/v1` presentation. This contract
|
|
57
|
+
binds one consumer-owned proof label, question, summary, and optional
|
|
58
|
+
transition to every demo in declared order. Buildchain verifies that each
|
|
59
|
+
question is the same title used by capture and media; it does not invent or
|
|
60
|
+
reinterpret the product argument.
|
|
61
|
+
|
|
62
|
+
The presentation also chooses one of two README materialization modes. The
|
|
63
|
+
default, when no presentation is declared, remains the original full generated
|
|
64
|
+
block with commands, renditions, evidence, and claim boundary. `media-only`
|
|
65
|
+
updates only the image inside each existing README marker so consumer-authored
|
|
66
|
+
narrative and transitions survive regeneration. The generated technical
|
|
67
|
+
details move to a separately declared Markdown specification, where stable
|
|
68
|
+
per-demo markers preserve proof order and idempotent updates. The publication
|
|
69
|
+
pull request stages that specification together with the README and
|
|
70
|
+
content-addressed evidence. No presentation field grants publication or Work
|
|
71
|
+
authority.
|
|
72
|
+
|
|
73
|
+
The optional top-level `compositionMode` is an explicit visual contract.
|
|
74
|
+
Omitting it preserves `presentation-framed`; declaring `terminal-fill` makes
|
|
75
|
+
the bounded PTY replay the complete pixel surface without renderer-owned
|
|
76
|
+
window chrome. Buildchain carries that choice into both native scenes. It does
|
|
77
|
+
not infer full-frame intent from output resolution.
|
|
78
|
+
|
|
79
|
+
The optional `buildchain.declarative-demo-playback/v1` contract separates
|
|
80
|
+
observed command latency from presentation timing. Its
|
|
81
|
+
`deterministic-readable` mode preserves the captured terminal event payloads
|
|
82
|
+
and their order, records the observed final-event time as non-authoritative
|
|
83
|
+
evidence, and maps event ordinals onto the declared `activeDurationMs` before a
|
|
84
|
+
bounded `finalHoldMs`. Both native renditions therefore replay at the same
|
|
85
|
+
readable pace even when an identical command runs faster or slower. Omitting
|
|
86
|
+
the contract preserves the original PTY timestamp behavior.
|
|
87
|
+
|
|
55
88
|
The uploaded metadata must bind the executable SHA-256, declare an empty
|
|
56
89
|
runtime dependency set, and provide a bounded `executableFiles` array of exact
|
|
57
90
|
artifact-relative paths and SHA-256 digests. GitHub Artifact transport does not
|
|
@@ -97,6 +130,7 @@ jobs:
|
|
|
97
130
|
scenario-path: .buildchain/auditable-demo.json
|
|
98
131
|
renderer-image: ghcr.io/kungfu-systems/build-images/demo-renderer@sha256:RENDERER_DIGEST
|
|
99
132
|
render-media: true
|
|
133
|
+
render-failure-advisory: false
|
|
100
134
|
media-profile: responsive-web-delivery-v1
|
|
101
135
|
materialize: true
|
|
102
136
|
materialize-base-ref: dev/v1/v1.0
|
|
@@ -193,6 +227,10 @@ The Gate:
|
|
|
193
227
|
bounded tmpfs;
|
|
194
228
|
- verifies the renderer manifest, media probe, exact input roots, exact output
|
|
195
229
|
member set, and complete checksums;
|
|
230
|
+
- independently verifies the requested composition mode, browser-observed
|
|
231
|
+
content viewport, PTY rows and columns, and deterministic cell geometry for
|
|
232
|
+
every frame set; `terminal-fill` is rejected unless the viewport and cell
|
|
233
|
+
grid resolve to the complete declared frame;
|
|
196
234
|
- uploads a content-addressed qualified bundle plus an independent GitHub
|
|
197
235
|
Artifact id, URL, archive digest, and expiry-bearing source coordinate.
|
|
198
236
|
|
|
@@ -202,9 +240,9 @@ passed gate receipt, and checksums covering every member exactly once.
|
|
|
202
240
|
|
|
203
241
|
## Selective Render
|
|
204
242
|
|
|
205
|
-
`render-media: true` enables the
|
|
206
|
-
|
|
207
|
-
|
|
243
|
+
`render-media: true` enables the full-media step only after every declared demo
|
|
244
|
+
has passed the required Gate. It recomputes each Gate member root, verifies the
|
|
245
|
+
exact source SHA and renderer digest, and only then renders the complete
|
|
208
246
|
qualified scene.
|
|
209
247
|
|
|
210
248
|
The media bundle contains MP4, WebM, GIF, poster, probe, renderer manifest,
|
|
@@ -213,10 +251,19 @@ distribution checksums. A web-delivery profile also retains
|
|
|
213
251
|
`media-inspection.json`, whose content root is bound into the receipt.
|
|
214
252
|
`render-media: false` does not weaken or skip the Gate.
|
|
215
253
|
|
|
254
|
+
`render-failure-advisory: true` makes only the full-media step advisory. A
|
|
255
|
+
render failure remains visible as a failed step and workflow warning, while the
|
|
256
|
+
required Gate keeps its normal failure semantics. Failed or partial media can
|
|
257
|
+
never open a materialization PR. Use this for an Alpha lane whose binary
|
|
258
|
+
publication must not depend on animation capacity; keep the default `false`
|
|
259
|
+
for explicit media refreshes and other workflows that require complete media.
|
|
260
|
+
|
|
216
261
|
When the Gate bundle contains a qualified terminal capture, the render job
|
|
217
262
|
passes it read-only to the immutable renderer. The renderer manifest binds the
|
|
218
263
|
capture root and terminal-state-machine version, but raw capture bytes remain
|
|
219
264
|
in the Gate bundle rather than being copied into the public media bundle.
|
|
265
|
+
Missing, malformed, out-of-bounds, non-full-frame, rendition-mismatched, or
|
|
266
|
+
internally drifted composition evidence fails before media finalization.
|
|
220
267
|
|
|
221
268
|
## Media Qualification Profiles
|
|
222
269
|
|
|
@@ -225,13 +272,13 @@ The single machine-readable source is
|
|
|
225
272
|
profile through `media-profile`; they cannot pass ffmpeg commands, codec flags,
|
|
226
273
|
shell fragments, arbitrary profile paths, or transcoding instructions.
|
|
227
274
|
|
|
228
|
-
| Profile
|
|
229
|
-
|
|
|
230
|
-
| `archive-v1`
|
|
231
|
-
| `web-delivery-v1`
|
|
232
|
-
| `responsive-web-delivery-v1`
|
|
233
|
-
| `responsive-long-form-web-delivery-v1` | Extends the responsive profile for explicitly admitted long-form scenes. Its measured-baseline multipliers raise only the GIF ceiling to 8 MiB and the four video ceilings to 4 MiB; all codec, native-resolution, no-audio, duration, and authority checks remain unchanged.
|
|
234
|
-
| `site-hero-v1`
|
|
275
|
+
| Profile | Meaning |
|
|
276
|
+
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
277
|
+
| `archive-v1` | Default compatibility contract. Retains the exact renderer outputs and classifies GIF as README compatibility evidence without making a browser-delivery claim. |
|
|
278
|
+
| `web-delivery-v1` | Independently qualifies H.264 MP4 and VP9 WebM playback sources, forbids audio, requires exact scene dimensions and bounded duration/frame-rate drift, checks per-rendition byte ceilings, and proves MP4 `moov` precedes `mdat`. PNG remains the lossless evidence poster. |
|
|
279
|
+
| `responsive-web-delivery-v1` | Extends `web-delivery-v1` with exact 1280x720 H.264 MP4 and VP9 WebM responsive sources plus a 1280x720 README GIF while keeping the primary MP4/WebM and evidence poster at the source scene dimensions. Every declared downscale must preserve the scene aspect ratio and may never upscale. |
|
|
280
|
+
| `responsive-long-form-web-delivery-v1` | Extends the responsive profile for explicitly admitted long-form scenes. Its measured-baseline multipliers raise only the GIF ceiling to 8 MiB and the four video ceilings to 4 MiB; all codec, native-resolution, no-audio, duration, and authority checks remain unchanged. |
|
|
281
|
+
| `site-hero-v1` | Extends `web-delivery-v1` and additionally requires a qualified WebP browser poster. The current Build Images v1 renderer does not emit that member, so selecting this profile fails closed until the producer adds it. |
|
|
235
282
|
|
|
236
283
|
For web-delivery profiles, Buildchain runs its own fixed `ffprobe` invocation
|
|
237
284
|
inside the same immutable, network-disabled renderer image. That command is
|