@kungfu-tech/buildchain 3.0.8 → 3.0.9-alpha.1

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 (79) hide show
  1. package/actions/promote-buildchain-ref/README.md +8 -7
  2. package/bin/buildchain.mjs +34 -33
  3. package/bin/internal/trust-release-release-handlers.mjs +5 -0
  4. package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-perspective.json +16 -0
  5. package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-replay.json +57 -0
  6. package/contracts/release-cut-v1.schema.json +1 -0
  7. package/contracts/release-train-transition-v1.schema.json +1 -0
  8. package/dist/site/agent-index.json +0 -1
  9. package/dist/site/artifact-schemas.json +0 -2
  10. package/dist/site/badge-endpoint-registry.json +9 -9
  11. package/dist/site/badges/v1/kfd-8/aligned.json +1 -1
  12. package/dist/site/badges/v1/kfd-8/declared.json +1 -1
  13. package/dist/site/badges/v1/kfd-8/downgraded.json +1 -1
  14. package/dist/site/badges/v1/kfd-8/draft.json +1 -1
  15. package/dist/site/badges/v1/kfd-8/failed.json +1 -1
  16. package/dist/site/badges/v1/kfd-8/missing.json +1 -1
  17. package/dist/site/badges/v1/kfd-8/passed.json +1 -1
  18. package/dist/site/badges/v1/kfd-8/planned.json +1 -1
  19. package/dist/site/buildchain-contract.json +38 -34
  20. package/dist/site/buildchain-site.json +59 -39
  21. package/dist/site/capability-registry.json +1 -1
  22. package/dist/site/cli-registry.json +8 -7
  23. package/dist/site/controller-registry.json +13 -5
  24. package/dist/site/kfd-claims.json +35 -8
  25. package/dist/site/kfd-upstream-aggregate.json +10 -10
  26. package/dist/site/manual-registry.json +9 -9
  27. package/dist/site/node-api-registry.json +1143 -320
  28. package/dist/site/page-registry.json +46 -26
  29. package/dist/site/public-surface-audit.json +19 -9
  30. package/dist/site/publication-registry.json +4 -4
  31. package/dist/site/release-passport-check-manifest.json +33 -5
  32. package/dist/site/release-provenance.json +2 -1
  33. package/dist/site/schemas/release-passport-v1.schema.json +3 -0
  34. package/dist/site/site-manifest.json +13 -13
  35. package/dist/site/workflow-registry.json +19 -9
  36. package/docs/aws-us-elastic-runner-burst-plane.md +15 -3
  37. package/docs/cli-reference.md +6 -6
  38. package/docs/cli.md +2 -3
  39. package/docs/dev-alpha-candidate-patrol.md +45 -20
  40. package/docs/dev-delivery-warrant.md +12 -2
  41. package/docs/kfd-support.md +7 -7
  42. package/docs/node-api-reference.md +295 -246
  43. package/docs/release-passport.md +25 -12
  44. package/docs/release-train.md +54 -4
  45. package/docs/reusable-build-surface.md +26 -9
  46. package/docs/runtime-train-validation.md +6 -0
  47. package/docs/versioning.md +3 -2
  48. package/package.json +4 -3
  49. package/packages/core/artifact-verification-envelope.js +114 -0
  50. package/packages/core/buildchain-channel-identity.js +119 -0
  51. package/packages/core/buildchain-compatibility-proof.js +32 -0
  52. package/packages/core/buildchain-contract.js +7 -0
  53. package/packages/core/controller-evidence.js +2 -1
  54. package/packages/core/dev-alpha-active-release-train.js +460 -0
  55. package/packages/core/dev-alpha-candidate-selection.js +181 -0
  56. package/packages/core/dev-delivery-warrant.js +15 -4
  57. package/packages/core/index.js +4 -5
  58. package/packages/core/kfd-adopter-manifest.js +390 -0
  59. package/packages/core/kfd-product-gates.js +0 -300
  60. package/packages/core/release-blocker-priority.js +192 -0
  61. package/packages/core/release-passport-contract.js +219 -6
  62. package/packages/core/release-passport.js +139 -242
  63. package/packages/core/release-train.js +220 -0
  64. package/scripts/aws-macos-jit-controller-core.mjs +76 -0
  65. package/scripts/aws-macos-jit-controller.mjs +29 -0
  66. package/scripts/aws-macos-jit-source-rebind.mjs +503 -0
  67. package/scripts/buildchain-channel-router.mjs +18 -2
  68. package/scripts/buildchain-cli-help.mjs +4 -2
  69. package/scripts/buildchain-contract-lock.mjs +11 -1
  70. package/scripts/check-inventory.mjs +4 -4
  71. package/scripts/dev-alpha-candidate-patrol.mjs +196 -201
  72. package/scripts/generate-buildchain-kfd-witnesses.mjs +88 -94
  73. package/scripts/generate-channel-build-workflow.mjs +78 -31
  74. package/scripts/generate-site-bundle.mjs +1 -8
  75. package/scripts/promotion-channel-router.mjs +5 -3
  76. package/scripts/release-train-self-dogfood.mjs +579 -0
  77. package/scripts/runtime-ref-core.mjs +4 -17
  78. package/scripts/site-capability-metadata.mjs +3 -1
  79. package/dist/site/schemas/kfd-support-projection-v1.schema.json +0 -106
