@kungfu-tech/buildchain 3.0.4 → 3.0.5-alpha.1
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/dist/site/buildchain-contract.json +23 -18
- package/dist/site/buildchain-site.json +29 -24
- package/dist/site/controller-registry.json +6 -2
- package/dist/site/kfd-claims.json +6 -4
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +6 -6
- package/dist/site/node-api-registry.json +96 -5
- package/dist/site/page-registry.json +19 -14
- package/dist/site/public-surface-audit.json +12 -8
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +10 -10
- package/dist/site/workflow-registry.json +10 -6
- package/docs/auditable-demo.md +7 -0
- package/docs/aws-us-elastic-runner-burst-plane.md +32 -1
- package/docs/node-api-reference.md +12 -3
- package/docs/publish-transaction.md +7 -5
- package/docs/release-flow.md +4 -0
- package/docs/release-governance.md +7 -0
- package/docs/release-propagation.md +34 -0
- package/package.json +1 -1
- package/packages/core/release-propagation-capture.js +150 -0
- package/packages/core/release-propagation-stage-evidence.js +1 -1
- package/packages/core/release-propagation.js +5 -0
- package/scripts/auditable-demo-renditions.mjs +2 -3
- package/scripts/aws-macos-jit-controller-core.mjs +389 -0
- package/scripts/aws-macos-jit-controller-runtime.mjs +82 -0
- package/scripts/aws-macos-jit-controller.mjs +558 -0
- package/scripts/aws-macos-jit-job-controller.mjs +401 -0
- package/scripts/capture-package-release-propagation.mjs +240 -0
|
@@ -1001,6 +1001,7 @@
|
|
|
1001
1001
|
"release-passport-output-dir",
|
|
1002
1002
|
"release-passport-platform-manifest-paths",
|
|
1003
1003
|
"release-passport-product-name",
|
|
1004
|
+
"release-propagation-config-path",
|
|
1004
1005
|
"required-artifact-count",
|
|
1005
1006
|
"required-status-check",
|
|
1006
1007
|
"runner-preset",
|
|
@@ -1009,7 +1010,7 @@
|
|
|
1009
1010
|
"target-sha",
|
|
1010
1011
|
"trusted-publishing"
|
|
1011
1012
|
],
|
|
1012
|
-
"inputCount":
|
|
1013
|
+
"inputCount": 95,
|
|
1013
1014
|
"secrets": [
|
|
1014
1015
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
1015
1016
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1042,9 +1043,10 @@
|
|
|
1042
1043
|
"publication-commit-evidence-path",
|
|
1043
1044
|
"publication-commit-payload-root",
|
|
1044
1045
|
"publication-commit-url",
|
|
1045
|
-
"release-candidate-artifact"
|
|
1046
|
+
"release-candidate-artifact",
|
|
1047
|
+
"release-propagation-work-artifact"
|
|
1046
1048
|
],
|
|
1047
|
-
"outputCount":
|
|
1049
|
+
"outputCount": 20
|
|
1048
1050
|
},
|
|
1049
1051
|
{
|
|
1050
1052
|
"id": ".release-docker",
|
|
@@ -2249,6 +2251,7 @@
|
|
|
2249
2251
|
"release-passport-output-dir",
|
|
2250
2252
|
"release-passport-platform-manifest-paths",
|
|
2251
2253
|
"release-passport-product-name",
|
|
2254
|
+
"release-propagation-config-path",
|
|
2252
2255
|
"required-artifact-count",
|
|
2253
2256
|
"required-status-check",
|
|
2254
2257
|
"runner-preset",
|
|
@@ -2257,7 +2260,7 @@
|
|
|
2257
2260
|
"target-sha",
|
|
2258
2261
|
"trusted-publishing"
|
|
2259
2262
|
],
|
|
2260
|
-
"inputCount":
|
|
2263
|
+
"inputCount": 87,
|
|
2261
2264
|
"secrets": [
|
|
2262
2265
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
2263
2266
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -2302,9 +2305,10 @@
|
|
|
2302
2305
|
"publication-commit-evidence-path",
|
|
2303
2306
|
"publication-commit-payload-root",
|
|
2304
2307
|
"publication-commit-url",
|
|
2305
|
-
"release-candidate-artifact"
|
|
2308
|
+
"release-candidate-artifact",
|
|
2309
|
+
"release-propagation-work-artifact"
|
|
2306
2310
|
],
|
|
2307
|
-
"outputCount":
|
|
2311
|
+
"outputCount": 32
|
|
2308
2312
|
},
|
|
2309
2313
|
{
|
|
2310
2314
|
"id": "release-governance-reconcile",
|
|
@@ -7024,8 +7028,8 @@
|
|
|
7024
7028
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
7025
7029
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
7026
7030
|
"cliRegistryDigest": "0db010925d1c60209c3dac8bc2797537f307ab21bc68084263e79004c5c16ff7",
|
|
7027
|
-
"workflowRegistryDigest": "
|
|
7028
|
-
"pageRegistryDigest": "
|
|
7031
|
+
"workflowRegistryDigest": "b5b860965abf645e1618d7840db544d638fd8ea3d0ee04ed00ccd4c8f8ccaabb",
|
|
7032
|
+
"pageRegistryDigest": "13e408bcfe519ed58f0723980506c522bf124921883c880ac89258db28b06ce5"
|
|
7029
7033
|
},
|
|
7030
7034
|
"comparison": {
|
|
7031
7035
|
"missingCliRegistry": [],
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-08-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-02T02:26:15.287Z",
|
|
5
|
+
"publishedAt": "2026-08-02T02:26:15.287Z",
|
|
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": "8b96fb02e587124bad0f9055f9de6eb7c6b8081c",
|
|
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": "3.0.
|
|
35
|
+
"version": "3.0.5-alpha.1",
|
|
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-
|
|
5
|
-
"publishedAt": "2026-08-
|
|
4
|
+
"generatedAt": "2026-08-02T02:26:15.287Z",
|
|
5
|
+
"publishedAt": "2026-08-02T02:26:15.287Z",
|
|
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": "8b96fb02e587124bad0f9055f9de6eb7c6b8081c",
|
|
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": "3.0.
|
|
40
|
+
"version": "3.0.5-alpha.1",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"path": "docs/auditable-demo.md",
|
|
70
70
|
"plane": "verify",
|
|
71
71
|
"exists": true,
|
|
72
|
-
"digest": "sha256:
|
|
72
|
+
"digest": "sha256:4d32c82b652decfbb26b441c203fe34e70daa86022bb4baed9da02a5d6cf5831"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"id": "install",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"path": "docs/release-propagation.md",
|
|
134
134
|
"plane": "use",
|
|
135
135
|
"exists": true,
|
|
136
|
-
"digest": "sha256:
|
|
136
|
+
"digest": "sha256:3b7a2a0437f8a3a4e5cff7e05a2a8c427be597d85e93d49d5e35ba2a2b089afc"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"id": "readme-badges",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"path": "docs/node-api-reference.md",
|
|
238
238
|
"plane": "use",
|
|
239
239
|
"exists": true,
|
|
240
|
-
"digest": "sha256:
|
|
240
|
+
"digest": "sha256:38f051f579fb93dc7d8b4f2c70acd622c020e867394344b5e932568cd8d2ad83"
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"id": "build-facts",
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
"path": "docs/publish-transaction.md",
|
|
286
286
|
"plane": "verify",
|
|
287
287
|
"exists": true,
|
|
288
|
-
"digest": "sha256:
|
|
288
|
+
"digest": "sha256:3a9ef099d5d93d9b558c7b6a0aa4403dfcce1479ce5d6fc36ecb3e34cdd5bb6d"
|
|
289
289
|
},
|
|
290
290
|
{
|
|
291
291
|
"id": "release-governance",
|
|
@@ -293,7 +293,7 @@
|
|
|
293
293
|
"path": "docs/release-governance.md",
|
|
294
294
|
"plane": "why",
|
|
295
295
|
"exists": true,
|
|
296
|
-
"digest": "sha256:
|
|
296
|
+
"digest": "sha256:96d78f800cd7d43d3a47a11863d4813711e360418ba33a4284688389c7e4b70c"
|
|
297
297
|
},
|
|
298
298
|
{
|
|
299
299
|
"id": "release-flow",
|
|
@@ -301,7 +301,7 @@
|
|
|
301
301
|
"path": "docs/release-flow.md",
|
|
302
302
|
"plane": "verify",
|
|
303
303
|
"exists": true,
|
|
304
|
-
"digest": "sha256:
|
|
304
|
+
"digest": "sha256:dc54b8a264489341984ca6157b07d1956e934366f937b7412a21df7f025d2d8d"
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
"id": "runtime-train-validation",
|
|
@@ -490,6 +490,7 @@
|
|
|
490
490
|
"release-passport-output-dir",
|
|
491
491
|
"release-passport-platform-manifest-paths",
|
|
492
492
|
"release-passport-product-name",
|
|
493
|
+
"release-propagation-config-path",
|
|
493
494
|
"required-artifact-count",
|
|
494
495
|
"required-status-check",
|
|
495
496
|
"runner-preset",
|
|
@@ -498,7 +499,7 @@
|
|
|
498
499
|
"target-sha",
|
|
499
500
|
"trusted-publishing"
|
|
500
501
|
],
|
|
501
|
-
"inputCount":
|
|
502
|
+
"inputCount": 95,
|
|
502
503
|
"secrets": [
|
|
503
504
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
504
505
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -531,9 +532,10 @@
|
|
|
531
532
|
"publication-commit-evidence-path",
|
|
532
533
|
"publication-commit-payload-root",
|
|
533
534
|
"publication-commit-url",
|
|
534
|
-
"release-candidate-artifact"
|
|
535
|
+
"release-candidate-artifact",
|
|
536
|
+
"release-propagation-work-artifact"
|
|
535
537
|
],
|
|
536
|
-
"outputCount":
|
|
538
|
+
"outputCount": 20,
|
|
537
539
|
"surface": "reusable-workflow",
|
|
538
540
|
"capabilityGroup": "api-cli-reference",
|
|
539
541
|
"status": "active",
|
|
@@ -2148,6 +2150,7 @@
|
|
|
2148
2150
|
"release-passport-output-dir",
|
|
2149
2151
|
"release-passport-platform-manifest-paths",
|
|
2150
2152
|
"release-passport-product-name",
|
|
2153
|
+
"release-propagation-config-path",
|
|
2151
2154
|
"required-artifact-count",
|
|
2152
2155
|
"required-status-check",
|
|
2153
2156
|
"runner-preset",
|
|
@@ -2156,7 +2159,7 @@
|
|
|
2156
2159
|
"target-sha",
|
|
2157
2160
|
"trusted-publishing"
|
|
2158
2161
|
],
|
|
2159
|
-
"inputCount":
|
|
2162
|
+
"inputCount": 87,
|
|
2160
2163
|
"secrets": [
|
|
2161
2164
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
2162
2165
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -2201,9 +2204,10 @@
|
|
|
2201
2204
|
"publication-commit-evidence-path",
|
|
2202
2205
|
"publication-commit-payload-root",
|
|
2203
2206
|
"publication-commit-url",
|
|
2204
|
-
"release-candidate-artifact"
|
|
2207
|
+
"release-candidate-artifact",
|
|
2208
|
+
"release-propagation-work-artifact"
|
|
2205
2209
|
],
|
|
2206
|
-
"outputCount":
|
|
2210
|
+
"outputCount": 32,
|
|
2207
2211
|
"surface": "release-governance",
|
|
2208
2212
|
"capabilityGroup": "reusable-build",
|
|
2209
2213
|
"status": "active",
|
package/docs/auditable-demo.md
CHANGED
|
@@ -47,6 +47,13 @@ fixed 80-200 by 24-80 terminal cells, 10,000 events, and 4 MiB of canonical
|
|
|
47
47
|
base64 bytes. It must contain a passed completion sentinel and an explicitly
|
|
48
48
|
empty authority-grant list. Existing three-file adapters remain valid.
|
|
49
49
|
|
|
50
|
+
The completion sentinel names a consumer-owned versioned schema, the exact
|
|
51
|
+
`qualified` status, a content root, and an event count. Buildchain validates
|
|
52
|
+
that envelope generically; it does not reinterpret a command-specific result
|
|
53
|
+
as Agent Work Lab evidence or grant authority from the schema name. The
|
|
54
|
+
consumer projection and its retained source artifact remain responsible for
|
|
55
|
+
the exact claim boundary.
|
|
56
|
+
|
|
50
57
|
Terminal bytes are volatile observations, not Work, Warrant, capability, or
|
|
51
58
|
publication authority. First-party or System identity, KFD compliance, Product
|
|
52
59
|
System metadata, package metadata, scan output, registry history, and
|
|
@@ -8,7 +8,12 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-08-01
|
|
12
|
+
ai_provenance:
|
|
13
|
+
model_family: GPT-5
|
|
14
|
+
product: Codex
|
|
15
|
+
generated_at: 2026-08-01
|
|
16
|
+
invisible_information: No hidden model checkpoint, parameters, or private training data were available.
|
|
12
17
|
---
|
|
13
18
|
|
|
14
19
|
# AWS US elastic runner burst plane
|
|
@@ -226,6 +231,32 @@ host, including at least one full run, plus proof that:
|
|
|
226
231
|
- AWS has no active campaign instance or allocated campaign host;
|
|
227
232
|
- actual incremental spend remained below USD 25.
|
|
228
233
|
|
|
234
|
+
### Phase 3 lifecycle controller
|
|
235
|
+
|
|
236
|
+
`scripts/aws-macos-jit-controller.mjs` is the operator boundary for the paid
|
|
237
|
+
campaign. It has three explicit mutation modes:
|
|
238
|
+
|
|
239
|
+
- `launch-campaign` binds the exact repository source, AMI, availability zone,
|
|
240
|
+
tagged Dedicated Host, and reusable instance. It rejects pre-existing Mac
|
|
241
|
+
capacity and requires successful `AllocateHosts` and `RunInstances` DryRuns
|
|
242
|
+
before either real call.
|
|
243
|
+
- `run-job` binds one queued exact-source GitHub job to the existing campaign
|
|
244
|
+
host and instance. It writes the repository JIT configuration through a
|
|
245
|
+
mode-0600 temporary file into a distinct SSM SecureString, sends only the
|
|
246
|
+
credential-free bootstrap through SSM, and removes the parameter plus runner
|
|
247
|
+
registration if command delivery fails.
|
|
248
|
+
- `close-campaign` refuses execution before the provider's 24-hour minimum,
|
|
249
|
+
verifies the encrypted delete-on-termination root volume, removes scoped JIT
|
|
250
|
+
residue, terminates the exact instance, and requires a `ReleaseHosts` DryRun
|
|
251
|
+
before release. If Apple host scrubbing is still in progress, it reports
|
|
252
|
+
`release-pending`; the ten-minute card-scoped reaper remains the bounded
|
|
253
|
+
retry path.
|
|
254
|
+
|
|
255
|
+
Every execute mode requires the exact source SHA and campaign id to be repeated
|
|
256
|
+
through `--confirm-source-sha` and `--confirm-campaign-id`. `run-job` also
|
|
257
|
+
requires `--confirm-run-id`. Omitting `--execute` emits a deterministic plan
|
|
258
|
+
without changing AWS or GitHub state.
|
|
259
|
+
|
|
229
260
|
## Provider lifecycle
|
|
230
261
|
|
|
231
262
|
The three infrastructure templates live under
|
|
@@ -24,7 +24,7 @@ Signatures and source locations are mechanical. JavaScript return types remain c
|
|
|
24
24
|
|
|
25
25
|
## `@kungfu-tech/buildchain`
|
|
26
26
|
|
|
27
|
-
Target: `./packages/core/index.js`. Public symbols:
|
|
27
|
+
Target: `./packages/core/index.js`. Public symbols: 541.
|
|
28
28
|
|
|
29
29
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
30
30
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
@@ -199,6 +199,7 @@ Target: `./packages/core/index.js`. Public symbols: 538.
|
|
|
199
199
|
| `createKfdBadgeSpecsFromStandards` | function: function createKfdBadgeSpecsFromStandards(standardsMetadata) | standardsMetadata | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKfdBadgeSpecsFromStandards } from "@kungfu-tech/buildchain";` | `packages/core/readme-badges.js:126` |
|
|
200
200
|
| `createKfdSupportProjection` | function: function createKfdSupportProjection({ matrix, matrixRoot = "", gateResults = [], authorityPath = ".buildchain/kfd/support-matrix.json", expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {}) | { matrix, matrixRoot = "", gateResults = [], authorityPath = ".buildchain/kfd/support-matrix.json", expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKfdSupportProjection } from "@kungfu-tech/buildchain";` | `packages/core/kfd-product-gates.js:716` |
|
|
201
201
|
| `createKungfuBuildInfoProjection` | function: function createKungfuBuildInfoProjection({ moduleFact, cwd = process.cwd(), now = nowIso() } = {}) | { moduleFact, cwd = process.cwd(), now = nowIso() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKungfuBuildInfoProjection } from "@kungfu-tech/buildchain";` | `packages/core/build-facts.js:520` |
|
|
202
|
+
| `createPackageReleasePropagationCapture` | function: function createPackageReleasePropagationCapture({ config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {}) | { config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPackageReleasePropagationCapture } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-capture.js:101` |
|
|
202
203
|
| `createPaperAlphaPlan` | function: function createPaperAlphaPlan({ cwd = process.cwd(), sourceRef = "", targetRef = "", } = {}) | { cwd = process.cwd(), sourceRef = "", targetRef = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPaperAlphaPlan } from "@kungfu-tech/buildchain";` | `packages/core/paper.js:2655` |
|
|
203
204
|
| `createPaperBuildPlan` | function: function createPaperBuildPlan({ cwd = process.cwd(), sourceSha = "", pullToolchain = true, } = {}) | { cwd = process.cwd(), sourceSha = "", pullToolchain = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPaperBuildPlan } from "@kungfu-tech/buildchain";` | `packages/core/paper.js:2592` |
|
|
204
205
|
| `createPaperResumePlan` | function: function createPaperResumePlan({ cwd = process.cwd(), buildchainRef = "", } = {}) | { cwd = process.cwd(), buildchainRef = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write | `import { createPaperResumePlan } from "@kungfu-tech/buildchain";` | `packages/core/paper.js:2713` |
|
|
@@ -362,8 +363,10 @@ Target: `./packages/core/index.js`. Public symbols: 538.
|
|
|
362
363
|
| `normalizeKfd3DistributionDeclaration` | function: function normalizeKfd3DistributionDeclaration(distribution, { surfaceId = "surface" } = {}) | distribution, { surfaceId = "surface" } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeKfd3DistributionDeclaration } from "@kungfu-tech/buildchain";` | `packages/core/kfd3-surface-register.js:73` |
|
|
363
364
|
| `normalizeKfdStandardId` | function: function normalizeKfdStandardId(value) | value | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeKfdStandardId } from "@kungfu-tech/buildchain";` | `packages/core/kfd.js:455` |
|
|
364
365
|
| `normalizeLifecycleStage` | function: function normalizeLifecycleStage(stage, label = "lifecycle stage", lifecycle = {}) | stage, label = "lifecycle stage", lifecycle = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeLifecycleStage } from "@kungfu-tech/buildchain";` | `packages/core/buildchain-config.js:1333` |
|
|
366
|
+
| `normalizePackageReleasePropagationConfig` | function: function normalizePackageReleasePropagationConfig(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizePackageReleasePropagationConfig } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-capture.js:63` |
|
|
365
367
|
| `normalizeReleasePropagationGraph` | function: function normalizeReleasePropagationGraph(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeReleasePropagationGraph } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation.js:163` |
|
|
366
368
|
| `normalizeStableCandidateLedger` | function: function normalizeStableCandidateLedger(input, expected = {}) | input, expected = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeStableCandidateLedger } from "@kungfu-tech/buildchain";` | `packages/core/stable-candidate-ledger.js:76` |
|
|
369
|
+
| `PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT` | constant: const PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/release-propagation-capture.js:17` |
|
|
367
370
|
| `PAPER_ALPHA_PLAN_CONTRACT` | constant: const PAPER_ALPHA_PLAN_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_ALPHA_PLAN_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/paper.js:90` |
|
|
368
371
|
| `PAPER_BUILD_PLAN_CONTRACT` | constant: const PAPER_BUILD_PLAN_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_BUILD_PLAN_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/paper.js:89` |
|
|
369
372
|
| `PAPER_FLEET_AUDIT_CONTRACT` | constant: const PAPER_FLEET_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_FLEET_AUDIT_CONTRACT } from "@kungfu-tech/buildchain";` | `packages/core/paper-fleet.js:19` |
|
|
@@ -615,7 +618,7 @@ Target: `./packages/core/build-facts.js`. Public symbols: 15.
|
|
|
615
618
|
|
|
616
619
|
## `@kungfu-tech/buildchain/core`
|
|
617
620
|
|
|
618
|
-
Target: `./packages/core/index.js`. Public symbols:
|
|
621
|
+
Target: `./packages/core/index.js`. Public symbols: 541.
|
|
619
622
|
|
|
620
623
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
621
624
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
@@ -790,6 +793,7 @@ Target: `./packages/core/index.js`. Public symbols: 538.
|
|
|
790
793
|
| `createKfdBadgeSpecsFromStandards` | function: function createKfdBadgeSpecsFromStandards(standardsMetadata) | standardsMetadata | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKfdBadgeSpecsFromStandards } from "@kungfu-tech/buildchain/core";` | `packages/core/readme-badges.js:126` |
|
|
791
794
|
| `createKfdSupportProjection` | function: function createKfdSupportProjection({ matrix, matrixRoot = "", gateResults = [], authorityPath = ".buildchain/kfd/support-matrix.json", expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {}) | { matrix, matrixRoot = "", gateResults = [], authorityPath = ".buildchain/kfd/support-matrix.json", expectedSourceSha = "", checkedAt = new Date().toISOString(), } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKfdSupportProjection } from "@kungfu-tech/buildchain/core";` | `packages/core/kfd-product-gates.js:716` |
|
|
792
795
|
| `createKungfuBuildInfoProjection` | function: function createKungfuBuildInfoProjection({ moduleFact, cwd = process.cwd(), now = nowIso() } = {}) | { moduleFact, cwd = process.cwd(), now = nowIso() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createKungfuBuildInfoProjection } from "@kungfu-tech/buildchain/core";` | `packages/core/build-facts.js:520` |
|
|
796
|
+
| `createPackageReleasePropagationCapture` | function: function createPackageReleasePropagationCapture({ config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {}) | { config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPackageReleasePropagationCapture } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-capture.js:101` |
|
|
793
797
|
| `createPaperAlphaPlan` | function: function createPaperAlphaPlan({ cwd = process.cwd(), sourceRef = "", targetRef = "", } = {}) | { cwd = process.cwd(), sourceRef = "", targetRef = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPaperAlphaPlan } from "@kungfu-tech/buildchain/core";` | `packages/core/paper.js:2655` |
|
|
794
798
|
| `createPaperBuildPlan` | function: function createPaperBuildPlan({ cwd = process.cwd(), sourceSha = "", pullToolchain = true, } = {}) | { cwd = process.cwd(), sourceSha = "", pullToolchain = true, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPaperBuildPlan } from "@kungfu-tech/buildchain/core";` | `packages/core/paper.js:2592` |
|
|
795
799
|
| `createPaperResumePlan` | function: function createPaperResumePlan({ cwd = process.cwd(), buildchainRef = "", } = {}) | { cwd = process.cwd(), buildchainRef = "", } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write | `import { createPaperResumePlan } from "@kungfu-tech/buildchain/core";` | `packages/core/paper.js:2713` |
|
|
@@ -953,8 +957,10 @@ Target: `./packages/core/index.js`. Public symbols: 538.
|
|
|
953
957
|
| `normalizeKfd3DistributionDeclaration` | function: function normalizeKfd3DistributionDeclaration(distribution, { surfaceId = "surface" } = {}) | distribution, { surfaceId = "surface" } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeKfd3DistributionDeclaration } from "@kungfu-tech/buildchain/core";` | `packages/core/kfd3-surface-register.js:73` |
|
|
954
958
|
| `normalizeKfdStandardId` | function: function normalizeKfdStandardId(value) | value | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeKfdStandardId } from "@kungfu-tech/buildchain/core";` | `packages/core/kfd.js:455` |
|
|
955
959
|
| `normalizeLifecycleStage` | function: function normalizeLifecycleStage(stage, label = "lifecycle stage", lifecycle = {}) | stage, label = "lifecycle stage", lifecycle = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeLifecycleStage } from "@kungfu-tech/buildchain/core";` | `packages/core/buildchain-config.js:1333` |
|
|
960
|
+
| `normalizePackageReleasePropagationConfig` | function: function normalizePackageReleasePropagationConfig(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizePackageReleasePropagationConfig } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-capture.js:63` |
|
|
956
961
|
| `normalizeReleasePropagationGraph` | function: function normalizeReleasePropagationGraph(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeReleasePropagationGraph } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation.js:163` |
|
|
957
962
|
| `normalizeStableCandidateLedger` | function: function normalizeStableCandidateLedger(input, expected = {}) | input, expected = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeStableCandidateLedger } from "@kungfu-tech/buildchain/core";` | `packages/core/stable-candidate-ledger.js:76` |
|
|
963
|
+
| `PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT` | constant: const PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/release-propagation-capture.js:17` |
|
|
958
964
|
| `PAPER_ALPHA_PLAN_CONTRACT` | constant: const PAPER_ALPHA_PLAN_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_ALPHA_PLAN_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/paper.js:90` |
|
|
959
965
|
| `PAPER_BUILD_PLAN_CONTRACT` | constant: const PAPER_BUILD_PLAN_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_BUILD_PLAN_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/paper.js:89` |
|
|
960
966
|
| `PAPER_FLEET_AUDIT_CONTRACT` | constant: const PAPER_FLEET_AUDIT_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PAPER_FLEET_AUDIT_CONTRACT } from "@kungfu-tech/buildchain/core";` | `packages/core/paper-fleet.js:19` |
|
|
@@ -1879,17 +1885,20 @@ Target: `./packages/core/release-passport-contract.js`. Public symbols: 5.
|
|
|
1879
1885
|
|
|
1880
1886
|
## `@kungfu-tech/buildchain/release-propagation`
|
|
1881
1887
|
|
|
1882
|
-
Target: `./packages/core/release-propagation.js`. Public symbols:
|
|
1888
|
+
Target: `./packages/core/release-propagation.js`. Public symbols: 25.
|
|
1883
1889
|
|
|
1884
1890
|
| Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
|
|
1885
1891
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
1886
1892
|
| `claimReleasePropagationWork` | function: function claimReleasePropagationWork({ work, expectedWorkRoot, authority, familyState, } = {}) | { work, expectedWorkRoot, authority, familyState, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { claimReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work-transitions.js:17` |
|
|
1887
1893
|
| `completeReleasePropagationWork` | function: function completeReleasePropagationWork({ work, expectedWorkRoot, receipt, completionDecision, } = {}) | { work, expectedWorkRoot, receipt, completionDecision, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { completeReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work-transitions.js:110` |
|
|
1894
|
+
| `createPackageReleasePropagationCapture` | function: function createPackageReleasePropagationCapture({ config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {}) | { config: configInput, upstreamRelease: upstreamReleaseInput, expectedBaseShas = {}, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createPackageReleasePropagationCapture } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-capture.js:101` |
|
|
1888
1895
|
| `createReleasePropagationLock` | function: function createReleasePropagationLock({ graph, edge, sourceNode, targetNode, upstreamRelease, downstreamChannel, } = {}) | { graph, edge, sourceNode, targetNode, upstreamRelease, downstreamChannel, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createReleasePropagationLock } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:199` |
|
|
1889
1896
|
| `createReleasePropagationReceipt` | function: function createReleasePropagationReceipt({ plan, target = "", lockResult, prOutcome, stagingState = "pending", productionState = "not-requested", observedAt = "", } = {}) | { plan, target = "", lockResult, prOutcome, stagingState = "pending", productionState = "not-requested", observedAt = "", } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createReleasePropagationReceipt } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:370` |
|
|
1890
1897
|
| `createReleasePropagationStageReceipt` | function: function createReleasePropagationStageReceipt({ work, stage, outcome = "success", observedAt, actor, summary, evidence, failure = null, } = {}) | { work, stage, outcome = "success", observedAt, actor, summary, evidence, failure = null, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createReleasePropagationStageReceipt } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work.js:214` |
|
|
1891
1898
|
| `createReleasePropagationWork` | function: function createReleasePropagationWork({ plan, target = "", workContext, expectedDownstreamBaseSha, } = {}) | { plan, target = "", workContext, expectedDownstreamBaseSha, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createReleasePropagationWork } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work.js:111` |
|
|
1899
|
+
| `normalizePackageReleasePropagationConfig` | function: function normalizePackageReleasePropagationConfig(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizePackageReleasePropagationConfig } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-capture.js:63` |
|
|
1892
1900
|
| `normalizeReleasePropagationGraph` | function: function normalizeReleasePropagationGraph(input) | input | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeReleasePropagationGraph } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:163` |
|
|
1901
|
+
| `PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT` | constant: const PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { PACKAGE_RELEASE_PROPAGATION_CONFIG_CONTRACT } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-capture.js:17` |
|
|
1893
1902
|
| `planReleasePropagation` | function: function planReleasePropagation({ graph: graphInput, upstreamRelease: releaseInput, sourceNode = "" } = {}) | { graph: graphInput, upstreamRelease: releaseInput, sourceNode = "" } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { planReleasePropagation } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:248` |
|
|
1894
1903
|
| `readReleasePropagationJson` | function: function readReleasePropagationJson(value, { cwd = process.cwd(), label = "json" } = {}) | value, { cwd = process.cwd(), label = "json" } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { readReleasePropagationJson } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation.js:304` |
|
|
1895
1904
|
| `recordReleasePropagationStage` | function: function recordReleasePropagationStage({ work, expectedWorkRoot, receipt } = {}) | { work, expectedWorkRoot, receipt } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { recordReleasePropagationStage } from "@kungfu-tech/buildchain/release-propagation";` | `packages/core/release-propagation-work-transitions.js:45` |
|
|
@@ -415,9 +415,10 @@ first run can stop at `finalizing` after registry publication. If the reviewed
|
|
|
415
415
|
merge commit later contains that exact transaction release material but the
|
|
416
416
|
exact tag is still absent, a retry performs finalization only: it reloads the
|
|
417
417
|
same durable source, release material, tooling, evidence, version, and target
|
|
418
|
-
bindings; creates the exact
|
|
419
|
-
|
|
420
|
-
|
|
418
|
+
bindings; creates the exact tag at the transaction source SHA; moves floating
|
|
419
|
+
refs to the transaction release SHA; and completes the passport from the
|
|
420
|
+
transaction source tree. It does not rerun the provider mutation and does not
|
|
421
|
+
authorize the newer composite channel tree
|
|
421
422
|
as published material. A different source tree still requires a new version and
|
|
422
423
|
a fresh release candidate.
|
|
423
424
|
|
|
@@ -536,8 +537,9 @@ inside the mutation boundary.
|
|
|
536
537
|
|
|
537
538
|
If finalization fails after an exact Git tag is created, the next run reads the
|
|
538
539
|
durable `finalizing` state, verifies the exact tag points at the recorded
|
|
539
|
-
|
|
540
|
-
|
|
540
|
+
source SHA (while accepting legacy release/material targets for recovery), and
|
|
541
|
+
retries the remaining floating refs. An exact tag at an unrelated SHA is a
|
|
542
|
+
material conflict and blocks recovery.
|
|
541
543
|
|
|
542
544
|
## CLI Recovery
|
|
543
545
|
|
package/docs/release-flow.md
CHANGED
|
@@ -96,6 +96,10 @@ published artifacts are already durable.
|
|
|
96
96
|
The intended governance split is:
|
|
97
97
|
|
|
98
98
|
- exact tags such as `v3.0.2` and `v3.0.3-alpha.0` are immutable audit refs;
|
|
99
|
+
- for publish transactions, the exact tag points to the transaction
|
|
100
|
+
`source_sha`, matching package-registry source metadata such as npm
|
|
101
|
+
`gitHead`; generated version-state commits remain on protected branches and
|
|
102
|
+
floating channel refs;
|
|
99
103
|
- floating tags such as `v3`, `v3.0`, `v3.0-alpha`, and `v3-alpha` are mutable channel refs
|
|
100
104
|
owned by the Buildchain promotion token;
|
|
101
105
|
- protected branches still require reviewed channel PRs before Buildchain can
|
|
@@ -831,6 +831,13 @@ must be absent or already point at accepted release material. This preserves an
|
|
|
831
831
|
immutable tag that represents a completed transaction while allowing a tag
|
|
832
832
|
collision discovered after registry publication to recover without republishing.
|
|
833
833
|
|
|
834
|
+
For package publish transactions, the immutable public version tag points to
|
|
835
|
+
the transaction `source_sha`, so registry source metadata such as npm `gitHead`
|
|
836
|
+
and the Git tag identify the same source commit. Protected branches and mutable
|
|
837
|
+
channel tags continue to point to the generated `release_sha`. Recovery accepts
|
|
838
|
+
older completed transactions whose exact tags already point to recorded release
|
|
839
|
+
or release-material SHAs, but new tags are source-bound.
|
|
840
|
+
|
|
834
841
|
Every Buildchain publish model that can run registry side effects must bind the
|
|
835
842
|
publish entrypoint to an immutable `publish-gate/*` source lock. The reusable
|
|
836
843
|
`release-candidate-promote.yml@v3` wrapper creates or updates that gate ref and
|
|
@@ -316,6 +316,40 @@ target; publication itself does not open a Site PR.
|
|
|
316
316
|
}
|
|
317
317
|
```
|
|
318
318
|
|
|
319
|
+
A managed npm package uses the parallel generic contract and passes its path to
|
|
320
|
+
the release-candidate promotion workflow:
|
|
321
|
+
|
|
322
|
+
```json
|
|
323
|
+
{
|
|
324
|
+
"schemaVersion": 1,
|
|
325
|
+
"contract": "kungfu-buildchain-package-release-propagation",
|
|
326
|
+
"sourceNode": "kfd",
|
|
327
|
+
"graph": {
|
|
328
|
+
"schemaVersion": 1,
|
|
329
|
+
"contract": "kungfu-buildchain-release-propagation-graph",
|
|
330
|
+
"nodes": [],
|
|
331
|
+
"edges": []
|
|
332
|
+
},
|
|
333
|
+
"targets": ["site-libkungfu-dev"]
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
```yaml
|
|
338
|
+
with:
|
|
339
|
+
release-propagation-config-path: .buildchain/release-propagation.json
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
The config is read with `git show` from the exact finalized release SHA. Its
|
|
343
|
+
root fields, graph fields, nodes, edges, targets, and execution profiles reject
|
|
344
|
+
unknown fields. After npm publication and the public GitHub Release are
|
|
345
|
+
complete, Buildchain independently reads npm `version`, `dist.integrity`, and
|
|
346
|
+
`gitHead`, resolves annotated Git tags to their commit, downloads the public
|
|
347
|
+
`buildchain.release.json` asset, and compares its bytes with the finalized
|
|
348
|
+
Passport. Only an exact source SHA, tag target, npm `gitHead`, package version,
|
|
349
|
+
integrity, and Passport digest can produce the capture artifact. The promotion
|
|
350
|
+
output `release-propagation-work-artifact` names the restart-safe artifact set.
|
|
351
|
+
No downstream checkout, branch, or pull request is created by this step.
|
|
352
|
+
|
|
319
353
|
Each graph target owns an exact GitHub web-surface execution profile: workflow,
|
|
320
354
|
base and managed branch, lock path, consumer commands, production status URL,
|
|
321
355
|
and production artifact readback URLs. The sealed workflow rejects extra config
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5-alpha.1",
|
|
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",
|