@kungfu-tech/buildchain 2.14.14-alpha.7 → 2.14.14

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.14-alpha.7",
7
+ "version": "2.14.14",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v2",
@@ -89,7 +89,7 @@
89
89
  "alpha and stable channel selections use separate consumer contract locks by default"
90
90
  ],
91
91
  "breakingDigest": "sha256:c4597dfa89e1a58f1023905092b849644f5c080abf150aeba9c7e1cd5ed43962",
92
- "auditDigest": "sha256:f9d9f940ada25dc33b6c04efb9d1adcdad9cb2a93481bd8fab2094df61e27267"
92
+ "auditDigest": "sha256:7804f03ac13edf2ffda40774c17d95e24416a97ee4b9091fc28b6cc32daea46e"
93
93
  },
94
94
  {
95
95
  "contractVersion": 1,
@@ -1449,7 +1449,7 @@
1449
1449
  "missing receipts are non-qualifying and must not be represented as a successful controller run"
1450
1450
  ],
1451
1451
  "breakingDigest": "sha256:d40dd05d7e07473d4b2dc1b62fbb0ed6f06449b4d3a7c44a2e8014313e3c0273",
1452
- "auditDigest": "sha256:f9d9f940ada25dc33b6c04efb9d1adcdad9cb2a93481bd8fab2094df61e27267"
1452
+ "auditDigest": "sha256:7804f03ac13edf2ffda40774c17d95e24416a97ee4b9091fc28b6cc32daea46e"
1453
1453
  },
1454
1454
  {
1455
1455
  "contractVersion": 1,
@@ -2913,5 +2913,5 @@
2913
2913
  }
2914
2914
  ],
2915
2915
  "compatibilityDigest": "sha256:cdf588422ec6b460bd6f631400efa6e361a045e052c8967d6c50fadd7aa4dd90",
