@kungfu-tech/buildchain 4.0.1-alpha.13 → 4.0.1-alpha.15

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.
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "4.0.1-alpha.13",
7
+ "version": "4.0.1-alpha.15",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v4",
@@ -1646,7 +1646,7 @@
1646
1646
  "resume-from-candidate-run is fail-closed and uses a fresh caller event instead of rerunning a frozen startup graph"
1647
1647
  ],
1648
1648
  "breakingDigest": "sha256:9db8dd07152855d03ff30f9c571438593c689d3e8139fa45431d000f548242f5",
1649
- "auditDigest": "sha256:80b3532dc9b473dd2327c28dd68fb7ddfe01b6bdad14f22f7e9be435490f9088",
1649
+ "auditDigest": "sha256:bb201d3e6618be79c9d23616a90c714adea45c5d5a435710a4a9605305c5dcd6",
1650
1650
  "compatibleBreakingDigests": [
1651
1651
  "sha256:aa30f22e3af0a89841310bdbdc900844dd95a66974db173fa140a71bbd7e82c0"
1652
1652
  ],
@@ -2233,7 +2233,7 @@
2233
2233
  "agents can discover supported Node APIs without importing internal file paths"
2234
2234
  ],
2235
2235
  "breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
2236
- "auditDigest": "sha256:14c116689f571b197fad4632683335bc13718abd17276f3da0ffbf1e85a74483"
2236
+ "auditDigest": "sha256:05b63e8be4335a07da714e1687341bd99393043ff21eaefd0341d18cce842a5f"
2237
2237
  },
2238
2238
  {
2239
2239
  "contractVersion": 1,
@@ -5082,7 +5082,7 @@
5082
5082
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
5083
5083
  ],
5084
5084
  "breakingDigest": "sha256:015d8de793adbd4c539416be7d7512e18cc92097e629b0203fa06d2c183e98bd",
5085
- "auditDigest": "sha256:80b3532dc9b473dd2327c28dd68fb7ddfe01b6bdad14f22f7e9be435490f9088"
5085
+ "auditDigest": "sha256:bb201d3e6618be79c9d23616a90c714adea45c5d5a435710a4a9605305c5dcd6"
5086
5086
  },