@@ -320,7 +320,7 @@
320
320
  {
321
321
  "id": "kfd-support",
322
322
  "source": "bin/buildchain.mjs",
323
- "usage": "buildchain kfd support project --matrix-json <file-or-json> --gate-json <file-or-json>..."
323
+ "usage": "buildchain kfd support project --manifest-json <file-or-json> --manifest-gate-json <file-or-json>"
324
324
  },
325
325
  {
326
326
  "id": "kfd-upstream-check",
@@ -1054,6 +1054,7 @@
1054
1054
  "release-passport-kfd-3-artifact-verify-command",
1055
1055
  "release-passport-kfd-3-artifact-witness-jsons",
1056
1056
  "release-passport-kfd-3-prebuild-witness-jsons",
1057
+ "release-passport-kfd-adopter-manifest-json",
1057
1058
  "release-passport-kfd-product-gate-jsons",
1058
1059
  "release-passport-kfd-support-matrix-json",
1059
1060
  "release-passport-output-dir",
@@ -1077,7 +1078,7 @@
1077
1078
  "target-sha",
1078
1079
  "trusted-publishing"
1079
1080
  ],
1080
- "inputCount": 110,
1081
+ "inputCount": 111,
1081
1082
  "secrets": [
1082
1083
  "BUILDCHAIN_ISSUE_APP_ID",
1083
1084
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -1899,17 +1900,24 @@
1899
1900
  "secretCount": 1,
1900
1901
  "outputs": [
1901
1902
  "active-candidate-pr",
1903
+ "candidate-generation",
1904
+ "candidate-tree-sha",
1902
1905
  "controller-state",
1906
+ "cut-root",
1907
+ "drift-root",
1903
1908
  "eligible",
1909
+ "hold-root",
1904
1910
  "next-candidate-sha",
1905
1911
  "prior-state-root",
1906
1912
  "promotion-pr",
1907
1913
  "result-path",
1914
+ "runtime-sha",
1908
1915
  "selected-sha",
1909
1916
  "settlement-action",
1910
- "source-lock-ref"
1917
+ "source-lock-ref",
1918
+ "train-root"
1911
1919
  ],
1912
- "outputCount": 10
1920
+ "outputCount": 17
1913
1921
  },
1914
1922
  {
1915
1923
  "id": "dev-delivery-warrant-cancel",
@@ -2561,6 +2569,7 @@
2561
2569
  "release-passport-kfd-3-artifact-verify-command",
2562
2570
  "release-passport-kfd-3-artifact-witness-jsons",
2563
2571
  "release-passport-kfd-3-prebuild-witness-jsons",
2572
+ "release-passport-kfd-adopter-manifest-json",
2564
2573
  "release-passport-kfd-product-gate-jsons",
2565
2574
  "release-passport-kfd-support-matrix-json",
2566
2575
  "release-passport-output-dir",
@@ -2584,7 +2593,7 @@
2584
2593
  "target-sha",
2585
2594
  "trusted-publishing"
2586
2595
  ],
2587
- "inputCount": 101,
2596
+ "inputCount": 102,
2588
2597
  "secrets": [
2589
2598
  "BUILDCHAIN_ISSUE_APP_ID",
2590
2599
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -2954,6 +2963,7 @@
2954
2963
  "release-passport-kfd-3-artifact-verify-command",
2955
2964
  "release-passport-kfd-3-artifact-witness-jsons",
2956
2965
  "release-passport-kfd-3-prebuild-witness-jsons",
2966
+ "release-passport-kfd-adopter-manifest-json",
2957
2967
  "release-passport-kfd-product-gate-jsons",
2958
2968
  "release-passport-kfd-support-matrix-json",
2959
2969
  "release-passport-output-dir",
@@ -2973,7 +2983,7 @@
2973
2983
  "transaction-state-path",
2974
2984
  "verification-command"
2975
2985
  ],
2976
- "inputCount": 80
2986
+ "inputCount": 81
2977
2987
  },