2916
- "contractDigest": "sha256:092252416420b9539577d23a314916faf1a18f412e66444ef330cffabac8cc71"
2916
+ "contractDigest": "sha256:05bca17e5d2a356660e5d1b76d40c023acd8b84d377f447339b77a63d594f8d7"
2917
2917
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-bundle",
4
- "generatedAt": "2026-07-22T07:02:25.525Z",
5
- "publishedAt": "2026-07-22T07:02:25.525Z",
4
+ "generatedAt": "2026-07-22T07:51:29.217Z",
5
+ "publishedAt": "2026-07-22T07:51:29.217Z",
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": "a59f6e028fda7b404b513d8aabd53d147c22f6d6",
22
+ "sourceRevision": "d7d1be6ace7aa6a342abbe8dc78b358534ff6b73",
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.14-alpha.7",
40
+ "version": "2.14.14",
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.14-alpha.7",
7
+ "version": "2.14.14",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "source": {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-publication-release-registry",
4
- "generatedAt": "2026-07-22T07:02:25.525Z",
5
- "publishedAt": "2026-07-22T07:02:25.525Z",
4
+ "generatedAt": "2026-07-22T07:51:29.217Z",
5
+ "publishedAt": "2026-07-22T07:51:29.217Z",
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": "a59f6e028fda7b404b513d8aabd53d147c22f6d6",
22
+ "sourceRevision": "d7d1be6ace7aa6a342abbe8dc78b358534ff6b73",
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.14-alpha.7",
35
+ "version": "2.14.14",
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-22T07:02:25.525Z",
5
- "publishedAt": "2026-07-22T07:02:25.525Z",
4
+ "generatedAt": "2026-07-22T07:51:29.217Z",
5
+ "publishedAt": "2026-07-22T07:51:29.217Z",
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": "a59f6e028fda7b404b513d8aabd53d147c22f6d6",
22
+ "sourceRevision": "d7d1be6ace7aa6a342abbe8dc78b358534ff6b73",
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.14-alpha.7",
40
+ "version": "2.14.14",
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.14-alpha.7",
3
+ "version": "2.14.14",
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",
@@ -96,7 +96,7 @@ function routerControllerPlanJob() {
96
96
  uses: actions/checkout@v7.0.0
97
97
  with:
98
98
  repository: \${{ needs.resolve-channel.outputs.router-repository }}
99
- ref: \${{ needs.resolve-channel.outputs.router-ref }}
99
+ ref: \${{ needs.resolve-channel.outputs.router-sha }}
100
100
  path: .buildchain/controller-runtime
101
101
  persist-credentials: false
102
102
 
@@ -237,14 +237,63 @@ function generateChannelBuildWorkflowBase(source) {
237
237
  return `# Generated by scripts/generate-channel-build-workflow.mjs. Do not edit directly.\nname: Buildchain Channel Build\n\non:\n workflow_call:\n inputs:\n${routerInputs(inputs)}\n secrets:\n${secrets.trimEnd()}\n outputs:\n${routerOutputs(outputs)}\n\npermissions:\n contents: read\n issues: write\n id-token: write\n\njobs:\n resolve-channel:\n name: Resolve Buildchain channel\n runs-on: ubuntu-24.04\n outputs:\n channel: \${{ steps.channel.outputs.channel }}\n buildchain-ref: \${{ steps.channel.outputs.buildchain-ref }}\n contract-lock-path: \${{ steps.lock.outputs.path }}\n selection-source: \${{ steps.channel.outputs.selection-source }}\n reason: \${{ steps.channel.outputs.reason }}\n steps:\n - name: Resolve router source\n id: router\n shell: bash\n env:\n BUILDCHAIN_ROUTER_WORKFLOW_REF: \${{ job.workflow_ref }}\n run: |\n set -euo pipefail\n workflow_ref=\"\${BUILDCHAIN_ROUTER_WORKFLOW_REF}\"\n repository=\"\${workflow_ref%%/.github/workflows/*}\"\n ref=\"\${workflow_ref##*@}\"\n ref=\"\${ref#refs/heads/}\"\n ref=\"\${ref#refs/tags/}\"\n if [[ -z \"\${repository}\" || \"\${repository}\" = \"\${workflow_ref}\" || -z \"\${ref}\" ]]; then\n echo \"Unable to resolve Buildchain router source from job.workflow_ref=\${workflow_ref}\" >&2\n exit 1\n fi\n {\n echo \"repository=\${repository}\"\n echo \"ref=\${ref}\"\n } >> \"\${GITHUB_OUTPUT}\"\n\n - name: Checkout Buildchain router\n uses: actions/checkout@v7.0.0\n with:\n repository: \${{ steps.router.outputs.repository }}\n ref: \${{ steps.router.outputs.ref }}\n path: .buildchain/router\n persist-credentials: false\n\n - name: Resolve channel\n id: channel\n shell: bash\n env:\n BUILDCHAIN_CHANNEL: \${{ inputs.buildchain-channel }}\n BUILDCHAIN_REQUESTED_REF: \${{ inputs.buildchain-ref }}\n BUILDCHAIN_PUBLISH_CHANNEL: \${{ inputs.publish-channel }}\n BUILDCHAIN_EVENT_NAME: \${{ github.event_name }}\n BUILDCHAIN_GIT_REF: \${{ github.ref }}\n BUILDCHAIN_RELEASE_PRERELEASE: \${{ github.event.release.prerelease }}\n BUILDCHAIN_ROUTER_REF: \${{ steps.router.outputs.ref }}\n run: |\n node .buildchain/router/scripts/buildchain-channel-router.mjs \\\n --cwd .buildchain/router \\\n --channel \"\${BUILDCHAIN_CHANNEL}\" \\\n --buildchain-ref \"\${BUILDCHAIN_REQUESTED_REF}\" \\\n --publish-channel \"\${BUILDCHAIN_PUBLISH_CHANNEL}\" \\\n --event-name \"\${BUILDCHAIN_EVENT_NAME}\" \\\n --ref \"\${BUILDCHAIN_GIT_REF}\" \\\n --release-prerelease \"\${BUILDCHAIN_RELEASE_PRERELEASE}\" \\\n --router-ref \"\${BUILDCHAIN_ROUTER_REF}\"\n\n - name: Select consumer contract lock\n id: lock\n shell: bash\n env:\n EXPLICIT_PATH: \${{ inputs.buildchain-contract-lock-path }}\n ALPHA_PATH: \${{ inputs.buildchain-alpha-contract-lock-path }}\n STABLE_PATH: \${{ inputs.buildchain-stable-contract-lock-path }}\n CHANNEL: \${{ steps.channel.outputs.channel }}\n run: |\n set -euo pipefail\n path=\"\${EXPLICIT_PATH}\"\n if [[ -z \"\${path}\" ]]; then\n if [[ \"\${CHANNEL}\" = \"alpha\" ]]; then\n path=\"\${ALPHA_PATH}\"\n else\n path=\"\${STABLE_PATH}\"\n fi\n fi\n echo \"path=\${path}\" >> \"\${GITHUB_OUTPUT}\"\n\n build:\n name: Build with resolved channel\n needs: resolve-channel\n uses: ./.github/workflows/.build.yml\n permissions:\n contents: read\n issues: write\n id-token: write\n with:\n${forwardedInputs(names)}\n secrets: inherit\n`;
238
238
  }
239
239
 
240
+ function bindRouterCheckoutToWorkflowSha(workflow) {
241
+ return workflow
242
+ .replace(
243
+ " BUILDCHAIN_ROUTER_WORKFLOW_REF: ${{ job.workflow_ref }}\n",
244
+ [
245
+ " BUILDCHAIN_ROUTER_WORKFLOW_REF: ${{ job.workflow_ref }}",
246
+ " BUILDCHAIN_ROUTER_WORKFLOW_REPOSITORY: ${{ job.workflow_repository }}",
247
+ " BUILDCHAIN_ROUTER_WORKFLOW_SHA: ${{ job.workflow_sha }}",
248
+ "",
249
+ ].join("\n"),
250
+ )
251
+ .replace(
252
+ [
253
+ ' repository="${workflow_ref%%/.github/workflows/*}"',
254
+ ' ref="${workflow_ref##*@}"',
255
+ ' ref="${ref#refs/heads/}"',
256
+ ' ref="${ref#refs/tags/}"',
257
+ ' if [[ -z "${repository}" || "${repository}" = "${workflow_ref}" || -z "${ref}" ]]; then',
258
+ ' echo "Unable to resolve Buildchain router source from job.workflow_ref=${workflow_ref}" >&2',
259
+ " exit 1",
260
+ " fi",
261
+ ].join("\n"),
262
+ [
263
+ ' repository="${BUILDCHAIN_ROUTER_WORKFLOW_REPOSITORY}"',
264
+ ' ref="${workflow_ref##*@}"',
265
+ ' ref="${ref#refs/heads/}"',
266
+ ' ref="${ref#refs/tags/}"',
267
+ ' parsed_repository="${workflow_ref%%/.github/workflows/*}"',
268
+ ' if [[ -z "${repository}" || "${repository}" != "${parsed_repository}" || -z "${ref}" ]]; then',
269
+ ' echo "::error::Unable to resolve Buildchain router source from job.workflow_ref=${workflow_ref}"',
270
+ " exit 1",
271
+ " fi",
272
+ ' if [[ ! "${BUILDCHAIN_ROUTER_WORKFLOW_SHA}" =~ ^[0-9a-fA-F]{40}$ ]]; then',
273
+ ' echo "::error::job.workflow_sha is not an exact commit SHA"',
274
+ " exit 1",
275
+ " fi",
276
+ ].join("\n"),
277
+ )
278
+ .replace(
279
+ ' echo "ref=${ref}"\n',
280
+ ' echo "ref=${ref}"\n echo "sha=${BUILDCHAIN_ROUTER_WORKFLOW_SHA,,}"\n',
281
+ )
282
+ .replace(
283
+ " ref: ${{ steps.router.outputs.ref }}\n path: .buildchain/router",
284
+ " ref: ${{ steps.router.outputs.sha }}\n path: .buildchain/router",
285
+ );
286
+ }
287
+
240
288
  export function generateChannelBuildWorkflow(source) {
241
- const generated = generateChannelBuildWorkflowBase(source)
289
+ const generated = bindRouterCheckoutToWorkflowSha(generateChannelBuildWorkflowBase(source))
242
290
  .replace(
243
291
  " contract-lock-path: ${{ steps.lock.outputs.path }}\n",
244
292
  [
245
293
  " contract-lock-path: ${{ steps.lock.outputs.path }}",
246
294
  " router-repository: ${{ steps.router.outputs.repository }}",
247
295
  " router-ref: ${{ steps.router.outputs.ref }}",
296
+ " router-sha: ${{ steps.router.outputs.sha }}",
248
297
  "",
249
298
  ].join("\n"),
250
299
  )