@kungfu-tech/buildchain 2.14.18-alpha.9 → 2.14.19-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/site/buildchain-contract.json +51 -21
- package/dist/site/buildchain-site.json +26 -5
- package/dist/site/capability-registry.json +2 -2
- package/dist/site/controller-registry.json +27 -3
- package/dist/site/kfd-claims.json +43 -8
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/node-api-registry.json +17 -4
- package/dist/site/page-registry.json +22 -1
- package/dist/site/public-surface-audit.json +21 -6
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +1 -0
- package/dist/site/site-manifest.json +4 -4
- package/dist/site/workflow-registry.json +14 -3
- package/docs/release-activation-transaction.md +38 -0
- package/package.json +2 -1
- package/packages/core/controller-evidence.js +1 -1
- package/packages/core/index.js +14 -0
- package/packages/core/publication-authority.js +5 -1
- package/packages/core/release-activation-transaction.js +325 -0
- package/packages/core/self-dogfood-version.js +85 -0
- package/scripts/check-inventory.mjs +21 -9
- package/scripts/generate-site-bundle.mjs +2 -0
- package/scripts/installer-publication.mjs +15 -5
- package/scripts/publication-commit-evidence.mjs +298 -12
- package/scripts/release-candidate-resolver.mjs +50 -3
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.14.
|
|
7
|
+
"version": "2.14.19-alpha.0",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
171
171
|
],
|
|
172
172
|
"breakingDigest": "sha256:1f476fb9a4854b362c4b24cef89a3c7675d7d63baf3bc828d7b8ae7d2787cead",
|
|
173
|
-
"auditDigest": "sha256:
|
|
173
|
+
"auditDigest": "sha256:e0fad79855df3dedfaa2e92c20f6154f2ff18890e65f97f1279ce948bb426b04"
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
"contractVersion": 1,
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
"promotion reuses PR-stage release-candidate artifacts and does not run the heavy native build matrix"
|
|
213
213
|
],
|
|
214
214
|
"breakingDigest": "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0",
|
|
215
|
-
"auditDigest": "sha256:
|
|
215
|
+
"auditDigest": "sha256:c3b618429257e3a332f0f9d0827fb17fc7762ec215c64f849f6f51874aa3a1d3"
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"contractVersion": 1,
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
"channel-aware artifact host facts are checked against the deploy plan before adapter side effects"
|
|
257
257
|
],
|
|
258
258
|
"breakingDigest": "sha256:da569f90374e878948e3d5160ed9929338ce0572473ca8ee54867b0fe1aaeace",
|
|
259
|
-
"auditDigest": "sha256:
|
|
259
|
+
"auditDigest": "sha256:92432be1f049d261434c986f79e55899f2097ca7b66f1261666fc5b85d685889"
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
262
|
"contractVersion": 1,
|
|
@@ -327,7 +327,7 @@
|
|
|
327
327
|
"sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874"
|
|
328
328
|
],
|
|
329
329
|
"breakingDigest": "sha256:6147c0a8d5c36bfaa6021871574e1fc28192a3f1b8cfdae4d24ef3059ac1ebda",
|
|
330
|
-
"auditDigest": "sha256:
|
|
330
|
+
"auditDigest": "sha256:90dc42a2b7077441afba4493132c1baf2645be46e3e73abe9f8436598d9b9bc9"
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
"contractVersion": 1,
|
|
@@ -663,7 +663,7 @@
|
|
|
663
663
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
664
664
|
],
|
|
665
665
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
666
|
-
"auditDigest": "sha256:
|
|
666
|
+
"auditDigest": "sha256:9ad3fe0e0b693621e0e3482072ae819fb65e6e53396186d9715552bb598906f3"
|
|
667
667
|
},
|
|
668
668
|
{
|
|
669
669
|
"contractVersion": 1,
|
|
@@ -714,7 +714,7 @@
|
|
|
714
714
|
"controllerDescriptor": {
|
|
715
715
|
"contract": "buildchain.controller-descriptor/v1",
|
|
716
716
|
"digest": "sha256:373723a73d188194d389dee04c394d3b79cb0c016a370f2f5d0f60979a02ed48",
|
|
717
|
-
"registryDigest": "sha256:
|
|
717
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
718
718
|
"inputClassifications": {
|
|
719
719
|
"buildchain-ref": {
|
|
720
720
|
"classification": "included",
|
|
@@ -873,7 +873,7 @@
|
|
|
873
873
|
"controllerDescriptor": {
|
|
874
874
|
"contract": "buildchain.controller-descriptor/v1",
|
|
875
875
|
"digest": "sha256:a06607b6ebd3fb00b77519098c81d6fb5e9943ec268aebb1e5fdbefef6e598ad",
|
|
876
|
-
"registryDigest": "sha256:
|
|
876
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
877
877
|
"inputClassifications": {
|
|
878
878
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
879
879
|
"classification": "redacted",
|
|
@@ -1297,7 +1297,7 @@
|
|
|
1297
1297
|
"controllerDescriptor": {
|
|
1298
1298
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1299
1299
|
"digest": "sha256:4fc6c33bf5b429f8087ac752d5cf2a19f4a1cc30db01aae927a28cee1cf924f0",
|
|
1300
|
-
"registryDigest": "sha256:
|
|
1300
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
1301
1301
|
"inputClassifications": {
|
|
1302
1302
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN": {
|
|
1303
1303
|
"classification": "redacted",
|
|
@@ -1671,7 +1671,7 @@
|
|
|
1671
1671
|
"controllerDescriptor": {
|
|
1672
1672
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1673
1673
|
"digest": "sha256:29569f4b754595792a16742d1c4c63838b54601674a2cb6c96261a72c962dece",
|
|
1674
|
-
"registryDigest": "sha256:
|
|
1674
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
1675
1675
|
"inputClassifications": {
|
|
1676
1676
|
"artifact-name": {
|
|
1677
1677
|
"classification": "included",
|
|
@@ -1827,6 +1827,7 @@
|
|
|
1827
1827
|
"production-release-on-main",
|
|
1828
1828
|
"production-release-pr-mode",
|
|
1829
1829
|
"production-release-pr-token",
|
|
1830
|
+
"production-source-sha",
|
|
1830
1831
|
"publication-admission-json",
|
|
1831
1832
|
"publication-control-plane-audit-json",
|
|
1832
1833
|
"publication-expected-json",
|
|
@@ -1842,8 +1843,8 @@
|
|
|
1842
1843
|
],
|
|
1843
1844
|
"controllerDescriptor": {
|
|
1844
1845
|
"contract": "buildchain.controller-descriptor/v1",
|
|
1845
|
-
"digest": "sha256:
|
|
1846
|
-
"registryDigest": "sha256:
|
|
1846
|
+
"digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575",
|
|
1847
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
1847
1848
|
"inputClassifications": {
|
|
1848
1849
|
"artifact-path": {
|
|
1849
1850
|
"classification": "digest-only",
|
|
@@ -1961,6 +1962,10 @@
|
|
|
1961
1962
|
"classification": "redacted",
|
|
1962
1963
|
"source": "workflow-call-input"
|
|
1963
1964
|
},
|
|
1965
|
+
"production-source-sha": {
|
|
1966
|
+
"classification": "included",
|
|
1967
|
+
"source": "workflow-call-input"
|
|
1968
|
+
},
|
|
1964
1969
|
"publication-admission-json": {
|
|
1965
1970
|
"classification": "digest-only",
|
|
1966
1971
|
"source": "workflow-call-input"
|
|
@@ -2018,7 +2023,7 @@
|
|
|
2018
2023
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2019
2024
|
],
|
|
2020
2025
|
"breakingDigest": "sha256:f14825324a16b51c2e9ed708ebe64e1932e05b6d5e0866f83aea8439decb4a27",
|
|
2021
|
-
"auditDigest": "sha256:
|
|
2026
|
+
"auditDigest": "sha256:92432be1f049d261434c986f79e55899f2097ca7b66f1261666fc5b85d685889"
|
|
2022
2027
|
},
|
|
2023
2028
|
{
|
|
2024
2029
|
"contractVersion": 1,
|
|
@@ -2083,7 +2088,7 @@
|
|
|
2083
2088
|
"controllerDescriptor": {
|
|
2084
2089
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2085
2090
|
"digest": "sha256:6b132790b9798e8a5dfbe095701d8e024c160a08bc7c4bd477ee79feef7a9cfd",
|
|
2086
|
-
"registryDigest": "sha256:
|
|
2091
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
2087
2092
|
"inputClassifications": {
|
|
2088
2093
|
"artifact-name": {
|
|
2089
2094
|
"classification": "included",
|
|
@@ -2265,7 +2270,7 @@
|
|
|
2265
2270
|
"controllerDescriptor": {
|
|
2266
2271
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2267
2272
|
"digest": "sha256:6d71409659fbf8543c7e520b0c493d8afe86bdf60286b860bb917f0041ebc173",
|
|
2268
|
-
"registryDigest": "sha256:
|
|
2273
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
2269
2274
|
"inputClassifications": {
|
|
2270
2275
|
"artifact-name": {
|
|
2271
2276
|
"classification": "included",
|
|
@@ -2539,10 +2544,15 @@
|
|
|
2539
2544
|
"publish-rematerialize-on-resume",
|
|
2540
2545
|
"publish-required-artifacts-json",
|
|
2541
2546
|
"publish-target",
|
|
2547
|
+
"publish-transaction-override",
|
|
2548
|
+
"release-activation-command",
|
|
2549
|
+
"release-activation-receipt-set-path",
|
|
2542
2550
|
"release-candidate-workflow-file",
|
|
2543
2551
|
"release-candidate-workflow-name",
|
|
2544
2552
|
"release-passport",
|
|
2545
2553
|
"release-passport-buildchain-self-kfd",
|
|
2554
|
+
"release-passport-evidence-command",
|
|
2555
|
+
"release-passport-evidence-path",
|
|
2546
2556
|
"release-passport-impact-json",
|
|
2547
2557
|
"release-passport-invariant-passport-command",
|
|
2548
2558
|
"release-passport-invariant-passport-jsons",
|
|
@@ -2564,8 +2574,8 @@
|
|
|
2564
2574
|
],
|
|
2565
2575
|
"controllerDescriptor": {
|
|
2566
2576
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2567
|
-
"digest": "sha256:
|
|
2568
|
-
"registryDigest": "sha256:
|
|
2577
|
+
"digest": "sha256:2bae7310eb27f48a3afc6b7f993872d6b6121cf3f67ad4d6e2da35b254c4d047",
|
|
2578
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
2569
2579
|
"inputClassifications": {
|
|
2570
2580
|
"BUILDCHAIN_ISSUE_APP_ID": {
|
|
2571
2581
|
"classification": "redacted",
|
|
@@ -2831,6 +2841,18 @@
|
|
|
2831
2841
|
"classification": "included",
|
|
2832
2842
|
"source": "workflow-call-input"
|
|
2833
2843
|
},
|
|
2844
|
+
"publish-transaction-override": {
|
|
2845
|
+
"classification": "included",
|
|
2846
|
+
"source": "workflow-call-input"
|
|
2847
|
+
},
|
|
2848
|
+
"release-activation-command": {
|
|
2849
|
+
"classification": "digest-only",
|
|
2850
|
+
"source": "workflow-call-input"
|
|
2851
|
+
},
|
|
2852
|
+
"release-activation-receipt-set-path": {
|
|
2853
|
+
"classification": "digest-only",
|
|
2854
|
+
"source": "workflow-call-input"
|
|
2855
|
+
},
|
|
2834
2856
|
"release-candidate-workflow-file": {
|
|
2835
2857
|
"classification": "included",
|
|
2836
2858
|
"source": "workflow-call-input"
|
|
@@ -2847,6 +2869,14 @@
|
|
|
2847
2869
|
"classification": "included",
|
|
2848
2870
|
"source": "workflow-call-input"
|
|
2849
2871
|
},
|
|
2872
|
+
"release-passport-evidence-command": {
|
|
2873
|
+
"classification": "digest-only",
|
|
2874
|
+
"source": "workflow-call-input"
|
|
2875
|
+
},
|
|
2876
|
+
"release-passport-evidence-path": {
|
|
2877
|
+
"classification": "digest-only",
|
|
2878
|
+
"source": "workflow-call-input"
|
|
2879
|
+
},
|
|
2850
2880
|
"release-passport-impact-json": {
|
|
2851
2881
|
"classification": "digest-only",
|
|
2852
2882
|
"source": "workflow-call-input"
|
|
@@ -2928,7 +2958,7 @@
|
|
|
2928
2958
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
2929
2959
|
],
|
|
2930
2960
|
"breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
|
|
2931
|
-
"auditDigest": "sha256:
|
|
2961
|
+
"auditDigest": "sha256:c3b618429257e3a332f0f9d0827fb17fc7762ec215c64f849f6f51874aa3a1d3"
|
|
2932
2962
|
},
|
|
2933
2963
|
{
|
|
2934
2964
|
"contractVersion": 1,
|
|
@@ -2989,7 +3019,7 @@
|
|
|
2989
3019
|
"controllerDescriptor": {
|
|
2990
3020
|
"contract": "buildchain.controller-descriptor/v1",
|
|
2991
3021
|
"digest": "sha256:f97656a8df0758c8e404d5b7c387529256a1ec45d1748f8efb6847a3256b1216",
|
|
2992
|
-
"registryDigest": "sha256:
|
|
3022
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
2993
3023
|
"inputClassifications": {
|
|
2994
3024
|
"buildchain-ref": {
|
|
2995
3025
|
"classification": "included",
|
|
@@ -3112,7 +3142,7 @@
|
|
|
3112
3142
|
"controllerDescriptor": {
|
|
3113
3143
|
"contract": "buildchain.controller-descriptor/v1",
|
|
3114
3144
|
"digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555",
|
|
3115
|
-
"registryDigest": "sha256:
|
|
3145
|
+
"registryDigest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600",
|
|
3116
3146
|
"inputClassifications": {}
|
|
3117
3147
|
},
|
|
3118
3148
|
"guarantees": [
|
|
@@ -3126,5 +3156,5 @@
|
|
|
3126
3156
|
}
|
|
3127
3157
|
],
|
|
3128
3158
|
"compatibilityDigest": "sha256:df13c3b8066068925ce847b31002201d533034d10d342542422db3a665c10475",
|
|
3129
|
-
"contractDigest": "sha256:
|
|
3159
|
+
"contractDigest": "sha256:c2adec72d5f57a4e264521d178dc052f36b5645dc38b793c24029367d5734b42"
|
|
3130
3160
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-bundle",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-25T09:03:07.729Z",
|
|
5
|
+
"publishedAt": "2026-07-25T09:03:07.729Z",
|
|
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": "22974861f653c475febd15dd67dcc5cc01fb6f83",
|
|
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": "2.14.
|
|
40
|
+
"version": "2.14.19-alpha.0",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"source": {
|
|
@@ -1436,6 +1436,27 @@
|
|
|
1436
1436
|
],
|
|
1437
1437
|
"markdown": "# README Badge Blocks\n\nBuildchain can generate a managed README badge block from repository-owned\nfacts. The README keeps only a projection; the source facts remain in\n`.buildchain/buildchain.toml`, package metadata, workflow files, KFD standards metadata,\nand the repository's own release passport.\n\nThe managed block is delimited by:\n\n```markdown\n<!-- buildchain:badges:start -->\n...\n<!-- buildchain:badges:end -->\n```\n\nBuildchain owns only that block. Everything outside the markers remains normal\nREADME content.\n\n## Node API\n\nUse the public package export:\n\n```js\nimport {\n collectBadgeBundleFacts,\n collectReadmeBadgeFacts,\n createKfdBadgeSpecsFromStandards,\n renderBadgeBundleBlock,\n renderReadmeBadgeBlock,\n checkBadgeBundleBlock,\n checkReadmeBadgeBlock,\n updateBadgeBundleBlock,\n updateReadmeBadgeBlock,\n} from \"@kungfu-tech/buildchain/badges\";\n```\n\n`@kungfu-tech/buildchain/readme-badges` remains available for compatibility,\nbut new integrations should use `@kungfu-tech/buildchain/badges`.\n\n`collectReadmeBadgeFacts({ cwd })` returns a machine-readable object with\ncontract `kungfu-buildchain-readme-badge-facts`. It collects repository\nidentity, package name/version/license, configured platforms, configured\nworkflow status badges, the repository's own Buildchain Release Passport\nlocation and verification result, and KFD badge state. KFD badge labels,\nhuman-facing concept text, standard document links, schema IDs, and interface\ncontracts are read from\n`@kungfu-tech/kfd/standards.json` when the package is installed, or from an\nexplicit `kfd_standards` path/URL. When present, it also summarizes local KFD\nclaim registry and product-mechanism facts from the package-owned site bundle,\nso downstream agents can connect README badges back to Buildchain's\nKFD/source-of-truth surfaces.\n\n`renderReadmeBadgeBlock(facts)` renders deterministic Markdown from that facts\nobject. `checkReadmeBadgeBlock({ readmeText, facts })` compares the current\nREADME marker block against the expected block and reports missing or stale\ndrift. `updateReadmeBadgeBlock({ readmeText, facts })` inserts or replaces the\nmanaged block.\n\nThe Node API is the implementation source. The CLI delegates to it.\n\n`collectBadgeBundleFacts({ cwd, claims })` is the trust-badge bundle API. It\nuses the same repository facts, but returns contract\n`kungfu-buildchain-badge-bundle-facts` and only renders the Buildchain trust\nclaims: every active `kfd-*` standard discovered from KFD standards metadata,\nplus `release-passport`. KFD-1, KFD-2, KFD-3, KFD-4, and release passport are\nenabled by default with current KFD metadata. Callers can pass\n`claims: \"kfd-1,release-passport\"` or an array to narrow the bundle without\nhand-writing badge Markdown.\n\n## CLI\n\nGenerate facts as JSON:\n\n```bash\nbuildchain badges readme --json\n```\n\nFail closed when the README block is missing or stale:\n\n```bash\nbuildchain badges readme --check\n```\n\nInsert or replace the block:\n\n```bash\nbuildchain badges readme --write\n```\n\nGenerate only the Buildchain trust badge bundle:\n\n```bash\nbuildchain badges bundle --json\nbuildchain badges bundle --check\nbuildchain badges bundle --write\n```\n\nNarrow the bundle to specific claims:\n\n```bash\nbuildchain badges bundle --claims kfd-1,release-passport --write\n```\n\nAll commands accept `--cwd <dir>` and `--readme <path>`. Repositories can add\n`buildchain badges bundle --check` or `buildchain badges readme --check` to CI\nso badge drift is detected like any other generated release-facing surface.\n\n## Configuration\n\nThe optional `[badges]` table in `.buildchain/buildchain.toml` declares local facts that\ncannot be inferred safely:\n\n```toml\n[badges]\nrelease_passport = \"https://github.com/example/project/releases/latest/download/buildchain.release.json\"\nkfd_standards = \"node_modules/@kungfu-tech/kfd/standards.json\"\nkfd_1 = \"declared\"\nkfd_2 = \"planned\"\nkfd_3 = \"aligned\"\nkfd_4 = \"declared\"\nplatforms = [\"macOS\", \"Linux\", \"Windows\"]\nworkflows = [\"verify.yml\", \"build.yml\"]\n\n[badges.bundle]\nclaims = [\"kfd-1\", \"kfd-2\", \"kfd-3\", \"kfd-4\", \"release-passport\"]\n```\n\n`release_passport` may be a local path or URL. If omitted, Buildchain tries\n`buildchain.release.json`, then `.buildchain/release-passport/buildchain.release.json`,\nthen the repository's latest GitHub Release asset when the GitHub repository\ncan be discovered.\n\nThe generated `Buildchain Release Passport` badge is a repository capability\nbadge: it says whether the current repository has a Buildchain release passport\nthat can be verified. It does not report the upstream `kungfu-systems/buildchain`\nrepository status. Buildchain's own README dogfoods the same rule because its\nconfigured `release_passport` points at Buildchain's own release passport.\n\nBuildchain-owned badges use stable hosted image URLs by default:\n\n```text\nhttps://buildchain.libkungfu.dev/badges/v1/{badge}/{state}.svg\n```\n\nThe URL is part of the Buildchain badge contract. Consumers do not need to\nregenerate README files when Buildchain replaces the placeholder badge logo\nwith a formal logo; the hosted endpoint owns logo rendering. The package-owned\nsite bundle publishes `badge-endpoint-registry.json` plus Shields-compatible\nJSON payloads under `badges/v1/**` so the site repository can serve or render\nthe exact SVG endpoints without inventing badge facts.\n\nForks or private deployments can override the image host with:\n\n```toml\n[badges]\nbadge_endpoint_base_url = \"https://example.com/buildchain-badges/v1\"\n```\n\n`kfd_standards` is optional. If omitted, Buildchain tries the installed\n`@kungfu-tech/kfd/standards.json` package export. Use the explicit path or URL\nonly when a repository deliberately vendors KFD standards metadata or validates\nagainst a local KFD development checkout. The KFD standards metadata controls\nthe badge vocabulary; the release passport still controls whether a repository\nmay display a KFD state as `passed`.\n\n## KFD Badge Rules\n\nKFD passed is evidence-backed. A repository may display `KFD-N passed` only when\nits own release passport verifies successfully and the corresponding passport\nsection has `status: \"passed\"`. The KFD badge vocabulary comes from KFD\nstandards metadata, not Buildchain private strings: for example KFD-2 uses the\n`releaseTrustPassport` concept and KFD-4 uses the `observerPerspective` concept\nfrom `@kungfu-tech/kfd/standards.json`.\n\nWhen no release passport exists yet, or when the passport cannot be verified,\nBuildchain downgrades each KFD badge to the explicit local declaration such as\n`declared`, `aligned`, or `planned`. A local `passed` declaration is treated as\n`declared`; unknown local states are normalized to a non-passed fallback.\n\nBuildchain's own README may link to Buildchain's own release passport. Other\nrepositories must not claim Buildchain's KFD status as their own; their badge\nlinks must point to their own release passport or evidence page.\n\n## CI Contract\n\nRecommended CI gate:\n\n```bash\nbuildchain badges readme --check\n```\n\nor, when the repository only wants the Buildchain trust bundle:\n\n```bash\nbuildchain badges bundle --check\n```\n\nThe check fails when:\n\n- the marker block is missing;\n- generated Markdown differs from repository facts;\n- a previously hand-written KFD passed claim is not backed by the repository's\n verified release passport facts.\n\nThe machine-readable facts object should be used by downstream site renderers\nor audit tools when Markdown badges are not enough."
|
|
1438
1438
|
},
|
|
1439
|
+
{
|
|
1440
|
+
"id": "manual:release-activation-transaction",
|
|
1441
|
+
"title": "Release activation transaction",
|
|
1442
|
+
"route": "/docs/release-activation-transaction",
|
|
1443
|
+
"category": "manual",
|
|
1444
|
+
"capabilityGroup": "getting-started",
|
|
1445
|
+
"audience": [
|
|
1446
|
+
"agent"
|
|
1447
|
+
],
|
|
1448
|
+
"maturity": "stable",
|
|
1449
|
+
"sourcePath": "docs/release-activation-transaction.md",
|
|
1450
|
+
"digest": "sha256:c3de5838603d3e6dd3ea03c599e67aafa1d1fc184498fb779cb703f8796424cf",
|
|
1451
|
+
"headings": [
|
|
1452
|
+
{
|
|
1453
|
+
"level": 1,
|
|
1454
|
+
"title": "Release activation transaction",
|
|
1455
|
+
"anchor": "release-activation-transaction"
|
|
1456
|
+
}
|
|
1457
|
+
],
|
|
1458
|
+
"markdown": "# Release activation transaction\n\nBuildchain exposes `release-activation-transaction` as the final cross-repository\ncontract between a qualified product release, its public web surface, and the\nproduct-owned released-evidence projection.\n\nThe canonical order is:\n\n1. `candidate-qualified`\n2. `artifacts-published`\n3. `passport-sealed`\n4. `site-published`\n5. `public-readback`\n6. `evidence-synthesized`\n\n`packages/core/release-activation-transaction.js` is the executable authority.\nEvery transaction binds an exact product source SHA, exact reviewed site source\nSHA, tag, channel, version, environment, artifact-set root, and the three\nrepository owners. A later phase cannot pass while an earlier phase is\nincomplete. Replaying a passed phase is idempotent only when its retained\nreceipt roots are unchanged.\n\nReleased evidence must be synthesized from a canonical receipt set containing\nexactly one artifact-publication, release-passport, site-publication,\npublic-readback, and product-qualification receipt. Every receipt repeats the\nsame binding root. Missing, duplicated, stale, or substituted roots fail\nclosed.\n\nShadow rehearsal uses `mode=shadow`, `environment=shadow`, and always emits\n`releasedUseClaim=false`. It is suitable for protected PR qualification and\nmust never be published as real release evidence. Activation mode requires the\nproduction environment; actual channel mutation remains the caller's protected\npublication responsibility.\n\nThe web-surface workflow accepts `production-source-sha` only for an explicitly\napproved `workflow_dispatch`. It checks out and plans the exact reviewed\nconsumer commit, while the production environment and normal publication\nauthority gates remain intact."
|
|
1459
|
+
},
|
|
1439
1460
|
{
|
|
1440
1461
|
"id": "manual:release-candidate",
|
|
1441
1462
|
"title": "Release Candidate Passport",
|
|
@@ -2547,7 +2568,7 @@
|
|
|
2547
2568
|
"pageRegistry": {
|
|
2548
2569
|
"path": "page-registry.json",
|
|
2549
2570
|
"contract": "kungfu-buildchain-site-page-registry",
|
|
2550
|
-
"pageCount":
|
|
2571
|
+
"pageCount": 55,
|
|
2551
2572
|
"categories": [
|
|
2552
2573
|
"action",
|
|
2553
2574
|
"api",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"maturity": "stable",
|
|
16
16
|
"counts": {
|
|
17
17
|
"manualCount": 3,
|
|
18
|
-
"pageCount":
|
|
18
|
+
"pageCount": 10,
|
|
19
19
|
"cliCommandCount": 5,
|
|
20
20
|
"nodeApiCount": 0,
|
|
21
21
|
"workflowCount": 0,
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"manualCount": 4,
|
|
51
51
|
"pageCount": 4,
|
|
52
52
|
"cliCommandCount": 21,
|
|
53
|
-
"nodeApiCount":
|
|
53
|
+
"nodeApiCount": 8,
|
|
54
54
|
"workflowCount": 2,
|
|
55
55
|
"actionCount": 1
|
|
56
56
|
},
|
|
@@ -1006,6 +1006,10 @@
|
|
|
1006
1006
|
"classification": "redacted",
|
|
1007
1007
|
"source": "workflow-call-input"
|
|
1008
1008
|
},
|
|
1009
|
+
"production-source-sha": {
|
|
1010
|
+
"classification": "included",
|
|
1011
|
+
"source": "workflow-call-input"
|
|
1012
|
+
},
|
|
1009
1013
|
"publication-admission-json": {
|
|
1010
1014
|
"classification": "digest-only",
|
|
1011
1015
|
"source": "workflow-call-input"
|
|
@@ -1098,7 +1102,7 @@
|
|
|
1098
1102
|
"controller-receipt"
|
|
1099
1103
|
]
|
|
1100
1104
|
},
|
|
1101
|
-
"digest": "sha256:
|
|
1105
|
+
"digest": "sha256:c5274b37f04d0054559fdc8698c51bd0f0d8ae470baf163e9caa7699aa970575"
|
|
1102
1106
|
},
|
|
1103
1107
|
{
|
|
1104
1108
|
"schemaVersion": 1,
|
|
@@ -1718,6 +1722,18 @@
|
|
|
1718
1722
|
"classification": "included",
|
|
1719
1723
|
"source": "workflow-call-input"
|
|
1720
1724
|
},
|
|
1725
|
+
"publish-transaction-override": {
|
|
1726
|
+
"classification": "included",
|
|
1727
|
+
"source": "workflow-call-input"
|
|
1728
|
+
},
|
|
1729
|
+
"release-activation-command": {
|
|
1730
|
+
"classification": "digest-only",
|
|
1731
|
+
"source": "workflow-call-input"
|
|
1732
|
+
},
|
|
1733
|
+
"release-activation-receipt-set-path": {
|
|
1734
|
+
"classification": "digest-only",
|
|
1735
|
+
"source": "workflow-call-input"
|
|
1736
|
+
},
|
|
1721
1737
|
"release-candidate-workflow-file": {
|
|
1722
1738
|
"classification": "included",
|
|
1723
1739
|
"source": "workflow-call-input"
|
|
@@ -1734,6 +1750,14 @@
|
|
|
1734
1750
|
"classification": "included",
|
|
1735
1751
|
"source": "workflow-call-input"
|
|
1736
1752
|
},
|
|
1753
|
+
"release-passport-evidence-command": {
|
|
1754
|
+
"classification": "digest-only",
|
|
1755
|
+
"source": "workflow-call-input"
|
|
1756
|
+
},
|
|
1757
|
+
"release-passport-evidence-path": {
|
|
1758
|
+
"classification": "digest-only",
|
|
1759
|
+
"source": "workflow-call-input"
|
|
1760
|
+
},
|
|
1737
1761
|
"release-passport-impact-json": {
|
|
1738
1762
|
"classification": "digest-only",
|
|
1739
1763
|
"source": "workflow-call-input"
|
|
@@ -1848,7 +1872,7 @@
|
|
|
1848
1872
|
"controller-receipt"
|
|
1849
1873
|
]
|
|
1850
1874
|
},
|
|
1851
|
-
"digest": "sha256:
|
|
1875
|
+
"digest": "sha256:2bae7310eb27f48a3afc6b7f993872d6b6121cf3f67ad4d6e2da35b254c4d047"
|
|
1852
1876
|
},
|
|
1853
1877
|
{
|
|
1854
1878
|
"schemaVersion": 1,
|
|
@@ -2024,5 +2048,5 @@
|
|
|
2024
2048
|
"digest": "sha256:b6f53563c0adc859bc586c05fce560a5094d7d9666438d63c5fd3e1fc4774555"
|
|
2025
2049
|
}
|
|
2026
2050
|
],
|
|
2027
|
-
"digest": "sha256:
|
|
2051
|
+
"digest": "sha256:4b5425a3111fa55d3c9244c4af08effa9045362680bd0833a30d718aba256600"
|
|
2028
2052
|
}
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"contract": "kungfu-buildchain-public-surface-reverse-audit",
|
|
22
22
|
"path": "dist/site/public-surface-audit.json",
|
|
23
23
|
"status": "passed",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "15df59be9425d65035f0e4a7f1225f77d16c7eb5329c9b6d741feac7ebc5dee8",
|
|
25
25
|
"summary": {
|
|
26
26
|
"cliCommandCount": 87,
|
|
27
27
|
"workflowCount": 52,
|
|
28
28
|
"actionCount": 5,
|
|
29
|
-
"sitePageCount":
|
|
29
|
+
"sitePageCount": 55,
|
|
30
30
|
"docCommandRefCount": 276,
|
|
31
31
|
"failureCount": 0
|
|
32
32
|
},
|
|
@@ -228,12 +228,12 @@
|
|
|
228
228
|
"contract": "kungfu-buildchain-public-surface-reverse-audit",
|
|
229
229
|
"path": "dist/site/public-surface-audit.json",
|
|
230
230
|
"status": "passed",
|
|
231
|
-
"sha256": "
|
|
231
|
+
"sha256": "15df59be9425d65035f0e4a7f1225f77d16c7eb5329c9b6d741feac7ebc5dee8",
|
|
232
232
|
"summary": {
|
|
233
233
|
"cliCommandCount": 87,
|
|
234
234
|
"workflowCount": 52,
|
|
235
235
|
"actionCount": 5,
|
|
236
|
-
"sitePageCount":
|
|
236
|
+
"sitePageCount": 55,
|
|
237
237
|
"docCommandRefCount": 276,
|
|
238
238
|
"failureCount": 0
|
|
239
239
|
},
|
|
@@ -1425,6 +1425,18 @@
|
|
|
1425
1425
|
"public": true,
|
|
1426
1426
|
"packageExport": "./release-propagation"
|
|
1427
1427
|
},
|
|
1428
|
+
{
|
|
1429
|
+
"id": "export:./release-activation-transaction",
|
|
1430
|
+
"name": "@kungfu-tech/buildchain/release-activation-transaction",
|
|
1431
|
+
"kind": "package-export",
|
|
1432
|
+
"sourcePath": "packages/core/release-activation-transaction.js",
|
|
1433
|
+
"evidencePath": "packages/core/release-activation-transaction.js",
|
|
1434
|
+
"availability": "shipped",
|
|
1435
|
+
"visibility": "public",
|
|
1436
|
+
"participantFacing": true,
|
|
1437
|
+
"public": true,
|
|
1438
|
+
"packageExport": "./release-activation-transaction"
|
|
1439
|
+
},
|
|
1428
1440
|
{
|
|
1429
1441
|
"id": "export:./surface-manifest",
|
|
1430
1442
|
"name": "@kungfu-tech/buildchain/surface-manifest",
|
|
@@ -2933,7 +2945,7 @@
|
|
|
2933
2945
|
"visibility": "public",
|
|
2934
2946
|
"participantFacing": true,
|
|
2935
2947
|
"public": true,
|
|
2936
|
-
"inputCount":
|
|
2948
|
+
"inputCount": 83,
|
|
2937
2949
|
"inputs": [
|
|
2938
2950
|
"allow-repository",
|
|
2939
2951
|
"artifact-name",
|
|
@@ -2991,10 +3003,15 @@
|
|
|
2991
3003
|
"publish-rematerialize-on-resume",
|
|
2992
3004
|
"publish-required-artifacts-json",
|
|
2993
3005
|
"publish-target",
|
|
3006
|
+
"publish-transaction-override",
|
|
3007
|
+
"release-activation-command",
|
|
3008
|
+
"release-activation-receipt-set-path",
|
|
2994
3009
|
"release-candidate-workflow-file",
|
|
2995
3010
|
"release-candidate-workflow-name",
|
|
2996
3011
|
"release-passport",
|
|
2997
3012
|
"release-passport-buildchain-self-kfd",
|
|
3013
|
+
"release-passport-evidence-command",
|
|
3014
|
+
"release-passport-evidence-path",
|
|
2998
3015
|
"release-passport-impact-json",
|
|
2999
3016
|
"release-passport-invariant-passport-command",
|
|
3000
3017
|
"release-passport-invariant-passport-jsons",
|
|
@@ -3243,7 +3260,7 @@
|
|
|
3243
3260
|
"visibility": "public",
|
|
3244
3261
|
"participantFacing": true,
|
|
3245
3262
|
"public": true,
|
|
3246
|
-
"inputCount":
|
|
3263
|
+
"inputCount": 41,
|
|
3247
3264
|
"inputs": [
|
|
3248
3265
|
"artifact-path",
|
|
3249
3266
|
"aws-region",
|
|
@@ -3273,6 +3290,7 @@
|
|
|
3273
3290
|
"production-release-on-main",
|
|
3274
3291
|
"production-release-pr-mode",
|
|
3275
3292
|
"production-release-pr-token",
|
|
3293
|
+
"production-source-sha",
|
|
3276
3294
|
"publication-admission-json",
|
|
3277
3295
|
"publication-control-plane-audit-json",
|
|
3278
3296
|
"publication-expected-json",
|
|
@@ -3919,7 +3937,7 @@
|
|
|
3919
3937
|
"visibility": "public",
|
|
3920
3938
|
"participantFacing": true,
|
|
3921
3939
|
"public": true,
|
|
3922
|
-
"inputCount":
|
|
3940
|
+
"inputCount": 75,
|
|
3923
3941
|
"inputs": [
|
|
3924
3942
|
"allow-repository",
|
|
3925
3943
|
"artifact-name",
|
|
@@ -3969,10 +3987,15 @@
|
|
|
3969
3987
|
"publish-rematerialize-on-resume",
|
|
3970
3988
|
"publish-required-artifacts-json",
|
|
3971
3989
|
"publish-target",
|
|
3990
|
+
"publish-transaction-override",
|
|
3991
|
+
"release-activation-command",
|
|
3992
|
+
"release-activation-receipt-set-path",
|
|
3972
3993
|
"release-candidate-workflow-file",
|
|
3973
3994
|
"release-candidate-workflow-name",
|
|
3974
3995
|
"release-passport",
|
|
3975
3996
|
"release-passport-buildchain-self-kfd",
|
|
3997
|
+
"release-passport-evidence-command",
|
|
3998
|
+
"release-passport-evidence-path",
|
|
3976
3999
|
"release-passport-impact-json",
|
|
3977
4000
|
"release-passport-invariant-passport-command",
|
|
3978
4001
|
"release-passport-invariant-passport-jsons",
|
|
@@ -4864,6 +4887,18 @@
|
|
|
4864
4887
|
"public": true,
|
|
4865
4888
|
"reverseAuditSource": "dist/site/page-registry.json"
|
|
4866
4889
|
},
|
|
4890
|
+
{
|
|
4891
|
+
"id": "site-page:manual:release-activation-transaction",
|
|
4892
|
+
"name": "site-page:manual:release-activation-transaction",
|
|
4893
|
+
"kind": "site-page",
|
|
4894
|
+
"sourcePath": "dist/site/page-registry.json",
|
|
4895
|
+
"evidencePath": "dist/site/page-registry.json",
|
|
4896
|
+
"availability": "shipped",
|
|
4897
|
+
"visibility": "public",
|
|
4898
|
+
"participantFacing": true,
|
|
4899
|
+
"public": true,
|
|
4900
|
+
"reverseAuditSource": "dist/site/page-registry.json"
|
|
4901
|
+
},
|
|
4867
4902
|
{
|
|
4868
4903
|
"id": "site-page:manual:release-candidate",
|
|
4869
4904
|
"name": "site-page:manual:release-candidate",
|
|
@@ -5170,6 +5205,6 @@
|
|
|
5170
5205
|
}
|
|
5171
5206
|
}
|
|
5172
5207
|
],
|
|
5173
|
-
"publicSurfaceCount":
|
|
5208
|
+
"publicSurfaceCount": 331
|
|
5174
5209
|
}
|
|
5175
5210
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"specifier": "@kungfu-tech/buildchain",
|
|
9
9
|
"export": ".",
|
|
10
10
|
"target": "./packages/core/index.js",
|
|
11
|
-
"digest": "sha256:
|
|
11
|
+
"digest": "sha256:7f1f3ce6c862e556dc73a0b3b7fe96b8c6772b96de3e677a77eed87c8a03047f",
|
|
12
12
|
"summary": "Root toolkit export for Buildchain's public Node API.",
|
|
13
13
|
"capabilityGroup": "api-cli-reference",
|
|
14
14
|
"audience": [
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"specifier": "@kungfu-tech/buildchain/core",
|
|
48
48
|
"export": "./core",
|
|
49
49
|
"target": "./packages/core/index.js",
|
|
50
|
-
"digest": "sha256:
|
|
50
|
+
"digest": "sha256:7f1f3ce6c862e556dc73a0b3b7fe96b8c6772b96de3e677a77eed87c8a03047f",
|
|
51
51
|
"summary": "Alias for the root public toolkit export.",
|
|
52
52
|
"capabilityGroup": "api-cli-reference",
|
|
53
53
|
"audience": [
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"specifier": "@kungfu-tech/buildchain/controller-evidence",
|
|
126
126
|
"export": "./controller-evidence",
|
|
127
127
|
"target": "./packages/core/controller-evidence.js",
|
|
128
|
-
"digest": "sha256:
|
|
128
|
+
"digest": "sha256:6169f625ab2bd8a21ddcbb1c72529df481a4eeadd2b37a4c5e8e0dee9668a435",
|
|
129
129
|
"summary": "Project-independent controller descriptors, source/runtime-bound plans, receipts, aggregates, and validation APIs.",
|
|
130
130
|
"capabilityGroup": "reusable-build",
|
|
131
131
|
"audience": [
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"specifier": "@kungfu-tech/buildchain/publication-authority",
|
|
308
308
|
"export": "./publication-authority",
|
|
309
309
|
"target": "./packages/core/publication-authority.js",
|
|
310
|
-
"digest": "sha256:
|
|
310
|
+
"digest": "sha256:10a33dae7768c9fced757c7d75c673adbd016b149064dce39d9f42df5c84073e",
|
|
311
311
|
"summary": "Sealed publication authority registry, runner provenance, control-plane audit, admission, and independent verification APIs.",
|
|
312
312
|
"capabilityGroup": "release-passport-trust",
|
|
313
313
|
"audience": [
|
|
@@ -433,6 +433,19 @@
|
|
|
433
433
|
],
|
|
434
434
|
"maturity": "stable"
|
|
435
435
|
},
|
|
436
|
+
{
|
|
437
|
+
"specifier": "@kungfu-tech/buildchain/release-activation-transaction",
|
|
438
|
+
"export": "./release-activation-transaction",
|
|
439
|
+
"target": "./packages/core/release-activation-transaction.js",
|
|
440
|
+
"digest": "sha256:0f33d276a3089dd314c76712adc42d60ef61793f52de32092e03d43be6922756",
|
|
441
|
+
"summary": "Ordered cross-repository activation, exact receipt-set binding, retry, abort, rollback, and shadow-rehearsal APIs.",
|
|
442
|
+
"capabilityGroup": "release-passport-trust",
|
|
443
|
+
"audience": [
|
|
444
|
+
"developer",
|
|
445
|
+
"agent"
|
|
446
|
+
],
|
|
447
|
+
"maturity": "stable"
|
|
448
|
+
},
|
|
436
449
|
{
|
|
437
450
|
"specifier": "@kungfu-tech/buildchain/surface-manifest",
|
|
438
451
|
"export": "./surface-manifest",
|