2978
2988
  {
2979
2989
  "id": "release-tail",
@@ -7992,9 +8002,9 @@
7992
8002
  "cliRegistryPath": "dist/site/cli-registry.json",
7993
8003
  "workflowRegistryPath": "dist/site/workflow-registry.json",
7994
8004
  "pageRegistryPath": "dist/site/page-registry.json",
7995
- "cliRegistryDigest": "e7b90e95dabcffb3fecb8e84cec48d7a99261c5e90732aff0ebc174b01c4e35c",
7996
- "workflowRegistryDigest": "964686c03a329b906a9f832d81c60eed8a50d2d2770b9b9f4ede2dbe32f9b98b",
7997
- "pageRegistryDigest": "83e4701148132712b684efb1f474943752ad8371e60f598f162b553f504e987f"
8005
+ "cliRegistryDigest": "099c0db9c5346942aee236af2cb7b6a7a91fbb2c54ebb17b7a2544a339c00d40",
8006
+ "workflowRegistryDigest": "9fa0cedd177e417d0c4bd90259a5e05753ae464a745e1422fccac8c730b84011",
8007
+ "pageRegistryDigest": "ee81a397669a6cd47f646a8a8106ff0e618bf2548465d843767720d950fb00ad"
7998
8008
  },
7999
8009
  "comparison": {
8000
8010
  "missingCliRegistry": [],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-08-11T00:43:51.000Z",
5
- "publishedAt": "2026-08-11T00:43:51.000Z",
4
+ "generatedAt": "2026-08-11T04:56:56.000Z",
5
+ "publishedAt": "2026-08-11T04:56:56.000Z",
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": "827fa0252c0546816c33ec89e66ca505ad6d5162",
22
+ "sourceRevision": "4e258111f28280445fa2a66fac48d24c7982a461",
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.8",
35
+ "version": "3.0.9-alpha.1",
36
36
  "versionSource": "package.json#version"
37
37
  },
38
38
  "sourceKind": "package-site-bundle",
@@ -16,10 +16,11 @@
16
16
  "result": "check-report.json"
17
17
  },
18
18
  "kfdSupportProjection": {
19
- "inputSchema": "schemas/kfd-product-gate-input-v1.schema.json",
20
- "projectionSchema": "schemas/kfd-support-projection-v1.schema.json",
19
+ "authorityContract": "kfd.adopter-conformance-manifest/v1",
20
+ "gateContract": "kungfu-buildchain-kfd-adopter-manifest-gate",
21
+ "bindingContract": "kungfu-buildchain-kfd-adopter-release-binding",
21
22
  "evidence": "kfd-support.json",
22
- "rule": "The passport mirrors one product-owned support matrix and validated product-gate results without widening any claim state."
23
+ "rule": "The standard adopter manifest is the sole declaration authority; the legacy support matrix is an exact derived projection only."
23
24
  }
24
25
  },
25
26
  "ownership": {
@@ -42,6 +43,7 @@
42
43
  "platformArtifactManifests",
43
44
  "distTagPromotion",
44
45
  "controllerReceipts",
46
+ "kfdAdopter",
45
47
  "kfdSupport",
46
48
  "githubArtifactAttestations",
47
49
  "artifacts",
@@ -78,7 +80,16 @@
78
80
  "agentRuntimeAdapterRequest": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/adapter-request.schema.json",
79
81
  "agentRuntimeAdapterResponse": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/adapter-response.schema.json",
80
82
  "agentRuntimeSuite": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/suite.schema.json",
81
- "agentRuntimeReport": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/report.schema.json"
83
+ "agentRuntimeReport": "https://kfd.libkungfu.dev/schemas/kfd-agent-runtime/report.schema.json",
84
+ "selfConformanceState": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/state.schema.json",
85
+ "selfConformanceBootstrapAnchor": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/bootstrap-anchor.schema.json",
86
+ "selfConformanceTransitionBundle": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/transition-bundle.schema.json",
87
+ "selfConformanceTransitionReport": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/transition-report.schema.json",
88
+ "selfConformancePackageManifest": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/package-manifest.schema.json",
89
+ "selfConformanceVectorRegistry": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/vector-registry.schema.json",
90
+ "selfConformanceLifecycleGateRequest": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/lifecycle-gate-request.schema.json",
91
+ "selfConformanceLifecycleGateReport": "https://kfd.libkungfu.dev/schemas/kfd-self-conformance/lifecycle-gate-report.schema.json",
92
+ "adopterConformanceManifest": "https://kfd.libkungfu.dev/schemas/kfd-adopter-conformance/manifest.schema.json"
82
93
  },
83
94
  "schemaPaths": {
84
95
  "metadata": "schemas/kfd-standards.schema.json",
@@ -100,7 +111,16 @@
100
111
  "agentRuntimeAdapterRequest": "schemas/kfd-agent-runtime/adapter-request.schema.json",
101
112
  "agentRuntimeAdapterResponse": "schemas/kfd-agent-runtime/adapter-response.schema.json",
102
113
  "agentRuntimeSuite": "schemas/kfd-agent-runtime/suite.schema.json",
103
- "agentRuntimeReport": "schemas/kfd-agent-runtime/report.schema.json"
114
+ "agentRuntimeReport": "schemas/kfd-agent-runtime/report.schema.json",
115
+ "selfConformanceState": "schemas/kfd-self-conformance/state.schema.json",
116
+ "selfConformanceBootstrapAnchor": "schemas/kfd-self-conformance/bootstrap-anchor.schema.json",
117
+ "selfConformanceTransitionBundle": "schemas/kfd-self-conformance/transition-bundle.schema.json",
118
+ "selfConformanceTransitionReport": "schemas/kfd-self-conformance/transition-report.schema.json",
119
+ "selfConformancePackageManifest": "schemas/kfd-self-conformance/package-manifest.schema.json",
120
+ "selfConformanceVectorRegistry": "schemas/kfd-self-conformance/vector-registry.schema.json",
121
+ "selfConformanceLifecycleGateRequest": "schemas/kfd-self-conformance/lifecycle-gate-request.schema.json",
122
+ "selfConformanceLifecycleGateReport": "schemas/kfd-self-conformance/lifecycle-gate-report.schema.json",
123
+ "adopterConformanceManifest": "schemas/kfd-adopter-conformance/manifest.schema.json"
104
124
  },
