@kungfu-tech/buildchain 2.12.0-alpha.1 → 2.12.0-alpha.4

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "contract": "kungfu-buildchain-site-manifest",
4
- "generatedAt": "2026-07-11T03:14:59.432Z",
5
- "publishedAt": "2026-07-11T03:14:59.432Z",
4
+ "generatedAt": "2026-07-11T05:45:16.756Z",
5
+ "publishedAt": "2026-07-11T05:45:16.756Z",
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": "a17107b60f4b7c8e25acedb33432b1f576b8f585",
22
+ "sourceRevision": "6ac5e0fbb3e3659c4948685993b9856ad8cf34e5",
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.12.0-alpha.1",
40
+ "version": "2.12.0-alpha.4",
41
41
  "versionSource": "package.json#version"
42
42
  },
43
43
  "entrypoint": "buildchain-site.json",
@@ -205,7 +205,7 @@
205
205
  "path": "docs/reusable-build-surface.md",
206
206
  "plane": "use",
207
207
  "exists": true,
208
- "digest": "sha256:9d7b29135c2665882ae09754c47fe5ffb75e86ec2a8d539c48ffc5045dac802b"
208
+ "digest": "sha256:dfa37928517a391c2ab214a095954dcb50e84f514cea0a8424619903843d9b8d"
209
209
  },
210
210
  {
211
211
  "id": "publish-transaction",
@@ -221,7 +221,7 @@
221
221
  "path": "docs/release-governance.md",
222
222
  "plane": "why",
223
223
  "exists": true,
224
- "digest": "sha256:db9077f3748954dee3d28cd1e418dd537fec498df31155c560f7929b622888cb"
224
+ "digest": "sha256:11f0e3ff3162c7b3f886a38ab0e4b591886e2046937a9d006eda74b72a8cc9ab"
225
225
  },
226
226
  {
227
227
  "id": "release-flow",
@@ -256,6 +256,15 @@ evaluated after the PR-stage release candidate has been resolved and before the
256
256
  publish-gate ref, package registry, exact stable tag, or floating stable refs
257
257
  are mutated. Train refs and alpha promotion do not execute this gate.
258
258
 
259
+ All alpha and release promotions first run a metadata-only release-candidate
260
+ preflight after queued-intent revalidation. The preflight uses the same resolver
261
+ and exact target SHA as the publication job, but does not download payloads or
262
+ install the candidate repository dependencies. Missing channel PRs, stale
263
+ workflow runs, expired passport pairs, and insufficient payload artifact sets
264
+ therefore fail before the full promotion job starts. The publication job still
265
+ downloads and validates the exact evidence again at the trust boundary; the
266
+ preflight moves failure earlier without weakening the final check.
267
+
259
268
  The policy is versioned in `.buildchain/stable-release-policy.json`. A stable
260
269
  candidate is allowed only when all of these facts are true:
261
270
 
@@ -329,13 +329,17 @@ repository or organization variables named
329
329
  `BUILDCHAIN_CHECKOUT_CACHE_REFERENCE_REPOSITORY_TEMPLATE`, so consumers can keep
330
330
  private LAN topology out of repository YAML.
331
331
 
332
- The GitHub-hosted trust gate uploads the exact runtime version's small checkout
333
- bootstrap script. Native and Linux-container build jobs download that bootstrap,
334
- then use the same cache policy to obtain the Buildchain runtime at the already
335
- resolved immutable SHA. This prevents a large direct `actions/checkout` runtime
336
- clone from becoming a separate timeout path on constrained self-hosted uplinks.
337
- The bootstrap artifact does not contain the runtime repository and cannot move
338
- the selected ref.
332
+ The GitHub-hosted trust gate resolves the reusable workflow shell to an exact
333
+ commit and uploads that shell's small checkout bootstrap script. Native and
334
+ Linux-container build jobs download the bootstrap, then use the same cache
335
+ policy to obtain both the selected Buildchain runtime and consumer source at
336
+ their already resolved immutable SHAs. Keeping the bootstrap owned by the
337
+ workflow shell is important when `@vN-alpha` routes a stable release to an older
338
+ `vN` runtime: the stable runtime does not need to already contain the newest
339
+ checkout transport implementation. This also prevents a large direct
340
+ `actions/checkout` runtime clone from becoming a separate timeout path on
341
+ constrained self-hosted uplinks. The bootstrap artifact does not contain the
342
+ runtime repository and cannot move either selected ref.
339
343
 
340
344
  Do not read cache URLs or reference paths from PR-controlled files such as
341
345
  `.buildchain/buildchain.toml`. These values are trusted workflow inputs or repo/org
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungfu-tech/buildchain",
3
- "version": "2.12.0-alpha.1",
3
+ "version": "2.12.0-alpha.4",
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",
@@ -13,6 +13,10 @@ function env(name, fallback = "") {
13
13
  return process.env[name] || fallback;
14
14
  }
15
15
 
16
+ export function releaseCandidateDownloadEnabled(value = "true") {
17
+ return String(value || "true").trim().toLowerCase() !== "false";
18
+ }
19
+
16
20
  function splitRepository(repository) {
17
21
  const match = String(repository || "").trim().match(/^([^/\s]+)\/([^/\s]+)$/);
18
22
  if (!match) {
@@ -546,6 +550,7 @@ export async function resolveReleaseCandidateArtifactsCli() {
546
550
  publishArtifactKind: env("BUILDCHAIN_PUBLISH_ARTIFACT_KIND", "npm"),
547
551
  publishPackageMain: env("BUILDCHAIN_PUBLISH_PACKAGE_MAIN"),
548
552
  outputDir: env("BUILDCHAIN_RC_OUTPUT_DIR", ".buildchain/release-candidate"),
553
+ download: releaseCandidateDownloadEnabled(env("BUILDCHAIN_RC_DOWNLOAD", "true")),
549
554
  });
550
555
  writeGitHubOutputs({
551
556
  "promote-only-release-candidate": String(result.enabled === true),