@kungfu-tech/buildchain 2.14.18-alpha.7 → 2.14.18-alpha.8

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": "2.14.18-alpha.7",
7
+ "version": "2.14.18-alpha.8",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v2",
@@ -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:6f459e9bad07f4ec63ce1de30edaacef33587bc939c77140d5c31b75679a5091"
666
+ "auditDigest": "sha256:6cc4353f5c2ae7b5e260b38b1810e4216e7ac31528ffe8da850d22e73246b6f6"
667
667
  },
668
668
  {
669
669
  "contractVersion": 1,
@@ -3126,5 +3126,5 @@
3126
3126
  }
3127
3127
  ],
3128
3128
  "compatibilityDigest": "sha256:df13c3b8066068925ce847b31002201d533034d10d342542422db3a665c10475",
3129
- "contractDigest": "sha256:9af0d6ab0322ad8ae141f85e463be09938850e9f315b5369d45bddafb1b7c171"
3129
+ "contractDigest": "sha256:b6192f49aca3f3e70767290dea22578aa295fccd274c0482dae9968145844e02"
3130
3130
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-bundle",
4
- "generatedAt": "2026-07-24T14:02:02.767Z",
5
- "publishedAt": "2026-07-24T14:02:02.767Z",
4
+ "generatedAt": "2026-07-24T14:23:08.194Z",
5
+ "publishedAt": "2026-07-24T14:23:08.194Z",
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": "bb9b154e8081819601a54e6dc0f4252ebb72e981",
22
+ "sourceRevision": "c432ae15fe0c8efc912628dfaaf6b0b3eec196fb",
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.18-alpha.7",
40
+ "version": "2.14.18-alpha.8",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "source": {
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "id": "kungfu-tech-buildchain",
6
6
  "name": "@kungfu-tech/buildchain",
7
- "version": "2.14.18-alpha.7",
7
+ "version": "2.14.18-alpha.8",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "source": {
@@ -320,7 +320,7 @@
320
320
  "specifier": "@kungfu-tech/buildchain/publication-control-plane-audit",
321
321
  "export": "./publication-control-plane-audit",
322
322
  "target": "./packages/core/publication-control-plane-audit.js",
323
- "digest": "sha256:0f16457858b95d504e2a9e53558356a8f509f6ca8b011f550efd60bd8db469a4",
323
+ "digest": "sha256:319cd46deac8d720698ffbb40f63cec33901b7ac33cd8c0dbc720f448686a789",
324
324
  "summary": "Read-only publication control-plane snapshot evaluation APIs.",
325
325
  "capabilityGroup": "release-passport-trust",
326
326
  "audience": [
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-07-24T14:02:02.767Z",
5
- "publishedAt": "2026-07-24T14:02:02.767Z",
4
+ "generatedAt": "2026-07-24T14:23:08.194Z",
5
+ "publishedAt": "2026-07-24T14:23:08.194Z",
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": "bb9b154e8081819601a54e6dc0f4252ebb72e981",
22
+ "sourceRevision": "c432ae15fe0c8efc912628dfaaf6b0b3eec196fb",
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.18-alpha.7",
35
+ "version": "2.14.18-alpha.8",
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-07-24T14:02:02.767Z",
5
- "publishedAt": "2026-07-24T14:02:02.767Z",
4
+ "generatedAt": "2026-07-24T14:23:08.194Z",
5
+ "publishedAt": "2026-07-24T14:23:08.194Z",
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": "bb9b154e8081819601a54e6dc0f4252ebb72e981",
22
+ "sourceRevision": "c432ae15fe0c8efc912628dfaaf6b0b3eec196fb",
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.18-alpha.7",
40
+ "version": "2.14.18-alpha.8",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "2.14.18-alpha.7",
3
+ "version": "2.14.18-alpha.8",
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",
@@ -122,6 +122,8 @@ export function evaluatePublicationControlPlaneSnapshot({
122
122
  Array.isArray(branchPolicy.releaseReconciliation.changedPaths) &&
123
123
  branchPolicy.releaseReconciliation.changedPaths.length > 0
124
124
  );
125
+ const sourceBranchBindingPass = branchPolicy.sourceSha === branchPolicy.headSha ||
126
+ branchPolicy.sourceContainedInBranch === true;
125
127
  const providerTransactionBranchPass = branchPolicy.ref === branch &&
126
128
  branchPolicy.policyMode === "provider-enforced-transaction" &&
127
129
  branchPolicy.protected === true &&
@@ -132,7 +134,7 @@ export function evaluatePublicationControlPlaneSnapshot({
132
134
  branchPolicy.requiredCheckPassed === true &&
133
135
  /^[0-9a-f]{40}$/i.test(String(branchPolicy.requiredCheckSha || "")) &&
134
136
  branchPolicy.requiredCheckSha === branchPolicy.pullRequestHeadSha &&
135
- branchPolicy.sourceSha === branchPolicy.headSha &&
137
+ sourceBranchBindingPass &&
136
138
  sourceAuthorizationPass &&
137
139
  branchPolicy.mergedPullRequest === true &&
138
140
  branchPolicy.baseRef === branch &&
@@ -277,10 +277,24 @@ function main() {
277
277
  message: sourceMessage,
278
278
  changedPaths: sourceChangedPaths,
279
279
  };
280
+ const branchHeadSha = String(branchState.commit?.sha || "").toLowerCase();
281
+ const sourceComparison = sourceSha === branchHeadSha
282
+ ? null
283
+ : githubJson(
284
+ `repos/${repository}/compare/${sourceSha}...${branchHeadSha}`,
285
+ "source protected-branch lineage",
286
+ );
287
+ const sourceContainedInBranch = sourceSha === branchHeadSha || (
288
+ sourceComparison?.status === "ahead" &&
289
+ String(sourceComparison?.merge_base_commit?.sha || "").toLowerCase() === sourceSha
290
+ );
280
291
  let pullRequests = githubJson(`repos/${repository}/commits/${authorizationSha}/pulls`, "source pull-request lineage");
281
292
  let mergedPullRequest = (Array.isArray(pullRequests) ? pullRequests : []).find((entry) =>
282
293
  entry?.merged_at &&
283
- entry.merge_commit_sha === authorizationSha &&
294
+ (
295
+ String(entry.merge_commit_sha || "").toLowerCase() === authorizationSha ||
296
+ String(entry.head?.sha || "").toLowerCase() === authorizationSha
297
+ ) &&
284
298
  entry.base?.ref === branch &&
285
299
  entry.head?.repo?.full_name === repository
286
300
  );
@@ -318,10 +332,12 @@ function main() {
318
332
  const login = String(review?.user?.login || "");
319
333
  if (login) latestReviews.set(login, review);
320
334
  }
335
+ const pullRequestHeadSha = String(mergedPullRequest?.head?.sha || "").toLowerCase();
321
336
  const independentApprovals = [...latestReviews.values()].filter((review) =>
322
- review.state === "APPROVED" && review.user?.login !== mergedPullRequest?.user?.login
337
+ review.state === "APPROVED" &&
338
+ review.user?.login !== mergedPullRequest?.user?.login &&
339
+ String(review.commit_id || "").toLowerCase() === pullRequestHeadSha
323
340
  );
324
- const pullRequestHeadSha = String(mergedPullRequest?.head?.sha || "").toLowerCase();
325
341
  const checkRuns = /^[0-9a-f]{40}$/.test(pullRequestHeadSha)
326
342
  ? githubJson(`repos/${repository}/commits/${pullRequestHeadSha}/check-runs?per_page=100`, "merged pull-request head check runs")
327
343
  : { check_runs: [] };
@@ -360,7 +376,8 @@ function main() {
360
376
  requiredCheckSha: pullRequestHeadSha,
361
377
  sourceSha,
362
378
  authorizationSha,
363
- headSha: String(branchState.commit?.sha || "").toLowerCase(),
379
+ headSha: branchHeadSha,
380
+ sourceContainedInBranch,
364
381
  releaseReconciliation,
365
382
  mergedPullRequest: Boolean(mergedPullRequest),
366
383
  pullRequestNumber: mergedPullRequest?.number || 0,