105
125
  "compatibility": {
106
126
  "packageLine": "v1.0",
@@ -193,6 +213,14 @@
193
213
  {
194
214
  "when": "kfdSupport is present",
195
215
  "pointer": "evidence.kfdSupport"
216
+ },
217
+ {
218
+ "when": "kfdAdopter is present",
219
+ "pointer": "evidence.kfdAdopterManifest"
220
+ },
221
+ {
222
+ "when": "kfdAdopter is present",
223
+ "pointer": "evidence.kfdAdopterGate"
196
224
  }
197
225
  ],
198
226
  "rule": "The normative checker resolves every declared sibling relative to the passport and fails closed on missing required evidence, digest drift, or semantic mismatch."
@@ -30,6 +30,8 @@
30
30
  "./issue-reporting": "./packages/core/issue-reporting.js",
31
31
  "./kfd": "./packages/core/kfd.js",
32
32
  "./kfd-product-gates": "./packages/core/kfd-product-gates.js",
33
+ "./kfd-adopter-manifest": "./packages/core/kfd-adopter-manifest.js",
34
+ "./kfd-adopter-release-binding": "./packages/core/artifact-verification-envelope.js",
33
35
  "./kfd-agent-hub": "./packages/core/kfd-agent-hub.js",
34
36
  "./buildchain-layout": "./packages/core/buildchain-layout.js",
35
37
  "./release-line-bootstrap": "./packages/core/release-line-bootstrap.js",
@@ -84,7 +86,6 @@
84
86
  "./site/schemas/release-passport-v1.schema.json": "./dist/site/schemas/release-passport-v1.schema.json",
85
87
  "./site/schemas/kfd-agent-hub-adoption.schema.json": "./dist/site/schemas/kfd-agent-hub-adoption.schema.json",
86
88
  "./site/schemas/kfd-product-gate-input-v1.schema.json": "./dist/site/schemas/kfd-product-gate-input-v1.schema.json",
87
- "./site/schemas/kfd-support-projection-v1.schema.json": "./dist/site/schemas/kfd-support-projection-v1.schema.json",
88
89
  "./site/buildchain-contract.json": "./dist/site/buildchain-contract.json",
89
90
  "./site/product-mechanism.json": "./dist/site/product-mechanism.json",
90
91
  "./site/release-provenance.json": "./dist/site/release-provenance.json",
@@ -202,6 +202,9 @@
202
202
  "kfd-3": {
203
203
  "type": "object"
204
204
  },
205
+ "kfdAdopter": {
206
+ "type": "object"
207
+ },
205
208
  "kfdSupport": {
206
209
  "type": "object"
207
210
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-08-11T00:43:51.000Z",
5
- "publishedAt": "2026-08-11T00:43:51.000Z",
4
+ "generatedAt": "2026-08-11T04:56:56.000Z",
5
+ "publishedAt": "2026-08-11T04:56:56.000Z",
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": "827fa0252c0546816c33ec89e66ca505ad6d5162",
22
+ "sourceRevision": "4e258111f28280445fa2a66fac48d24c7982a461",
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.8",
40
+ "version": "3.0.9-alpha.1",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -85,7 +85,7 @@
85
85
  "path": "docs/release-passport.md",
86
86
  "plane": "verify",
87
87
  "exists": true,
88
- "digest": "sha256:e1ca1d470de4faeb9f7f0a57228aebbc166d0c96d03a5603fc576ad955c497a4"
88
+ "digest": "sha256:b95c4e0ae152113f2aedb5ec6c6edfc8a86162abd796d15578fd3aac41bc92c1"
89
89
  },
90
90
  {
91
91
  "id": "github-artifact-attestation",
@@ -133,7 +133,7 @@
133
133
  "path": "docs/release-train.md",
134
134
  "plane": "verify",
135
135
  "exists": true,
136
- "digest": "sha256:550e50726ff479730bee1abe7839776308396bb01613e31a3ed6e898297619fa"
136
+ "digest": "sha256:5ec5534ee48790df09c71a2578e1ca364a14dadf6ba662685ee66f78ae2589e7"
137
137
  },
