@kungfu-tech/buildchain 2.14.3 → 2.14.4-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.
- package/actions/promote-buildchain-ref/README.md +8 -0
- package/bin/buildchain.mjs +4 -0
- package/dist/site/buildchain-contract.json +39 -25
- package/dist/site/buildchain-site.json +26 -26
- package/dist/site/capability-registry.json +1 -1
- package/dist/site/controller-registry.json +28 -4
- package/dist/site/kfd-claims.json +24 -6
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +6 -6
- package/dist/site/node-api-registry.json +20 -7
- package/dist/site/page-registry.json +16 -16
- package/dist/site/public-surface-audit.json +11 -5
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-passport-check-manifest.json +1 -0
- package/dist/site/release-provenance.json +1 -0
- package/dist/site/schemas/release-passport-v1.schema.json +3 -0
- package/dist/site/site-manifest.json +10 -10
- package/dist/site/workflow-registry.json +9 -3
- package/docs/MAP.md +1 -0
- package/docs/cli.md +7 -0
- package/docs/lifecycle-protocol.md +14 -0
- package/docs/release-governance.md +10 -1
- package/docs/release-passport.md +21 -0
- package/docs/versioning.md +1 -0
- package/package.json +2 -1
- package/packages/core/README.md +2 -0
- package/packages/core/anchored-version-material.js +281 -0
- package/packages/core/buildchain-config.js +68 -0
- package/packages/core/buildchain-contract.js +4 -0
- package/packages/core/controller-evidence.js +30 -4
- package/packages/core/index.js +6 -0
- package/packages/core/release-passport-contract.js +2 -0
- package/packages/core/release-passport.js +186 -1
- package/scripts/anchored-version-material.mjs +42 -0
- package/scripts/check-inventory.mjs +6 -0
- package/scripts/generate-site-bundle.mjs +1 -0
- package/scripts/stable-candidate-patrol.mjs +55 -6
|
@@ -735,6 +735,8 @@
|
|
|
735
735
|
"release-passport",
|
|
736
736
|
"release-passport-buildchain-self-kfd",
|
|
737
737
|
"release-passport-impact-json",
|
|
738
|
+
"release-passport-invariant-passport-command",
|
|
739
|
+
"release-passport-invariant-passport-jsons",
|
|
738
740
|
"release-passport-kfd-1-witness-jsons",
|
|
739
741
|
"release-passport-kfd-2-claim-jsons",
|
|
740
742
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -750,7 +752,7 @@
|
|
|
750
752
|
"target-sha",
|
|
751
753
|
"trusted-publishing"
|
|
752
754
|
],
|
|
753
|
-
"inputCount":
|
|
755
|
+
"inputCount": 72,
|
|
754
756
|
"secrets": [
|
|
755
757
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
756
758
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1777,6 +1779,8 @@
|
|
|
1777
1779
|
"release-passport",
|
|
1778
1780
|
"release-passport-buildchain-self-kfd",
|
|
1779
1781
|
"release-passport-impact-json",
|
|
1782
|
+
"release-passport-invariant-passport-command",
|
|
1783
|
+
"release-passport-invariant-passport-jsons",
|
|
1780
1784
|
"release-passport-kfd-1-witness-jsons",
|
|
1781
1785
|
"release-passport-kfd-2-claim-jsons",
|
|
1782
1786
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -1792,7 +1796,7 @@
|
|
|
1792
1796
|
"target-sha",
|
|
1793
1797
|
"trusted-publishing"
|
|
1794
1798
|
],
|
|
1795
|
-
"inputCount":
|
|
1799
|
+
"inputCount": 64,
|
|
1796
1800
|
"secrets": [
|
|
1797
1801
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
1798
1802
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -2017,6 +2021,8 @@
|
|
|
2017
2021
|
"release-passport-build-summary-path",
|
|
2018
2022
|
"release-passport-buildchain-self-kfd",
|
|
2019
2023
|
"release-passport-impact-json",
|
|
2024
|
+
"release-passport-invariant-passport-command",
|
|
2025
|
+
"release-passport-invariant-passport-jsons",
|
|
2020
2026
|
"release-passport-kfd-1-witness-jsons",
|
|
2021
2027
|
"release-passport-kfd-2-claim-jsons",
|
|
2022
2028
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -2038,7 +2044,7 @@
|
|
|
2038
2044
|
"transaction-state-path",
|
|
2039
2045
|
"verification-command"
|
|
2040
2046
|
],
|
|
2041
|
-
"inputCount":
|
|
2047
|
+
"inputCount": 62
|
|
2042
2048
|
},
|
|
2043
2049
|
{
|
|
2044
2050
|
"id": "report-buildchain-issue",
|
|
@@ -3629,8 +3635,8 @@
|
|
|
3629
3635
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
3630
3636
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
3631
3637
|
"cliRegistryDigest": "b469949f77ed7777f23fe68c54daf6d2c20d3afc97f3bbd5a178a91202a068d0",
|
|
3632
|
-
"workflowRegistryDigest": "
|
|
3633
|
-
"pageRegistryDigest": "
|
|
3638
|
+
"workflowRegistryDigest": "ea8ba62e4fa1e3399df992e75e907ba14c42b1fc9b936e6d93cee04bb1a1c257",
|
|
3639
|
+
"pageRegistryDigest": "8cad634cb5fe3fac32df1724024df69478bbf5aaf47b5d7f791f1d6ce1e369f8"
|
|
3634
3640
|
},
|
|
3635
3641
|
"comparison": {
|
|
3636
3642
|
"missingCliRegistry": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-20T14:30:08.216Z",
|
|
5
|
+
"publishedAt": "2026-07-20T14:30:08.216Z",
|
|
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": "24d614a941bc9b9c452bf50ab8c1efd08770c2a5",
|
|
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": "2.14.
|
|
35
|
+
"version": "2.14.4-alpha.1",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"./core": "./packages/core/index.js",
|
|
15
15
|
"./artifact-passport": "./packages/core/artifact-passport.js",
|
|
16
16
|
"./artifact-verification-envelope": "./packages/core/artifact-verification-envelope.js",
|
|
17
|
+
"./anchored-version-material": "./packages/core/anchored-version-material.js",
|
|
17
18
|
"./buildchain-contract": "./packages/core/buildchain-contract.js",
|
|
18
19
|
"./controller-evidence": "./packages/core/controller-evidence.js",
|
|
19
20
|
"./diagnostics": "./packages/core/diagnostics.js",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-20T14:30:08.216Z",
|
|
5
|
+
"publishedAt": "2026-07-20T14:30:08.216Z",
|
|
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": "24d614a941bc9b9c452bf50ab8c1efd08770c2a5",
|
|
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.4-alpha.1",
|
|
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:fa818a541ee2d70a0cc08caec85bf4c1eb20ff5118be0cc2149062fed50f4620"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": "install",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"path": "docs/release-passport.md",
|
|
70
70
|
"plane": "verify",
|
|
71
71
|
"exists": true,
|
|
72
|
-
"digest": "sha256:
|
|
72
|
+
"digest": "sha256:2dec5e7cd0050815d17c30dbbfd2f5c3c987f55a4558514118538d81a9c562b0"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"id": "controller-evidence",
|
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"path": "docs/cli.md",
|
|
190
190
|
"plane": "use",
|
|
191
191
|
"exists": true,
|
|
192
|
-
"digest": "sha256:
|
|
192
|
+
"digest": "sha256:733a43df58e6fa643ef529d8736fbdbea053b5b58e5fbe445b595ea1e25861f6"
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
"id": "build-facts",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"path": "docs/lifecycle-protocol.md",
|
|
214
214
|
"plane": "use",
|
|
215
215
|
"exists": true,
|
|
216
|
-
"digest": "sha256:
|
|
216
|
+
"digest": "sha256:71552baae51146fa790d40af02d5d5b3a1a4aa0d9764af09907bb05d3360b0cc"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"id": "reusable-build-surface",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"path": "docs/release-governance.md",
|
|
238
238
|
"plane": "why",
|
|
239
239
|
"exists": true,
|
|
240
|
-
"digest": "sha256:
|
|
240
|
+
"digest": "sha256:cea8921c430b208ec127af1800b58be21812ea07066998eb940ea1ac53738f2f"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"id": "release-flow",
|
|
@@ -261,7 +261,7 @@
|
|
|
261
261
|
"path": "docs/versioning.md",
|
|
262
262
|
"plane": "why",
|
|
263
263
|
"exists": true,
|
|
264
|
-
"digest": "sha256:
|
|
264
|
+
"digest": "sha256:10ec868fcb3fd58ae35b54ecd8ccd9a4556516f460c262f0c1ee41c81bdbc264"
|
|
265
265
|
},
|
|
266
266
|
{
|
|
267
267
|
"id": "web-surface-deployments",
|
|
@@ -324,6 +324,8 @@
|
|
|
324
324
|
"release-passport",
|
|
325
325
|
"release-passport-buildchain-self-kfd",
|
|
326
326
|
"release-passport-impact-json",
|
|
327
|
+
"release-passport-invariant-passport-command",
|
|
328
|
+
"release-passport-invariant-passport-jsons",
|
|
327
329
|
"release-passport-kfd-1-witness-jsons",
|
|
328
330
|
"release-passport-kfd-2-claim-jsons",
|
|
329
331
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -339,7 +341,7 @@
|
|
|
339
341
|
"target-sha",
|
|
340
342
|
"trusted-publishing"
|
|
341
343
|
],
|
|
342
|
-
"inputCount":
|
|
344
|
+
"inputCount": 72,
|
|
343
345
|
"secrets": [
|
|
344
346
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
345
347
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1471,6 +1473,8 @@
|
|
|
1471
1473
|
"release-passport",
|
|
1472
1474
|
"release-passport-buildchain-self-kfd",
|
|
1473
1475
|
"release-passport-impact-json",
|
|
1476
|
+
"release-passport-invariant-passport-command",
|
|
1477
|
+
"release-passport-invariant-passport-jsons",
|
|
1474
1478
|
"release-passport-kfd-1-witness-jsons",
|
|
1475
1479
|
"release-passport-kfd-2-claim-jsons",
|
|
1476
1480
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -1486,7 +1490,7 @@
|
|
|
1486
1490
|
"target-sha",
|
|
1487
1491
|
"trusted-publishing"
|
|
1488
1492
|
],
|
|
1489
|
-
"inputCount":
|
|
1493
|
+
"inputCount": 64,
|
|
1490
1494
|
"secrets": [
|
|
1491
1495
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
1492
1496
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1739,6 +1743,8 @@
|
|
|
1739
1743
|
"release-passport-build-summary-path",
|
|
1740
1744
|
"release-passport-buildchain-self-kfd",
|
|
1741
1745
|
"release-passport-impact-json",
|
|
1746
|
+
"release-passport-invariant-passport-command",
|
|
1747
|
+
"release-passport-invariant-passport-jsons",
|
|
1742
1748
|
"release-passport-kfd-1-witness-jsons",
|
|
1743
1749
|
"release-passport-kfd-2-claim-jsons",
|
|
1744
1750
|
"release-passport-kfd-3-artifact-verify-command",
|
|
@@ -1760,7 +1766,7 @@
|
|
|
1760
1766
|
"transaction-state-path",
|
|
1761
1767
|
"verification-command"
|
|
1762
1768
|
],
|
|
1763
|
-
"inputCount":
|
|
1769
|
+
"inputCount": 62,
|
|
1764
1770
|
"capabilityGroup": "release-passport-trust",
|
|
1765
1771
|
"status": "active"
|
|
1766
1772
|
},
|
package/docs/MAP.md
CHANGED
|
@@ -41,6 +41,7 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
|
|
|
41
41
|
| --- | --- | --- |
|
|
42
42
|
| Capability-grouped KFD navigation | `dist/site/capability-registry.json`, `dist/site/page-registry.json`, `dist/site/manual-registry.json`, `dist/site/cli-registry.json`, `dist/site/node-api-registry.json` | this map, [`site-bundle-contract.md`](site-bundle-contract.md), [`kfd-support.md`](kfd-support.md) |
|
|
43
43
|
| KFD-1 / KFD-2 / KFD-3 release-passport gates | `dist/site/kfd-claims.json`, `dist/site/buildchain-contract.json`, `dist/site/artifact-schemas.json` | [`release-passport.md`](release-passport.md) |
|
|
44
|
+
| Product invariant Passport release gate | `buildchain.release.json#invariantPassports`, `dist/site/buildchain-contract.json` | [`release-passport.md`](release-passport.md) |
|
|
44
45
|
| KFD-3 public surface reverse audit | `dist/site/public-surface-audit.json`, `dist/site/cli-registry.json`, `dist/site/workflow-registry.json`, `dist/site/page-registry.json` | [`cli.md`](cli.md), [`site-bundle-contract.md`](site-bundle-contract.md) |
|
|
45
46
|
| KFD-1 / KFD-2 / KFD-3 first-class CLI and Node API | `.buildchain/kfd/kfd-3/surfaces.json`, `dist/site/kfd-claims.json`, `buildchain.release.json`, KFD schemas from `@kungfu-tech/kfd` | [`kfd-support.md`](kfd-support.md), [`cli.md`](cli.md#commands) |
|
|
46
47
|
| Floating `@v2` drift detection and compatibility issues | `dist/site/buildchain-contract.json` | [`reusable-build-surface.md`](reusable-build-surface.md#floating-ref-contract-lock) |
|
package/docs/cli.md
CHANGED
|
@@ -663,6 +663,13 @@ into release evidence. A package cannot claim KFD-3 collaboration-interface
|
|
|
663
663
|
support merely because the docs mention it; the release passport must show the
|
|
664
664
|
frozen declaration, the artifact-side witness digest, and a passing closure
|
|
665
665
|
comparison.
|
|
666
|
+
|
|
667
|
+
`--invariant-passport-json` attaches a product-owned invariant Passport to the
|
|
668
|
+
release gate and may be repeated. `--invariant-passport-cmd` runs a product
|
|
669
|
+
command that emits one Passport JSON document. Buildchain verifies the
|
|
670
|
+
Passport root, exact clean source identity, `verified` verdict, complete
|
|
671
|
+
platform coverage, and residual-risk shape; it does not redefine the product's
|
|
672
|
+
invariant semantics. Declared invariant Passport input is fail-closed.
|
|
666
673
|
For the KFD repository itself, the witness can declare docs, schemas, standards
|
|
667
674
|
metadata, package exports, and site-consumption contracts as grouped public
|
|
668
675
|
surfaces; the artifact witness must expose the same enumerable package/site
|
|
@@ -96,6 +96,9 @@ required = true
|
|
|
96
96
|
strategy = "anchored"
|
|
97
97
|
next = "manual"
|
|
98
98
|
manifest = "libnode.release.json"
|
|
99
|
+
derived_files = [
|
|
100
|
+
"dist/version-witness.json",
|
|
101
|
+
]
|
|
99
102
|
|
|
100
103
|
[[version.files]]
|
|
101
104
|
type = "json"
|
|
@@ -109,6 +112,17 @@ With `strategy = "anchored"` and `next = "manual"`:
|
|
|
109
112
|
does not rewrite those files to the Buildchain release tag.
|
|
110
113
|
- `lifecycle.verify` is the project-owned truth gate. It should compare the
|
|
111
114
|
package version, anchor manifest, and upstream source/submodule state.
|
|
115
|
+
- `version.derived_files` can declare committed witnesses or generated metadata
|
|
116
|
+
whose bytes are derived by `lifecycle.version-state`. The field is valid only
|
|
117
|
+
for anchored/manual projects that declare both `lifecycle.version-state` and
|
|
118
|
+
`lifecycle.verify`.
|
|
119
|
+
- release-candidate builds rerun derivation and verification before heavy
|
|
120
|
+
platform builds, require the committed tree to remain unchanged, and bind the
|
|
121
|
+
alpha/release tree identities plus declared file digests into controller and
|
|
122
|
+
release-passport evidence.
|
|
123
|
+
- release promotion permits differences from the tested alpha tree only in
|
|
124
|
+
`version.files`, the anchor manifest, and declared `version.derived_files`;
|
|
125
|
+
any other changed path fails closed before publication.
|
|
112
126
|
- release promotion still creates the exact/floating production refs for the
|
|
113
127
|
current line;
|
|
114
128
|
- release promotion does not auto-create the next alpha branch or tag;
|
|
@@ -631,11 +631,20 @@ declare version-state files and lifecycle commands without pretending every
|
|
|
631
631
|
project is a Node workspace. Supported version files include JSON, TOML, and
|
|
632
632
|
regex-based files such as `CMakeLists.txt` or `conanfile.py`.
|
|
633
633
|
|
|
634
|
-
The promotion action
|
|
634
|
+
The promotion action consumes `version.files`, optional anchored/manual
|
|
635
|
+
`version.derived_files`, and `lifecycle.verify`.
|
|
635
636
|
The verify stage runs after generated version-state changes are applied locally
|
|
636
637
|
and before any release refs move. If `verification-command` is passed directly
|
|
637
638
|
to the action, that explicit command overrides `lifecycle.verify`.
|
|
638
639
|
|
|
640
|
+
Anchored/manual repositories may use `version.derived_files` for committed
|
|
641
|
+
version witnesses that are regenerated by `lifecycle.version-state`. The
|
|
642
|
+
release-candidate build verifies those witnesses before heavy builds and records
|
|
643
|
+
their digests with the exact alpha and release tree identities. Promotion then
|
|
644
|
+
accepts only declared version files, the anchor manifest, and those derived
|
|
645
|
+
files as differences from the tested alpha tree; release passports preserve the
|
|
646
|
+
same material binding.
|
|
647
|
+
|
|
639
648
|
Protected release-line branches keep their normal human review gate. Managed
|
|
640
649
|
`dev/vN/vN.M`, `alpha/vN/vN.M`, and `release/vN/vN.M` branches are configured
|
|
641
650
|
with one required approving review, required GitHub Actions checks, administrator
|
package/docs/release-passport.md
CHANGED
|
@@ -86,6 +86,11 @@ Additive passport sections:
|
|
|
86
86
|
back to the evidence file that proves its digest. Registry artifacts retain
|
|
87
87
|
optional built/reused action, content and current-release coordinates,
|
|
88
88
|
platform/contract/parent metadata, and fail-closed verification evidence.
|
|
89
|
+
- `invariantPassports`: product-owned invariant verification results admitted
|
|
90
|
+
by Buildchain. Each entry binds the product contract and registry roots,
|
|
91
|
+
semantic Passport root, exact clean source revision, complete platform
|
|
92
|
+
coverage, verdict, and residual risk. Buildchain owns release admission, not
|
|
93
|
+
the meaning of the product invariants.
|
|
89
94
|
|
|
90
95
|
Buildchain's own binary lane also publishes observability artifacts generated by
|
|
91
96
|
the Buildchain logging API and CLI:
|
|
@@ -138,9 +143,25 @@ buildchain collect github-release \
|
|
|
138
143
|
--dist-tag-evidence-json .buildchain/release-evidence/v2.2.0/dist-tag-evidence.json \
|
|
139
144
|
--kfd-1-witness-json .buildchain/kfd/kfd-1/contract-world.witness.json \
|
|
140
145
|
--kfd-2-claim-json .buildchain/kfd/kfd-2/release-claims.json \
|
|
146
|
+
--invariant-passport-json product/release/qualification/invariant-passport.json \
|
|
141
147
|
--output-dir .buildchain/release-passport
|
|
142
148
|
```
|
|
143
149
|
|
|
150
|
+
For a promotion workflow, consumers can instead use
|
|
151
|
+
`release-passport-invariant-passport-command`. The command must emit exactly one
|
|
152
|
+
canonical JSON object on stdout; for example:
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
release-passport-invariant-passport-command: >-
|
|
156
|
+
node scripts/kungfu-invariant.mjs --collect-evidence .
|
|
157
|
+
--passport product/release/qualification/invariant-passport.json --json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Supplying the input makes the invariant gate mandatory. Command failure,
|
|
161
|
+
missing output, semantic-root drift, a non-`verified` verdict, incomplete
|
|
162
|
+
coverage, dirty source state, or a source revision unrelated to the release
|
|
163
|
+
fails closed before release publication.
|
|
164
|
+
|
|
144
165
|
`packageSet` records the ordered main-plus-platform package set.
|
|
145
166
|
`publish.packages[]` summarizes each published npm package with its version,
|
|
146
167
|
dist-tag, registry, role, platform, and digest, so agents do not need to stitch
|
package/docs/versioning.md
CHANGED
|
@@ -61,6 +61,7 @@ repository changes are patch".
|
|
|
61
61
|
|
|
62
62
|
| Date | Action | Line | Faces | Class | Rationale | PR |
|
|
63
63
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
64
|
+
| 2026-07-20 | extend-minor | `v2.14` | anchored-derived-version-material, build-controller-evidence, release-passport, package-subpaths, release-propagation-controller | additive | Anchored/manual consumers can declare derived version witnesses that Buildchain regenerates and verifies before heavy builds, binds to exact alpha/release trees and passports, and admits during protected promotion; propagation receipts now model their existing optional consumer stages. | |
|
|
64
65
|
| 2026-07-17 | extend-minor | `v2.14` | merge-queue-config, release-line-governance-inheritance | additive | Buildchain config can explicitly enable, inherit, or disable exact dev-channel merge queues, and release-line bootstrap reconciles the declared or inherited policy before moving the repository default branch. | |
|
|
65
66
|
| 2026-07-16 | open-minor | `v2.14` | dev-merge-queue-governance | additive | The public CLI adds a dry-run-first, idempotent merge-queue governance command that verifies required workflow event compatibility before applying an exact dev-channel ruleset and removing the strict up-to-date race. | |
|
|
66
67
|
| 2026-07-15 | open-minor | `v2.13` | artifact-verification-envelope, package-subpaths | additive | The public envelope seals exact artifact, provenance, identity, lifecycle, revocation, and existing KFD assessment roots into one consumer-ready KFX admission input, with a dedicated Node API export and fail-closed verifier. | |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "2.14.
|
|
3
|
+
"version": "2.14.4-alpha.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
|
|
6
6
|
"repository": "https://github.com/kungfu-systems/buildchain",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"./core": "./packages/core/index.js",
|
|
18
18
|
"./artifact-passport": "./packages/core/artifact-passport.js",
|
|
19
19
|
"./artifact-verification-envelope": "./packages/core/artifact-verification-envelope.js",
|
|
20
|
+
"./anchored-version-material": "./packages/core/anchored-version-material.js",
|
|
20
21
|
"./buildchain-contract": "./packages/core/buildchain-contract.js",
|
|
21
22
|
"./controller-evidence": "./packages/core/controller-evidence.js",
|
|
22
23
|
"./diagnostics": "./packages/core/diagnostics.js",
|
package/packages/core/README.md
CHANGED
|
@@ -16,6 +16,8 @@ Current shared surfaces:
|
|
|
16
16
|
`@kungfu-tech/buildchain/build-facts`;
|
|
17
17
|
- release passport creation and verification through
|
|
18
18
|
`@kungfu-tech/buildchain/release-passport`.
|
|
19
|
+
- anchored/manual derived witness preflight and exact-tree evidence through
|
|
20
|
+
`@kungfu-tech/buildchain/anchored-version-material`.
|
|
19
21
|
- sealed exact-root and KFD assessment inputs for KFX admission through
|
|
20
22
|
`@kungfu-tech/buildchain/artifact-verification-envelope`.
|
|
21
23
|
- managed KFD / Release Passport badge bundle facts and README marker blocks
|