@kungfu-tech/buildchain 4.0.2-alpha.28 → 4.0.2-alpha.29
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/architecture/agent-change-map.md +1 -0
- package/architecture/maintainability-debt.json +1 -0
- package/dist/site/buildchain-contract.json +2 -2
- package/dist/site/buildchain-site.json +4 -4
- package/dist/site/kfd-claims.json +2 -2
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/public-surface-audit.json +1 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +4 -4
- package/dist/site/workflow-registry.json +4 -4
- package/package.json +1 -1
- package/scripts/release-candidate-resolver.mjs +8 -8
|
@@ -175,6 +175,7 @@ Safe change route: Reduce one owned responsibility behind the stable facade, run
|
|
|
175
175
|
- `actions/promote-buildchain-ref/lib.js`
|
|
176
176
|
- `actions/v4-release-candidate-promote/index.js`
|
|
177
177
|
- `actions/v4-release-candidate-promote/product-provider.js`
|
|
178
|
+
- `tests/v4-release-candidate-promote.test.mjs`
|
|
178
179
|
- `scripts/check-inventory.mjs`
|
|
179
180
|
- `tests/promote-buildchain-ref.test.mjs`
|
|
180
181
|
- `tests/promotion-channel-router.test.mjs`
|
|
@@ -3118,6 +3118,7 @@
|
|
|
3118
3118
|
"actions/promote-buildchain-ref/lib.js",
|
|
3119
3119
|
"actions/v4-release-candidate-promote/index.js",
|
|
3120
3120
|
"actions/v4-release-candidate-promote/product-provider.js",
|
|
3121
|
+
"tests/v4-release-candidate-promote.test.mjs",
|
|
3121
3122
|
"scripts/check-inventory.mjs",
|
|
3122
3123
|
"tests/promote-buildchain-ref.test.mjs",
|
|
3123
3124
|
"tests/promotion-channel-router.test.mjs",
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "4.0.2-alpha.
|
|
7
|
+
"version": "4.0.2-alpha.29",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v4",
|
|
@@ -5444,5 +5444,5 @@
|
|
|
5444
5444
|
"compatibilityFactCutRoot": "sha256:f61b975d4a96c921cc4bd37fb3ed9a0596b47004fe34dc7219979d697e3707f9",
|
|
5445
5445
|
"compatibilityProofRegistryRoot": "sha256:b7194b811e4d3af2df4390bc4d1731e16a86215bd64ee18cb630dd5492f4fb63",
|
|
5446
5446
|
"compatibilityDigest": "sha256:20411029d83211dff426fb6535a608902129844a5ccb4788db77d3f81becb839",
|
|
5447
|
-
"contractDigest": "sha256:
|
|
5447
|
+
"contractDigest": "sha256:201d1b48e3e3cf0c76ca5eef6d6ffb4910f7de3643611dc449d82d142d4070bd"
|
|
5448
5448
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-bundle",
|
|
4
|
-
"generatedAt": "2026-09-
|
|
5
|
-
"publishedAt": "2026-09-
|
|
4
|
+
"generatedAt": "2026-09-04T03:02:25.000Z",
|
|
5
|
+
"publishedAt": "2026-09-04T03:02:25.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": "
|
|
22
|
+
"sourceRevision": "3452a92adad2d00baabefdb1a047438e2a9d1fa6",
|
|
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": "4.0.2-alpha.
|
|
40
|
+
"version": "4.0.2-alpha.29",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"source": {
|
|
@@ -21,7 +21,7 @@
|
|
|
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": "016364bee9c2d291008b462c2706a997921aeb2b18b9a3ad2f25b301bcbc89df",
|
|
25
25
|
"summary": {
|
|
26
26
|
"cliCommandCount": 117,
|
|
27
27
|
"workflowCount": 74,
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
"contract": "kungfu-buildchain-public-surface-reverse-audit",
|
|
247
247
|
"path": "dist/site/public-surface-audit.json",
|
|
248
248
|
"status": "passed",
|
|
249
|
-
"sha256": "
|
|
249
|
+
"sha256": "016364bee9c2d291008b462c2706a997921aeb2b18b9a3ad2f25b301bcbc89df",
|
|
250
250
|
"summary": {
|
|
251
251
|
"cliCommandCount": 117,
|
|
252
252
|
"workflowCount": 74,
|
|
@@ -8905,7 +8905,7 @@
|
|
|
8905
8905
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
8906
8906
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
8907
8907
|
"cliRegistryDigest": "fbc23073bbae240489a2f826b2c26daadc58e704050c5f8df366509f5c5a1c3e",
|
|
8908
|
-
"workflowRegistryDigest": "
|
|
8908
|
+
"workflowRegistryDigest": "e6ac88f0161e613faf8a7aabe5ee9b8d6eb32e398be790e78f89affdc1c657f2",
|
|
8909
8909
|
"pageRegistryDigest": "ae0b1b9c7b883027cf53403221ff2fe2e41ad1aa4d16851d4550e89947d6d6d7"
|
|
8910
8910
|
},
|
|
8911
8911
|
"comparison": {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-09-
|
|
5
|
-
"publishedAt": "2026-09-
|
|
4
|
+
"generatedAt": "2026-09-04T03:02:25.000Z",
|
|
5
|
+
"publishedAt": "2026-09-04T03:02:25.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": "
|
|
22
|
+
"sourceRevision": "3452a92adad2d00baabefdb1a047438e2a9d1fa6",
|
|
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": "4.0.2-alpha.
|
|
35
|
+
"version": "4.0.2-alpha.29",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-09-
|
|
5
|
-
"publishedAt": "2026-09-
|
|
4
|
+
"generatedAt": "2026-09-04T03:02:25.000Z",
|
|
5
|
+
"publishedAt": "2026-09-04T03:02:25.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": "
|
|
22
|
+
"sourceRevision": "3452a92adad2d00baabefdb1a047438e2a9d1fa6",
|
|
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": "4.0.2-alpha.
|
|
40
|
+
"version": "4.0.2-alpha.29",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -1926,7 +1926,7 @@
|
|
|
1926
1926
|
"status": "preview",
|
|
1927
1927
|
"owner": "buildchain-workflows",
|
|
1928
1928
|
"maturity": "preview",
|
|
1929
|
-
"introducedVersion": "4.0.2-alpha.
|
|
1929
|
+
"introducedVersion": "4.0.2-alpha.29",
|
|
1930
1930
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1931
1931
|
"deprecationReplacement": "",
|
|
1932
1932
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -1947,7 +1947,7 @@
|
|
|
1947
1947
|
"status": "preview",
|
|
1948
1948
|
"owner": "buildchain-workflows",
|
|
1949
1949
|
"maturity": "preview",
|
|
1950
|
-
"introducedVersion": "4.0.2-alpha.
|
|
1950
|
+
"introducedVersion": "4.0.2-alpha.29",
|
|
1951
1951
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1952
1952
|
"deprecationReplacement": "",
|
|
1953
1953
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -1968,7 +1968,7 @@
|
|
|
1968
1968
|
"status": "preview",
|
|
1969
1969
|
"owner": "buildchain-workflows",
|
|
1970
1970
|
"maturity": "preview",
|
|
1971
|
-
"introducedVersion": "4.0.2-alpha.
|
|
1971
|
+
"introducedVersion": "4.0.2-alpha.29",
|
|
1972
1972
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1973
1973
|
"deprecationReplacement": "",
|
|
1974
1974
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -2019,7 +2019,7 @@
|
|
|
2019
2019
|
"status": "preview",
|
|
2020
2020
|
"owner": "buildchain-workflows",
|
|
2021
2021
|
"maturity": "preview",
|
|
2022
|
-
"introducedVersion": "4.0.2-alpha.
|
|
2022
|
+
"introducedVersion": "4.0.2-alpha.29",
|
|
2023
2023
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2024
2024
|
"deprecationReplacement": "",
|
|
2025
2025
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "4.0.2-alpha.
|
|
3
|
+
"version": "4.0.2-alpha.29",
|
|
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",
|
|
@@ -263,17 +263,17 @@ export function selectReleaseAssetPaths({
|
|
|
263
263
|
`release candidate payload patterns matched no files: ${splitPatterns(patterns).join(", ")}`,
|
|
264
264
|
);
|
|
265
265
|
}
|
|
266
|
-
const
|
|
266
|
+
const selectedByBasename = new Map();
|
|
267
|
+
const digest = (filePath) => digestFileSync(filePath, "sha256", "hex");
|
|
267
268
|
for (const filePath of files) {
|
|
268
269
|
const basename = path.basename(filePath);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
basenames.add(basename);
|
|
270
|
+
const existing = selectedByBasename.get(basename);
|
|
271
|
+
if (!existing) selectedByBasename.set(basename, filePath);
|
|
272
|
+
else if (digest(existing) !== digest(filePath))
|
|
273
|
+
throw new Error(`release candidate public asset basename is not unique: ${basename}`);
|
|
275
274
|
}
|
|
276
|
-
|
|
275
|
+
// Repeated paths are safe only when they name the same immutable bytes.
|
|
276
|
+
return [...selectedByBasename.values()];
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
function packageNameFromArtifactPath(filePath) {
|