138
138
  {
139
139
  "id": "release-propagation",
@@ -229,7 +229,7 @@
229
229
  "path": "docs/cli.md",
230
230
  "plane": "use",
231
231
  "exists": true,
232
- "digest": "sha256:1707dd8989e1630b5ba9381c6f8aabbbc64288590628cbae9058ea6f56f9037c"
232
+ "digest": "sha256:142d4c11dde521dae8d829372ef28eb0b7b4d05ff29d0ce35d7fc33a7230dca5"
233
233
  },
234
234
  {
235
235
  "id": "cli-reference",
@@ -237,7 +237,7 @@
237
237
  "path": "docs/cli-reference.md",
238
238
  "plane": "use",
239
239
  "exists": true,
240
- "digest": "sha256:3b203848db87e68762417e768eb8a09a7e653eb30fb7cc21354e72678706b714"
240
+ "digest": "sha256:9b3b7425b5a487afa81520cfac215466c71265915c1465bf6f185cb42b1c340e"
241
241
  },
242
242
  {
243
243
  "id": "node-api-reference",
@@ -245,7 +245,7 @@
245
245
  "path": "docs/node-api-reference.md",
246
246
  "plane": "use",
247
247
  "exists": true,
248
- "digest": "sha256:34f39632494c0f4d4961fd79fc8ac94466da56c29f04f09e706f402d98ef125c"
248
+ "digest": "sha256:bbef23e4f489376f759e5678d61e2f07c69dfa5542f5538e14c68a0714233ea3"
249
249
  },
250
250
  {
251
251
  "id": "build-facts",
@@ -261,7 +261,7 @@
261
261
  "path": "docs/kfd-support.md",
262
262
  "plane": "verify",
263
263
  "exists": true,
264
- "digest": "sha256:3a6143e450ab7976a50788fee48ec4d7313706774ff5cf8f71075a7b9e196e01"
264
+ "digest": "sha256:4efc8fb6f94293b75606aa0631dfa122edccc970c2cfc00c7e35f81817ea8335"
265
265
  },
266
266
  {
267
267
  "id": "kfd-agent-hub",
@@ -285,7 +285,7 @@
285
285
  "path": "docs/reusable-build-surface.md",
286
286
  "plane": "use",
287
287
  "exists": true,
288
- "digest": "sha256:7f69bf3faf8c86b4af268f8e79d511f73de745e146a23809394074f816a372d7"
288
+ "digest": "sha256:8868acbf7942b0d8e5101203a4ab98b984028b90e0584ea131e1d9b0253e4344"
289
289
  },
290
290
  {
291
291
  "id": "publish-transaction",
@@ -341,7 +341,7 @@
341
341
  "path": "docs/runtime-train-validation.md",
342
342
  "plane": "verify",
343
343
  "exists": true,
344
- "digest": "sha256:1a4ce3fc2c150f88bc4d32123a108478ba5d73d0d69b8a95bf0d6670e32618a0"
344
+ "digest": "sha256:f0a1cdb7fe5f72fc2ed921f1aeadbd16184dda16be3727e4193fa2af250325db"
345
345
  },
346
346
  {
347
347
  "id": "versioning",
@@ -349,7 +349,7 @@
349
349
  "path": "docs/versioning.md",
350
350
  "plane": "why",
351
351
  "exists": true,
352
- "digest": "sha256:6af44926f8138932aeb606bb264b19a40a273ce7bea7bad9b021bb9aa542d61b"
352
+ "digest": "sha256:68934ebe8330a13376d1b71d1a875d67d2970b1036e0f185a923175ca2a257fe"
353
353
  },
354
354
  {
355
355
  "id": "web-surface-deployments",
@@ -543,6 +543,7 @@
543
543
  "release-passport-kfd-3-artifact-verify-command",
544
544
  "release-passport-kfd-3-artifact-witness-jsons",
545
545
  "release-passport-kfd-3-prebuild-witness-jsons",
546
+ "release-passport-kfd-adopter-manifest-json",
546
547
  "release-passport-kfd-product-gate-jsons",
547
548
  "release-passport-kfd-support-matrix-json",
548
549
  "release-passport-output-dir",
@@ -566,7 +567,7 @@
566
567
  "target-sha",
567
568
  "trusted-publishing"
568
569
  ],