5087
5087
  {
5088
5088
  "contractVersion": 1,
@@ -5308,5 +5308,5 @@
5308
5308
  "compatibilityFactCutRoot": "sha256:f61b975d4a96c921cc4bd37fb3ed9a0596b47004fe34dc7219979d697e3707f9",
5309
5309
  "compatibilityProofRegistryRoot": "sha256:b7194b811e4d3af2df4390bc4d1731e16a86215bd64ee18cb630dd5492f4fb63",
5310
5310
  "compatibilityDigest": "sha256:5de1c69386510b74b17eb70141b8bdd07063d62c504f91db5e84b67c6d4b64a2",
5311
- "contractDigest": "sha256:1fc757e5f254e5c4ac4ec42618e1d37e6bca0bd198daea064a3aafac3ec22db7"
5311
+ "contractDigest": "sha256:b66f1515711e9fb31edabca96e763765b02ecade19f4cf7c3f9d53aa6219965d"
5312
5312
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-bundle",
4
- "generatedAt": "2026-08-22T16:58:47.657Z",
5
- "publishedAt": "2026-08-22T16:58:47.657Z",
4
+ "generatedAt": "2026-08-22T19:35:13.606Z",
5
+ "publishedAt": "2026-08-22T19:35:13.606Z",
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": "6b0dd91b9223682fd78cde1c5fc72c6f015d3ffa",
22
+ "sourceRevision": "92fc648847bc80115980f843ff2659849dfb5a7f",
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.1-alpha.13",
40
+ "version": "4.0.1-alpha.15",
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": "0c844971e84222b309388310a73b54944e22aafdede868eb290191c2a5aa33a6",
24
+ "sha256": "e7028dd71518f465830aeb3283e412d917049436bee5dd6f6a8c14ff246d4806",
25
25
  "summary": {
26
26
  "cliCommandCount": 117,
27
27
  "workflowCount": 76,
@@ -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": "0c844971e84222b309388310a73b54944e22aafdede868eb290191c2a5aa33a6",
249
+ "sha256": "e7028dd71518f465830aeb3283e412d917049436bee5dd6f6a8c14ff246d4806",
250
250
  "summary": {
251
251
  "cliCommandCount": 117,
252
252
  "workflowCount": 76,
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "id": "kungfu-tech-buildchain",
6
6
  "name": "@kungfu-tech/buildchain",
7
- "version": "4.0.1-alpha.13",
7
+ "version": "4.0.1-alpha.15",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "source": {
@@ -29320,7 +29320,7 @@
29320
29320
  "specifier": "@kungfu-tech/buildchain/release-candidate-recovery",
29321
29321
  "export": "./release-candidate-recovery",
29322
29322
  "target": "./packages/core/release-candidate-recovery.js",
29323
- "digest": "sha256:c180e84ab83bc79ef5f4f558cfd6585f34c1505f4b4051ff161528fb7dec9177",
29323
+ "digest": "sha256:cfe4cf1b045c503ba55b98c491c26a878dd23aaec78e7562251f077937c43bd5",
29324
29324
  "summary": "Fail-closed verification and immutable receipts for reusing a successful sealed candidate run without rebuilding product payloads.",
29325
29325
  "capabilityGroup": "release-passport-trust",
29326
29326
  "audience": [
@@ -8846,7 +8846,7 @@
8846
8846
  "workflowRegistryPath": "dist/site/workflow-registry.json",
8847
8847
  "pageRegistryPath": "dist/site/page-registry.json",
8848
8848
  "cliRegistryDigest": "ea47a31ce7ef3577f23e22055ab7be7715c3af494bcef63f76b426f2883086aa",
8849
- "workflowRegistryDigest": "d91122275346cd15a4f3564b9400896962887c6db6125f6e740e3a84036e1449",
8849
+ "workflowRegistryDigest": "0f056c91de6a939081fe96d90a658b3aa8c40da6d0a5bd268c0655542cfe58b9",
8850
8850
  "pageRegistryDigest": "9d9d0590c8d3110fc5a95978852ee25337567f93980b2562cc1159f0d5219ade"
8851
8851
  },
8852
8852
  "comparison": {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-08-22T16:58:47.657Z",
5
- "publishedAt": "2026-08-22T16:58:47.657Z",
4
+ "generatedAt": "2026-08-22T19:35:13.606Z",
5
+ "publishedAt": "2026-08-22T19:35:13.606Z",
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": "6b0dd91b9223682fd78cde1c5fc72c6f015d3ffa",
22
+ "sourceRevision": "92fc648847bc80115980f843ff2659849dfb5a7f",
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.1-alpha.13",
35
+ "version": "4.0.1-alpha.15",
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-08-22T16:58:47.657Z",
5
- "publishedAt": "2026-08-22T16:58:47.657Z",
4
+ "generatedAt": "2026-08-22T19:35:13.606Z",
5
+ "publishedAt": "2026-08-22T19:35:13.606Z",
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": "6b0dd91b9223682fd78cde1c5fc72c6f015d3ffa",
22
+ "sourceRevision": "92fc648847bc80115980f843ff2659849dfb5a7f",
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.1-alpha.13",
40
+ "version": "4.0.1-alpha.15",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -2027,7 +2027,7 @@
2027
2027
  "status": "preview",
2028
2028
  "owner": "buildchain-workflows",
2029
2029
  "maturity": "preview",
2030
- "introducedVersion": "4.0.1-alpha.13",
2030
+ "introducedVersion": "4.0.1-alpha.15",
2031
2031
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2032
2032
  "deprecationReplacement": "",
2033
2033
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2048,7 +2048,7 @@
2048
2048
  "status": "preview",
2049
2049
  "owner": "buildchain-workflows",
2050
2050
  "maturity": "preview",
2051
- "introducedVersion": "4.0.1-alpha.13",
2051
+ "introducedVersion": "4.0.1-alpha.15",
2052
2052
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2053
2053
  "deprecationReplacement": "",
2054
2054
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2069,7 +2069,7 @@
2069
2069
  "status": "preview",
2070
2070
  "owner": "buildchain-workflows",
2071
2071
  "maturity": "preview",
2072
- "introducedVersion": "4.0.1-alpha.13",
2072
+ "introducedVersion": "4.0.1-alpha.15",
2073
2073
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2074
2074
  "deprecationReplacement": "",
2075
2075
  "sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
@@ -2119,7 +2119,7 @@
2119
2119
  "status": "preview",
2120
2120
  "owner": "buildchain-workflows",
2121
2121
  "maturity": "preview",
2122
- "introducedVersion": "4.0.1-alpha.13",
2122
+ "introducedVersion": "4.0.1-alpha.15",
2123
2123
  "compatibilityPromise": "preserved-through-the-v3-major-line",
2124
2124
  "deprecationReplacement": "",
2125
2125
  "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.1-alpha.13",
3
+ "version": "4.0.1-alpha.15",
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",
@@ -428,11 +428,11 @@ function validateRecoveryTransaction({ existingTransaction, expectedTransactionI
428
428
  if (expectedTransactionId && !actualTransactionId) fail("transaction-identity-conflict", `expected transaction ${expectedTransactionId} does not exist`, "Remove the stale transaction identity only if no durable transaction was ever sealed; otherwise preserve evidence and enter repair_required.");
429
429
  if (expectedTransactionId && expectedTransactionId !== actualTransactionId) fail("transaction-identity-conflict", `existing transaction ${actualTransactionId} conflicts with expected ${expectedTransactionId}`, "Enter repair_required and inspect the durable transaction before any retry.");
430
430
  if (existingTransaction) {
431
- const expectedIdentity = releaseTransactionId({ repository, version, sourceSha: sha, targetRef: normalizedRef(targetRef) });
431
+ const expectedIdentity = releaseTransactionId({ repository, version, sourceSha: exactSha(existingTransaction.source_sha, "existingTransaction.source_sha"), targetRef: normalizedRef(targetRef) });
432
432
  assertEqual(existingTransaction.id, expectedIdentity, "transaction-identity-conflict", "durable transaction identity", "Enter repair_required; the durable transaction does not belong to this exact publication target.");
433
433
  assertEqual(existingTransaction.repository, repository, "transaction-identity-conflict", "durable transaction repository", "Enter repair_required; never cross repository transaction boundaries.");
434
434
  assertEqual(normalizedRef(existingTransaction.target_ref), normalizedRef(targetRef), "transaction-identity-conflict", "durable transaction target ref", "Enter repair_required; never retarget a sealed transaction.");
435
- assertEqual(existingTransaction.source_sha, sha, "transaction-identity-conflict", "durable transaction source SHA", "Resume with the transaction's exact promotion SHA or enter repair_required.");
435
+ if (![existingTransaction.source_sha, existingTransaction.release_sha, existingTransaction.release_material_sha].filter(Boolean).includes(sha)) fail("transaction-identity-conflict", "recovery promotion SHA is not bound to the durable transaction", "Resume with the transaction's exact source, release, or release material SHA, or enter repair_required.");
436
436
  assertEqual(existingTransaction.version, version, "transaction-identity-conflict", "durable transaction version", "Enter repair_required; never change a sealed publication version.");
437
437
  assertEqual(existingTransaction.channel, channel || passport.target.channel, "transaction-identity-conflict", "durable transaction channel", "Enter repair_required; never move a transaction between channels.");
438
438
  }