569
- "inputCount": 110,
570
+ "inputCount": 111,
570
571
  "secrets": [
571
572
  "BUILDCHAIN_ISSUE_APP_ID",
572
573
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -1698,17 +1699,24 @@
1698
1699
  "secretCount": 1,
1699
1700
  "outputs": [
1700
1701
  "active-candidate-pr",
1702
+ "candidate-generation",
1703
+ "candidate-tree-sha",
1701
1704
  "controller-state",
1705
+ "cut-root",
1706
+ "drift-root",
1702
1707
  "eligible",
1708
+ "hold-root",
1703
1709
  "next-candidate-sha",
1704
1710
  "prior-state-root",
1705
1711
  "promotion-pr",
1706
1712
  "result-path",
1713
+ "runtime-sha",
1707
1714
  "selected-sha",
1708
1715
  "settlement-action",
1709
- "source-lock-ref"
1716
+ "source-lock-ref",
1717
+ "train-root"
1710
1718
  ],
1711
- "outputCount": 10,
1719
+ "outputCount": 17,
1712
1720
  "surface": "repository-patrol",
1713
1721
  "capabilityGroup": "governance-versioning",
1714
1722
  "status": "active",
@@ -1953,7 +1961,7 @@
1953
1961
  "status": "preview",
1954
1962
  "owner": "buildchain-workflows",
1955
1963
  "maturity": "preview",
1956
- "introducedVersion": "3.0.8",
1964
+ "introducedVersion": "3.0.9-alpha.1",
1957
1965
  "compatibilityPromise": "preserved-through-the-v3-major-line",
1958
1966
  "deprecationReplacement": "",
1959
1967
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -1974,7 +1982,7 @@
1974
1982
  "status": "preview",
1975
1983
  "owner": "buildchain-workflows",
1976
1984
  "maturity": "preview",
1977
- "introducedVersion": "3.0.8",
1985
+ "introducedVersion": "3.0.9-alpha.1",
1978
1986
  "compatibilityPromise": "preserved-through-the-v3-major-line",
1979
1987
  "deprecationReplacement": "",
1980
1988
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -1995,7 +2003,7 @@
1995
2003
  "status": "preview",
1996
2004
  "owner": "buildchain-workflows",
1997
2005
  "maturity": "preview",
1998
- "introducedVersion": "3.0.8",
2006
+ "introducedVersion": "3.0.9-alpha.1",
1999
2007
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2000
2008
  "deprecationReplacement": "",
2001
2009
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2045,7 +2053,7 @@
2045
2053
  "status": "preview",
2046
2054
  "owner": "buildchain-workflows",
2047
2055
  "maturity": "preview",
2048
- "introducedVersion": "3.0.8",
2056
+ "introducedVersion": "3.0.9-alpha.1",
2049
2057
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2050
2058
  "deprecationReplacement": "",
2051
2059
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2560,6 +2568,7 @@
2560
2568
  "release-passport-kfd-3-artifact-verify-command",
2561
2569
  "release-passport-kfd-3-artifact-witness-jsons",
2562
2570
  "release-passport-kfd-3-prebuild-witness-jsons",
2571
+ "release-passport-kfd-adopter-manifest-json",
2563
2572
  "release-passport-kfd-product-gate-jsons",
2564
2573
  "release-passport-kfd-support-matrix-json",
2565
2574
  "release-passport-output-dir",
@@ -2583,7 +2592,7 @@
2583
2592
  "target-sha",
2584
2593
  "trusted-publishing"
2585
2594
  ],
2586
- "inputCount": 101,
2595
+ "inputCount": 102,
2587
2596
  "secrets": [
2588
2597
  "BUILDCHAIN_ISSUE_APP_ID",
2589
2598
  "BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
@@ -3082,6 +3091,7 @@
3082
3091
  "release-passport-kfd-3-artifact-verify-command",
3083
3092
  "release-passport-kfd-3-artifact-witness-jsons",
3084
3093
  "release-passport-kfd-3-prebuild-witness-jsons",
3094
+ "release-passport-kfd-adopter-manifest-json",
3085
3095
  "release-passport-kfd-product-gate-jsons",
3086
3096
  "release-passport-kfd-support-matrix-json",
3087
3097
  "release-passport-output-dir",
@@ -3101,7 +3111,7 @@
3101
3111
  "transaction-state-path",
3102
3112
  "verification-command"
3103
3113
  ],
3104
- "inputCount": 80,
3114
+ "inputCount": 81,
3105
3115
  "capabilityGroup": "release-passport-trust",
3106
3116
  "status": "active",
3107
3117
  "owner": "buildchain-actions",
@@ -380,7 +380,7 @@ host, including at least one full run, plus proof that:
380
380
  ### Phase 3 lifecycle controller
381
381
 
382
382
  `scripts/aws-macos-jit-controller.mjs` is the operator boundary for the paid
383
- campaign. It has three explicit mutation modes:
383
+ campaign. It has four explicit mutation modes:
384
384
 
385
385
  - `launch-campaign` binds the exact repository source, AMI, availability zone,
386
386
  tagged Dedicated Host, and reusable instance. Before paid allocation it
@@ -395,6 +395,16 @@ campaign. It has three explicit mutation modes:
395
395
  mode-0600 temporary file into a distinct SSM SecureString, sends only the
396
396
  credential-free bootstrap through SSM, and removes the parameter plus runner
397
397
  registration if command delivery fails.
398
+ - `rebind-campaign` repairs the source of an allocated but unused campaign
399
+ without buying another host. It requires the workflow to remain manually
400
+ disabled, the replacement source to be a strict descendant on the same
401
+ campaign ref, and every prior matching run to contain zero jobs and zero
402
+ artifacts. It also requires no registered JIT runner, SSM parameter, or
403
+ bootstrap evidence and verifies the one exact host, instance, and encrypted
404
+ volume. The operation updates only those resources' source tags and the
405
+ existing GitHub ref, emits a zero-allocation receipt, and compensates back to
406
+ the prior source if the ref update or readback fails. It never calls
407
+ `AllocateHosts`, `RunInstances`, or workflow dispatch.
398
408
  - `close-campaign` refuses execution before the provider's 24-hour minimum,
399
409
  verifies the encrypted delete-on-termination root volume, removes scoped JIT
400
410
  residue, terminates the exact instance, and requires a `ReleaseHosts` DryRun
@@ -405,8 +415,10 @@ campaign. It has three explicit mutation modes:
405
415
  Every execute mode requires the exact source SHA and campaign id to be repeated
406
416
  through `--confirm-source-sha` and `--confirm-campaign-id`. `run-job` also
407
417
  requires `--confirm-run-id`; `launch-campaign` additionally requires the
408
- expected workload account through `--account-id`. Omitting `--execute` emits a
409
- deterministic plan without changing AWS or GitHub state.
418
+ expected workload account through `--account-id`. `rebind-campaign`
419
+ additionally repeats the prior source, host, and instance identities and
420
+ requires `--confirm-zero-allocation`. Omitting `--execute` emits a deterministic
421
+ plan without changing AWS or GitHub state.
410
422
 
411
423
  ## Provider lifecycle
412
424
 
@@ -203,11 +203,11 @@ buildchain collect
203
203
 
204
204
  - Help: `buildchain collect github-release --help`
205
205
  - Canonical id: `collect-github-release`
206
- - Options: `--anchor-manifest-json`, `--assets-dir`, `--assets-json`, `--base-passport-json`, `--build-facts-json`, `--build-summary-json`, `--dist-tag-evidence-json`, `--github-artifact-attestation-policy-json`, `--impact-json`, `--invariant-passport-cmd`, `--invariant-passport-json`, `--json`, `--kfd-1-witness-json`, `--kfd-2-claim-json`, `--kfd-3-artifact-verify-cmd`, `--kfd-3-artifact-witness-json`, `--kfd-3-prebuild-witness-json`, `--kfd-agent-hub-evidence-json`, `--kfd-product-gate-json`, `--kfd-support-matrix-json`, `--output-dir`, `--package-set-json`, `--platform-manifest-json`, `--product-name`, `--publish-evidence-json`, `--publish-json`, `--release-evidence-json`, `--release-extra-json`, `--release-json`, `--repository`, `--require-base-kfd`, `--tag`, `--transaction-json`, `--trusted-publishing-json`
206
+ - Options: `--anchor-manifest-json`, `--assets-dir`, `--assets-json`, `--base-passport-json`, `--build-facts-json`, `--build-summary-json`, `--dist-tag-evidence-json`, `--github-artifact-attestation-policy-json`, `--impact-json`, `--invariant-passport-cmd`, `--invariant-passport-json`, `--json`, `--kfd-1-witness-json`, `--kfd-2-claim-json`, `--kfd-3-artifact-verify-cmd`, `--kfd-3-artifact-witness-json`, `--kfd-3-prebuild-witness-json`, `--kfd-adopter-manifest-json`, `--kfd-agent-hub-evidence-json`, `--kfd-product-gate-json`, `--kfd-support-matrix-json`, `--output-dir`, `--package-set-json`, `--platform-manifest-json`, `--product-name`, `--publish-evidence-json`, `--publish-json`, `--release-evidence-json`, `--release-extra-json`, `--release-json`, `--repository`, `--require-base-kfd`, `--tag`, `--transaction-json`, `--trusted-publishing-json`
207
207
  - Syntax:
208
208
 
209
209
  ```text
210
- buildchain collect github-release --tag <tag> [--repository <owner/repo>] [--assets-dir <dir>] [--assets-json <json-or-path>] [--release-json <json-or-path>] [--package-set-json <json-or-path>] [--product-name <name>] [--publish-evidence-json <json-or-path>] [--trusted-publishing-json <json-or-path>] [--transaction-json <json-or-path>] [--anchor-manifest-json <json-or-path>] [--impact-json <json-or-path>] [--build-summary-json <json-or-path>] [--build-facts-json <json-or-path>]... [--platform-manifest-json <json-or-path>]... [--dist-tag-evidence-json <json-or-path>] [--kfd-1-witness-json <json-or-path>]... [--kfd-2-claim-json <json-or-path>]... [--kfd-3-prebuild-witness-json <json-or-path>]... [--kfd-3-artifact-witness-json <json-or-path>]... [--kfd-3-artifact-verify-cmd <command>] [--kfd-support-matrix-json <json-or-path>] [--kfd-product-gate-json <json-or-path>]... [--invariant-passport-json <json-or-path>]... [--invariant-passport-cmd <command>] [--release-evidence-json <json-or-path>]... [--github-artifact-attestation-policy-json <json-or-path>]... [--kfd-agent-hub-evidence-json <json-or-path>] [--base-passport-json <json-or-path>] [--require-base-kfd] [--release-extra-json <json-or-path>] [--publish-json <json-or-path>] [--output-dir <dir>] [--json]
210
+ buildchain collect github-release --tag <tag> [--repository <owner/repo>] [--assets-dir <dir>] [--assets-json <json-or-path>] [--release-json <json-or-path>] [--package-set-json <json-or-path>] [--product-name <name>] [--publish-evidence-json <json-or-path>] [--trusted-publishing-json <json-or-path>] [--transaction-json <json-or-path>] [--anchor-manifest-json <json-or-path>] [--impact-json <json-or-path>] [--build-summary-json <json-or-path>] [--build-facts-json <json-or-path>]... [--platform-manifest-json <json-or-path>]... [--dist-tag-evidence-json <json-or-path>] [--kfd-1-witness-json <json-or-path>]... [--kfd-2-claim-json <json-or-path>]... [--kfd-3-prebuild-witness-json <json-or-path>]... [--kfd-3-artifact-witness-json <json-or-path>]... [--kfd-3-artifact-verify-cmd <command>] [--kfd-adopter-manifest-json <json-or-path>] [--kfd-support-matrix-json <json-or-path>] [--kfd-product-gate-json <json-or-path>]... [--invariant-passport-json <json-or-path>]... [--invariant-passport-cmd <command>] [--release-evidence-json <json-or-path>]... [--github-artifact-attestation-policy-json <json-or-path>]... [--kfd-agent-hub-evidence-json <json-or-path>] [--base-passport-json <json-or-path>] [--require-base-kfd] [--release-extra-json <json-or-path>] [--publish-json <json-or-path>] [--output-dir <dir>] [--json]
211
211
  ```
212
212
 
213
213
  ## `create`
@@ -1230,22 +1230,22 @@ buildchain kfd status [--cwd <dir>] [--json]
1230
1230
 
1231
1231
  - Help: `buildchain kfd support project --help`
1232
1232
  - Canonical id: `kfd-support`
1233
- - Options: `--checked-at`, `--expected-source-sha`, `--gate-json`, `--json`, `--matrix-json`, `--output`
1233
+ - Options: `--checked-at`, `--expected-source-sha`, `--json`, `--manifest-gate-json`, `--manifest-json`, `--output`
1234
1234
  - Syntax:
1235
1235
 
1236
1236
  ```text
1237
- buildchain kfd support project --matrix-json <file-or-json> --gate-json <file-or-json>... [--expected-source-sha <sha>] [--checked-at <date-time>] [--output <file>] [--json]
1237
+ buildchain kfd support project --manifest-json <file-or-json> --manifest-gate-json <file-or-json> [--expected-source-sha <sha>] [--checked-at <date-time>] [--output <file>] [--json]
1238
1238
  ```
1239
1239
 
1240
1240
  ### `buildchain kfd support verify`
1241
1241
 
1242
1242
  - Help: `buildchain kfd support verify --help`
1243
1243
  - Canonical id: `kfd-support`
1244
- - Options: `--checked-at`, `--expected-source-sha`, `--json`, `--projection-json`
1244
+ - Options: `--checked-at`, `--expected-source-sha`, `--json`, `--manifest-gate-json`, `--manifest-json`, `--projection-json`
1245
1245
  - Syntax:
1246
1246
 
1247
1247
  ```text
1248
- buildchain kfd support verify --projection-json <file-or-json> [--expected-source-sha <sha>] [--checked-at <date-time>] [--json]
1248
+ buildchain kfd support verify --projection-json <file-or-json> --manifest-json <file-or-json> --manifest-gate-json <file-or-json> [--expected-source-sha <sha>] [--checked-at <date-time>] [--json]
1249
1249
  ```
1250
1250
 
1251
1251
  ### `buildchain kfd upstream check`
package/docs/cli.md CHANGED
@@ -442,9 +442,8 @@ buildchain kfd migrate-layout --write
442
442
  buildchain kfd 4 gate --input-json kfd-4-gate-input.json --output kfd-4-gate.json
443
443
  buildchain kfd 5 gate --input-json kfd-5-gate-input.json --output kfd-5-gate.json
444
444
  buildchain kfd 7 gate --input-json kfd-7-gate-input.json --output kfd-7-gate.json
445
- buildchain kfd support project --matrix-json support-matrix.json \
446
- --gate-json kfd-4-gate.json --gate-json kfd-5-gate.json \
447
- --gate-json kfd-7-gate.json --output kfd-support.json
445
+ buildchain kfd support project --manifest-json adopter-manifest.json \
446
+ --manifest-gate-json adopter-manifest-gate.json --output kfd-support.json
448
447
  ```
449
448
 
450
449
  KFD-1 commands generate and validate contract-world release evidence: