@kungfu-tech/buildchain 4.1.0-alpha.0 → 4.1.0-alpha.2
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/AGENTS.md +30 -41
- package/CONTRIBUTING.md +6 -7
- package/architecture/action-taxonomy.json +5 -21
- package/architecture/agent-change-map.md +74 -56
- package/architecture/build-orchestration.json +8 -1
- package/architecture/ci-lane-change-budget.json +179 -69
- package/architecture/floating-consumer-policy.json +7 -17
- package/architecture/internal-capabilities.json +58 -72
- package/architecture/maintainability-debt.json +138 -52
- package/architecture/maintainability-policy.json +6 -15
- package/architecture/promotion-job-topology.json +39 -20
- package/architecture/release-topology.json +26 -37
- package/architecture/runtime-entry.json +26 -0
- package/architecture/runtime-resume-lineage.json +23 -0
- package/architecture/stage-capsule-qualification.json +2 -2
- package/architecture/universal-workflow-bootstrap.json +10 -25
- package/architecture/universal-workflow-capability-policy.json +61 -0
- package/architecture/universal-workflow-fault-campaign.json +18 -24
- package/architecture/workflow-taxonomy.json +0 -11
- package/contracts/fixtures/{v4-runtime-ref-resume-authority-v1 → runtime-resume-lineage-v2}/scenario.json +2 -3
- package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +2 -2
- package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
- package/contracts/promotion-invocation-v1.schema.json +0 -44
- package/contracts/promotion-request-v1.schema.json +0 -39
- package/contracts/runtime-resume-lineage-v2.schema.json +182 -0
- package/dist/site/buildchain-contract.json +472 -361
- package/dist/site/buildchain-site.json +99 -99
- package/dist/site/capability-registry.json +3 -3
- package/dist/site/cli-registry.json +4 -4
- package/dist/site/controller-registry.json +94 -78
- package/dist/site/kfd-claims.json +224 -343
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +15 -15
- package/dist/site/node-api-registry.json +239 -354
- package/dist/site/page-registry.json +80 -80
- package/dist/site/public-surface-audit.json +203 -254
- package/dist/site/publication-authority-registry.json +1 -24
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +1 -1
- package/dist/site/site-manifest.json +19 -19
- package/dist/site/workflow-registry.json +197 -357
- package/docs/MAP.md +3 -3
- package/docs/auditable-demo.md +4 -4
- package/docs/cli-reference.md +2 -2
- package/docs/code-organization.md +5 -4
- package/docs/controller-evidence.md +2 -2
- package/docs/dev-alpha-candidate-patrol.md +5 -5
- package/docs/dev-delivery-warrant.md +14 -24
- package/docs/engineering-housekeeper.md +3 -3
- package/docs/github-artifact-attestation.md +9 -12
- package/docs/github-governance-authority.md +4 -4
- package/docs/node-api-reference.md +153 -167
- package/docs/publication-artifacts.md +3 -4
- package/docs/publication-authority.md +2 -2
- package/docs/release-candidate.md +21 -27
- package/docs/release-governance.md +10 -10
- package/docs/release-promotion-request.md +11 -18
- package/docs/release-propagation.md +5 -6
- package/docs/release-tail-provider-plane.md +2 -3
- package/docs/reusable-build-surface.md +13 -7
- package/docs/runtime-entry.md +122 -0
- package/docs/runtime-train-validation.md +30 -41
- package/docs/v4-publication-rehearsal.md +5 -5
- package/docs/v4-stage-capsule.md +9 -10
- package/docs/web-surface-deployments.md +16 -20
- package/docs/workflow-catalog.md +0 -1
- package/package.json +6 -6
- package/packages/core/adoption/commands/init-repo.mjs +2 -2
- package/packages/core/adoption/cross-platform-adopter-qualification.js +2 -13
- package/packages/core/adoption/qualification/actions.js +3 -5
- package/packages/core/adoption/qualification/admission.js +2 -3
- package/packages/core/build/artifact/attestation.js +0 -1
- package/packages/core/build/artifact/contracts.js +1 -4
- package/packages/core/build/artifact/store.js +6 -5
- package/packages/core/build/artifact-signing.js +4 -10
- package/packages/core/build/binary/actions.js +15 -9
- package/packages/core/build/binary-publication-dispatch.js +2 -6
- package/packages/core/build/demo/action-context.js +2 -11
- package/packages/core/build/demo/binary-action.js +8 -10
- package/packages/core/build/gate/controller.js +0 -2
- package/packages/core/build/github-attestation/action.js +2 -7
- package/packages/core/build/github-attestation/admission.js +0 -8
- package/packages/core/build/github-attestation/transaction.js +1 -2
- package/packages/core/build/lifecycle/stage-action.js +2 -0
- package/packages/core/build/lifecycle/stage.js +6 -3
- package/packages/core/build/macos-credential-island/dmg-assembly.js +0 -2
- package/packages/core/build/macos-credential-island/lib.js +2 -6
- package/packages/core/build/plan/action-context.js +0 -7
- package/packages/core/build/plan/action.js +7 -11
- package/packages/core/build/plan/admission.js +6 -73
- package/packages/core/build/plan/configuration.js +1 -1
- package/packages/core/build/plan/environment.js +1 -1
- package/packages/core/build/plan/identity.js +1 -5
- package/packages/core/build/plan/resolve.js +7 -1
- package/packages/core/build/recovery/checkpoint.js +158 -0
- package/packages/core/build/recovery/transaction.js +51 -0
- package/packages/core/build/signing/authority-actions.js +2 -11
- package/packages/core/build/signing/control.js +0 -5
- package/packages/core/build/signing/controller-transaction.js +0 -1
- package/packages/core/build/signing/delegation.js +2 -4
- package/packages/core/build/signing/dispatch.js +10 -56
- package/packages/core/build/signing/intake.js +0 -4
- package/packages/core/build/signing/prepare.js +1 -1
- package/packages/core/build/signing/request.js +3 -8
- package/packages/core/build/source/checkout-action.js +6 -10
- package/packages/core/build/source/controller.js +1 -4
- package/packages/core/build/source/lifecycle.js +3 -13
- package/packages/core/build/stage-capsule/actions.js +3 -13
- package/packages/core/build/stage-capsule/campaign/resume.js +10 -5
- package/packages/core/build/stage-capsule/rehearsal/verify.js +3 -4
- package/packages/core/build/stage-capsule-resume-planner.js +0 -1
- package/packages/core/build/summary/aggregation.js +5 -5
- package/packages/core/build/summary/finalization.js +1 -1
- package/packages/core/build/verification/actions.js +3 -12
- package/packages/core/build/verification/runner.js +22 -20
- package/packages/core/consumer/floating-consumer-evidence.js +3 -21
- package/packages/core/consumer/floating-consumer-policy.js +2 -93
- package/packages/core/consumer/floating-consumer-release-passport.js +1 -34
- package/packages/core/consumer/policy-admission.js +1 -3
- package/packages/core/contracts/buildchain-contract.js +12 -146
- package/packages/core/contracts/workflow-yaml-contract.js +11 -1
- package/packages/core/dev-delivery/candidate/admission.js +3 -4
- package/packages/core/dev-delivery/candidate/coordinates.js +0 -8
- package/packages/core/dev-delivery/commands/dev-delivery-request.sh +5 -13
- package/packages/core/dev-delivery/commands/dev-delivery-source-proof-reuse.mjs +0 -3
- package/packages/core/dev-delivery/dev-delivery-contract-surface.js +4 -52
- package/packages/core/dev-delivery/dev-delivery-execution-transfer.js +2 -15
- package/packages/core/dev-delivery/native/action-context.js +4 -32
- package/packages/core/dev-delivery/native/provider-boundary.js +0 -2
- package/packages/core/dev-delivery/native/transactions.js +1 -2
- package/packages/core/dev-delivery/queue/reconciliation-action.js +6 -10
- package/packages/core/dev-delivery/source-proof/predicates.js +0 -6
- package/packages/core/dev-delivery/source-proof/reuse.js +0 -2
- package/packages/core/dev-delivery/source-proof/seal.js +0 -2
- package/packages/core/governance/alpha-candidate/action.js +1 -10
- package/packages/core/governance/audit/actions.js +1 -3
- package/packages/core/governance/audit/collection.js +1 -3
- package/packages/core/governance/audit/identity.js +3 -31
- package/packages/core/governance/audit/transactions.js +2 -4
- package/packages/core/governance/buildchain-publication-authority.js +0 -1
- package/packages/core/governance/commands/audit-github-governance.mjs +3 -2
- package/packages/core/governance/github-governance-authority.js +0 -5
- package/packages/core/governance/receipt-admission.js +0 -15
- package/packages/core/index.js +1 -1
- package/packages/core/observability/controller/identity.js +4 -5
- package/packages/core/observability/controller-evidence.js +5 -10
- package/packages/core/paper/commands/paper.mjs +6 -6
- package/packages/core/paper/operations/plans.js +2 -2
- package/packages/core/paper/operations/provisioning-validation.js +1 -1
- package/packages/core/paper/operations/scaffold-workflows.js +29 -12
- package/packages/core/paper/operations/scaffold.js +97 -69
- package/packages/core/paper/paper-agent-entry.js +0 -11
- package/packages/core/paper/paper-runtime-channels.js +21 -66
- package/packages/core/paper/paper-scaffold-content.js +1 -1
- package/packages/core/paper/paper.js +9 -5
- package/packages/core/paper/publication/candidate.js +0 -9
- package/packages/core/paper/publication-controller.js +2 -4
- package/packages/core/providers/github/artifact-attestation.js +1 -1
- package/packages/core/publication/authority/actions.js +9 -8
- package/packages/core/publication/authority/admission.js +0 -11
- package/packages/core/publication/authority/assembly.js +2 -7
- package/packages/core/publication/authority/control-plane.js +2 -2
- package/packages/core/publication/authority/governance.js +2 -9
- package/packages/core/publication/authority/request.js +7 -2
- package/packages/core/publication/authority/verification.js +3 -18
- package/packages/core/publication/binary/action.js +5 -7
- package/packages/core/publication/candidate/qualification-action.js +1 -6
- package/packages/core/publication/candidate/stage-capsules.js +1 -1
- package/packages/core/publication/npm/preview-action.js +9 -15
- package/packages/core/publication/oci/preview-actions.js +1 -10
- package/packages/core/publication/publication-artifact-candidate.js +2 -2
- package/packages/core/publication/publication-authority.js +2 -2
- package/packages/core/publication/publication-rehearsal-projection.js +3 -3
- package/packages/core/publication/settlement/actions.js +2 -11
- package/packages/core/release/binary/coordinates-action.js +0 -13
- package/packages/core/release/binary/coordinates.js +2 -19
- package/packages/core/release/commands/promotion-channel-router.mjs +12 -56
- package/packages/core/release/commands/resume-from-candidate-run.mjs +2 -3
- package/packages/core/release/dev-alpha-active-release-train.js +0 -5
- package/packages/core/release/line/action.js +2 -13
- package/packages/core/release/next-development/actions.js +2 -5
- package/packages/core/release/passport/consumer-validation.js +1 -28
- package/packages/core/release/promote-candidate/development-source.js +7 -8
- package/packages/core/release/promotion/actions.js +7 -38
- package/packages/core/release/promotion/admission.js +3 -50
- package/packages/core/release/promotion/candidate.js +2 -4
- package/packages/core/release/promotion/channel.js +13 -101
- package/packages/core/release/promotion/qualification-action.js +2 -13
- package/packages/core/release/promotion/routing.js +16 -81
- package/packages/core/release/promotion/selection.js +1 -9
- package/packages/core/release/promotion-request.js +1 -40
- package/packages/core/release/qualification/actions.js +0 -8
- package/packages/core/release/qualification/public-build.js +1 -1
- package/packages/core/release/recovery/candidate.js +15 -21
- package/packages/core/release/recovery/capsules.js +2 -10
- package/packages/core/release/recovery/lineage.js +305 -0
- package/packages/core/release/recovery/provenance.js +1 -2
- package/packages/core/release/recovery/publication.js +4 -14
- package/packages/core/release/recovery/readback.js +19 -32
- package/packages/core/release/recovery/runtime.js +4 -95
- package/packages/core/release/release-candidate-recovery.js +4 -9
- package/packages/core/release/release-candidate.js +2 -5
- package/packages/core/release/reseal/actions.js +3 -22
- package/packages/core/release/reseal/admission.js +0 -2
- package/packages/core/release/reseal/finalize-platform.js +0 -2
- package/packages/core/release/tail-reseal-github.js +1 -2
- package/packages/core/release/tail-reseal-receipt.js +0 -1
- package/packages/core/release/tail-reseal.js +2 -20
- package/packages/core/release/version-state.js +16 -13
- package/packages/core/runtime/buildchain-domain.wasm +0 -0
- package/packages/core/runtime/checkout-identity.js +0 -13
- package/packages/core/runtime/domain-wasm-artifact.js +2 -2
- package/packages/core/runtime/entry/actions.js +121 -0
- package/packages/core/runtime/entry/activation.js +86 -0
- package/packages/core/runtime/entry/github.js +55 -0
- package/packages/core/runtime/entry/recovery.js +37 -0
- package/packages/core/runtime/entry/selection.js +110 -0
- package/packages/core/web/controller.js +1 -1
- package/packages/core/web/publication-admission-action.js +1 -8
- package/packages/core/web/web-surface-publication-candidate.js +2 -5
- package/packages/core/workflow/admission/actions.js +6 -26
- package/packages/core/workflow/admission/recovery.js +3 -43
- package/packages/core/workflow/admission/transactions.js +8 -24
- package/packages/core/workflow/commands/buildchain-cli-help.mjs +1 -1
- package/packages/core/workflow/commands/universal-workflow-engine.mjs +2 -7
- package/packages/core/workflow/dogfood/actions.js +0 -17
- package/packages/core/workflow/engine/action.js +0 -5
- package/packages/core/workflow/engine/conformance.js +1 -1
- package/packages/core/workflow/engine/execution.js +2 -6
- package/packages/core/workflow/engine/identity.js +1 -6
- package/packages/core/workflow/engine/release-environment.js +11 -35
- package/packages/core/workflow/engine/release-promotion.js +2 -2
- package/packages/core/workflow/settlement/actions.js +0 -12
- package/packages/core/workflow/universal-self-dogfood.js +2 -16
- package/packages/core/workflow/universal-workflow-bootstrap.js +16 -241
- package/packages/core/workflow/workflow-taxonomy.mjs +2 -2
- package/scripts/check-dev-delivery-actions.mjs +17 -8
- package/scripts/check-floating-consumer-policy-contract.mjs +6 -6
- package/scripts/check-inventory.mjs +1 -10
- package/scripts/check-public-dogfood-contract.mjs +34 -21
- package/scripts/check-release-topology.mjs +2 -6
- package/scripts/check-runtime-entry.mjs +133 -0
- package/scripts/check-universal-workflow-bootstrap.mjs +45 -281
- package/scripts/check-workflows.sh +0 -7
- package/scripts/generate-bootstrap-admission.mjs +1 -1
- package/scripts/generate-channel-promotion-workflow.mjs +4 -4
- package/scripts/inventory/binary.mjs +4 -4
- package/scripts/inventory/promotion.mjs +5 -3
- package/scripts/runtime-source-boundaries.mjs +70 -0
- package/scripts/site-capability-metadata.mjs +2 -2
- package/scripts/workflow-action-graph.mjs +5 -18
- package/scripts/workflow-self-reference.mjs +20 -0
- package/templates/native-dev-delivery.yml +4 -4
- package/templates/universal-buildchain-bootstrap.yml +12 -2
- package/architecture/runtime-ref-resume-authority.json +0 -64
- package/architecture/universal-workflow-train-admission.json +0 -76
- package/contracts/v4-runtime-ref-resume-authority-v1.schema.json +0 -235
- package/docs/v4-runtime-ref-resume-authority.md +0 -69
- package/packages/core/consumer/channel-selection.js +0 -211
- package/packages/core/consumer/commands/buildchain-channel-router.mjs +0 -81
- package/packages/core/consumer/invocation-selector.js +0 -4
- package/packages/core/consumer/runtime-ref-resume-authority.js +0 -621
- package/packages/core/consumer/workflow-definition-authority.js +0 -64
- package/packages/core/contracts/runtime-contract-action.js +0 -48
- package/packages/core/release/commands/promotion-identity-resolver.mjs +0 -77
- package/packages/core/release/commands/verify-promotion-router-binding.sh +0 -36
- package/packages/core/release/promotion/identities.js +0 -56
- package/packages/core/release/runtime-override-authorization.js +0 -242
- package/packages/core/runtime/commands/runtime-ref-core.mjs +0 -171
- package/packages/core/runtime/provider-closure.js +0 -60
- package/packages/core/runtime/runtime-selection-action.js +0 -34
- package/packages/core/runtime/runtime-selection.js +0 -136
- package/packages/core/runtime/workflow-runtime.js +0 -11
- package/packages/core/workflow/admission/review.js +0 -188
- package/packages/core/workflow/commands/universal-workflow-backflow.mjs +0 -26
- package/packages/core/workflow/installation.js +0 -33
- package/packages/core/workflow/settlement/backflow.js +0 -187
- package/scripts/generate-bootstrap-recovery.mjs +0 -94
- package/templates/bootstrap-recovery/actions/build/source/admit/action.yml +0 -17
- package/templates/bootstrap-recovery/actions/build/source/admit/dist/index.js +0 -63
- package/templates/bootstrap-recovery/actions/runtime/dependencies/install/action.yml +0 -18
- package/templates/bootstrap-recovery/actions/runtime/dependencies/install/dist/index.js +0 -63
- package/templates/bootstrap-recovery/actions/runtime/environment/prepare/action.yml +0 -21
- package/templates/bootstrap-recovery/actions/workflow/admission/inspect/action.yml +0 -27
- package/templates/bootstrap-recovery/actions/workflow/admission/inspect/dist/index.js +0 -64
- package/templates/bootstrap-recovery/actions/workflow/admission/review/action.yml +0 -15
- package/templates/bootstrap-recovery/actions/workflow/admission/review/dist/index.js +0 -65
- package/templates/bootstrap-recovery/actions/workflow/recovery/admit/action.yml +0 -47
- package/templates/bootstrap-recovery/actions/workflow/recovery/execute/action.yml +0 -48
- package/templates/bootstrap-recovery/actions/workflow/recovery/settle/action.yml +0 -54
- package/templates/bootstrap-recovery/actions/workflow/settlement/seal/action.yml +0 -17
- package/templates/bootstrap-recovery/actions/workflow/settlement/seal/dist/index.js +0 -65
- package/templates/bootstrap-recovery/manifest.json +0 -68
- package/templates/bootstrap-recovery/package.json +0 -9
- package/templates/universal-buildchain-bootstrap-recovery.yml +0 -115
|
@@ -156,7 +156,7 @@ jobs:
|
|
|
156
156
|
toolchain-type: config
|
|
157
157
|
verify-command: make check
|
|
158
158
|
artifact-name: observer-declared-timelines
|
|
159
|
-
|
|
159
|
+
contract-lock: .buildchain/contract-lock.json
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
The build-only workflow:
|
|
@@ -212,7 +212,7 @@ on:
|
|
|
212
212
|
|
|
213
213
|
jobs:
|
|
214
214
|
paper-release:
|
|
215
|
-
uses: kungfu-systems/buildchain/.github/workflows/public-release-paper.yml
|
|
215
|
+
uses: kungfu-systems/buildchain/.github/workflows/public-release-paper.yml@v4
|
|
216
216
|
permissions:
|
|
217
217
|
actions: read
|
|
218
218
|
checks: write
|
|
@@ -220,12 +220,11 @@ jobs:
|
|
|
220
220
|
id-token: write
|
|
221
221
|
issues: write
|
|
222
222
|
with:
|
|
223
|
-
buildchain-ref: <exact-buildchain-sha>
|
|
224
223
|
publisher-workflow-path: .github/workflows/public-release-paper.yml
|
|
225
224
|
toolchain-type: config
|
|
226
225
|
verify-command: make check
|
|
227
226
|
artifact-paths: _build/paper-name.pdf
|
|
228
|
-
|
|
227
|
+
contract-lock: .buildchain/contract-lock.json
|
|
229
228
|
secrets:
|
|
230
229
|
BUILDCHAIN_GENERATED_WRITE_APP_CLIENT_ID: ${{ secrets.BUILDCHAIN_GENERATED_WRITE_APP_CLIENT_ID }}
|
|
231
230
|
BUILDCHAIN_GENERATED_WRITE_APP_PRIVATE_KEY: ${{ secrets.BUILDCHAIN_GENERATED_WRITE_APP_PRIVATE_KEY }}
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: B
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
@@ -50,7 +50,7 @@ bound by the manifest digest but excluded from the product-byte set because it c
|
|
|
50
50
|
be finalized after the lifecycle scan. The verifier also compares the PR evidence tree to the
|
|
51
51
|
admitted post-merge source commit tree. It rejects an unknown
|
|
52
52
|
workflow, stale or replayed nonce, runner downgrade, control-plane drift,
|
|
53
|
-
source
|
|
53
|
+
source mismatch, and artifact substitution. A successful result is a
|
|
54
54
|
scoped capability receipt, not a bearer credential.
|
|
55
55
|
|
|
56
56
|
## Runner and control-plane evidence
|
|
@@ -111,11 +111,10 @@ finished uploading evidence, the resolver waits up to ten minutes for the exact
|
|
|
111
111
|
merged PR's successful workflow run and paired artifacts. Polling remains bound
|
|
112
112
|
to the PR/head identity; timeout or a sibling run still fails closed.
|
|
113
113
|
|
|
114
|
-
The public promotion
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
channel tag moving during the run cannot mix two Buildchain revisions.
|
|
114
|
+
The public promotion entry selects one execution runtime through the shared
|
|
115
|
+
[Runtime entry contract](runtime-entry.md). Entry and execution commits may differ.
|
|
116
|
+
Every later job prepares that selection without resolving another Buildchain ref
|
|
117
|
+
or checking entry/runtime SHA equality.
|
|
119
118
|
|
|
120
119
|
## Resume from an existing candidate run
|
|
121
120
|
|
|
@@ -139,12 +138,10 @@ on:
|
|
|
139
138
|
candidate-run-id: { required: true, type: string }
|
|
140
139
|
target-sha: { required: true, type: string }
|
|
141
140
|
expected-tree: { required: true, type: string }
|
|
142
|
-
|
|
143
|
-
buildchain-runtime-sha: { required: true, type: string }
|
|
144
|
-
|
|
141
|
+
runtime-ref: { required: true, type: string }
|
|
145
142
|
jobs:
|
|
146
143
|
resume:
|
|
147
|
-
uses: kungfu-systems/buildchain/.github/workflows/public-release-promote.yml
|
|
144
|
+
uses: kungfu-systems/buildchain/.github/workflows/public-release-promote.yml@v4
|
|
148
145
|
permissions:
|
|
149
146
|
actions: write
|
|
150
147
|
checks: write
|
|
@@ -153,22 +150,20 @@ jobs:
|
|
|
153
150
|
pull-requests: write
|
|
154
151
|
secrets: inherit
|
|
155
152
|
with:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
resume-buildchain-runtime-sha: ${{ inputs.buildchain-runtime-sha }}
|
|
171
|
-
publish-transaction-override: true
|
|
153
|
+
runtime-ref: ${{ inputs.runtime-ref }}
|
|
154
|
+
request-json: >-
|
|
155
|
+
{"schema":"buildchain.promotion-request/v1",
|
|
156
|
+
"channel":"alpha", "target-ref":"alpha/v4/v4.1",
|
|
157
|
+
"target-sha":${{ toJSON(inputs.target-sha) }},
|
|
158
|
+
"artifact-name":"product", "artifact-patterns":"product-package-*",
|
|
159
|
+
"release-candidate-workflow-file":"build.yml",
|
|
160
|
+
"release-candidate-workflow-name":"Build",
|
|
161
|
+
"resume-candidate-repository":${{ toJSON(github.repository) }},
|
|
162
|
+
"resume-candidate-run-id":${{ toJSON(inputs.candidate-run-id) }},
|
|
163
|
+
"resume-expected-workflow-file":"build.yml",
|
|
164
|
+
"resume-expected-workflow-name":"Build",
|
|
165
|
+
"resume-expected-source-tree":${{ toJSON(inputs.expected-tree) }},
|
|
166
|
+
"publish-transaction-override":true}
|
|
172
167
|
```
|
|
173
168
|
|
|
174
169
|
`resume-expected-candidate-root` may replace `resume-expected-source-tree`, or
|
|
@@ -321,8 +316,7 @@ and payload bytes. It can read those inputs through
|
|
|
321
316
|
permission, or provider write permission. Buildchain validates the aggregate
|
|
322
317
|
digest and exact source binding before it seals a capability. Exactly one of
|
|
323
318
|
the supplied aggregate, consumer command, or explicit no-Gate decision is
|
|
324
|
-
allowed. Buildchain still requires caller-owned RC evidence, an exact
|
|
325
|
-
runtime and source SHA, a repository-local publisher workflow, matching npm
|
|
319
|
+
allowed. Buildchain still requires caller-owned RC evidence, an exact source SHA and prepared execution runtime, a repository-local publisher workflow, matching npm
|
|
326
320
|
target/package identity or exact caller-bound GitHub Release target, and a
|
|
327
321
|
qualifying control-plane audit.
|
|
328
322
|
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-09-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-6
|
|
14
14
|
product: Codex
|
|
@@ -250,7 +250,7 @@ Two independent thin workflows continuously qualify the published channels.
|
|
|
250
250
|
runs the root project's real install, build, and verify lifecycle.
|
|
251
251
|
`self-build-stable-dogfood.yml` calls `build.yml@v4` with only the nested fixture's
|
|
252
252
|
`config-path`, including native and Linux container builds. Project settings
|
|
253
|
-
live in TOML; the
|
|
253
|
+
live in TOML; the selected runtime records its execution SHA and configuration
|
|
254
254
|
root into the build receipts. Separate workflow validation allows each channel
|
|
255
255
|
to advance independently during a breaking producer-first release.
|
|
256
256
|
|
|
@@ -631,12 +631,12 @@ complete interface are bound into `contractRoot`; the receipt additionally
|
|
|
631
631
|
binds the caller commit/tree and both workflow digests.
|
|
632
632
|
|
|
633
633
|
```sh
|
|
634
|
-
node .buildchain/
|
|
634
|
+
node .buildchain/runtime/packages/core/contracts/commands/workflow-call-contract.mjs check \
|
|
635
635
|
--caller-root . \
|
|
636
636
|
--caller-workflow .github/workflows/self-release-new-version-compat.yml \
|
|
637
637
|
--caller-repository kungfu-systems/example \
|
|
638
638
|
--job promote \
|
|
639
|
-
--callee-root .buildchain/
|
|
639
|
+
--callee-root .buildchain/runtime \
|
|
640
640
|
--callee-workflow .github/workflows/public-release-promote.yml \
|
|
641
641
|
--callee-repository kungfu-systems/buildchain \
|
|
642
642
|
--trusted-event workflow_dispatch \
|
|
@@ -645,11 +645,11 @@ node .buildchain/workflow-contract-runtime/packages/core/contracts/commands/work
|
|
|
645
645
|
--output .buildchain/workflow-call-receipts/release-new-version.json
|
|
646
646
|
```
|
|
647
647
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
diagnostic and
|
|
652
|
-
|
|
648
|
+
Use the runtime prepared by the central entry for this offline contract audit.
|
|
649
|
+
The caller persists a floating entry; its resolved API definition is distinct
|
|
650
|
+
from the selected execution runtime. To accept an intentional contract change,
|
|
651
|
+
review the full diagnostic and source coordinates before replacing the committed
|
|
652
|
+
contract root. This audit does not add a runtime-SHA equality gate to execution.
|
|
653
653
|
Local pre-commit rehearsal may add `--allow-dirty`; that result is marked
|
|
654
654
|
`receiptReusable: false` and cannot replace the clean exact-source receipt.
|
|
655
655
|
|
|
@@ -662,7 +662,7 @@ command = "cargo test --workspace --locked"
|
|
|
662
662
|
```
|
|
663
663
|
|
|
664
664
|
Consumers that want Buildchain to own the check wrapper can call
|
|
665
|
-
`.github/workflows/public-build-check.yml@
|
|
665
|
+
`.github/workflows/public-build-check.yml@v4`. The wrapper runs the declared
|
|
666
666
|
`lifecycle.install` and `lifecycle.verify` stages and fails the `check` job when
|
|
667
667
|
either declaration is missing or the command exits non-zero.
|
|
668
668
|
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: B
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-09-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-6
|
|
14
14
|
product: Codex
|
|
@@ -43,22 +43,15 @@ Serialize dynamic values with `toJSON` so quotes, newlines, numbers and booleans
|
|
|
43
43
|
retain their original meaning. Permissions remain an explicit caller responsibility;
|
|
44
44
|
an input cannot grant a job credentials or provider authority.
|
|
45
45
|
|
|
46
|
-
The public workflow
|
|
47
|
-
|
|
46
|
+
The public workflow selects one runtime through the central runtime entry, admits
|
|
47
|
+
the consumer source and constructs the internal
|
|
48
48
|
[`promotion-invocation-v1.schema.json`](../contracts/promotion-invocation-v1.schema.json)
|
|
49
|
-
document
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
with their separate job permissions.
|
|
49
|
+
document. QUALIFY, APPLY and SETTLE prepare that selected runtime and retain their
|
|
50
|
+
separate job permissions. Later nodes validate source, artifact and publication
|
|
51
|
+
evidence without comparing Buildchain SHAs.
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
The source-owned promotion API uses the caller's exact defining commit. Its
|
|
60
|
-
consumer lock roots describe published external dependencies; they do not claim
|
|
61
|
-
that the new local API is compatible with a previously published workflow. The
|
|
62
|
-
source-owned path authenticates Git content instead of granting a historical
|
|
63
|
-
compatibility exception. External floating calls still require selected-lock
|
|
64
|
-
compatibility with the resolved public workflow.
|
|
53
|
+
Buildchain dogfood and external consumers use the same `@v4` or `@v4-alpha`
|
|
54
|
+
public entry. The entry commit owns the API shell; the selected runtime owns
|
|
55
|
+
business actions, modules and resources. A transient `runtime-ref` can select a
|
|
56
|
+
repaired train while preserving the original publication source and evidence.
|
|
57
|
+
See [Runtime entry](runtime-entry.md) for selection precedence and recovery.
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-09-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-6
|
|
14
14
|
product: Codex
|
|
@@ -520,10 +520,9 @@ branch or a concurrent incompatible update fails; the workflow does not replace
|
|
|
520
520
|
its history. The controller retains the exact branch reconciliation and PR
|
|
521
521
|
coordinates.
|
|
522
522
|
|
|
523
|
-
The
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
downstream repository and writes the exact lock. If
|
|
523
|
+
The central entry prepares `.buildchain/runtime` once for each execution job.
|
|
524
|
+
The selected runtime owns the propagation plan and lock write; the downstream
|
|
525
|
+
repository checkout is the consumer source. If
|
|
527
526
|
`downstream-update-command` is set, Buildchain runs that consumer-owned command
|
|
528
527
|
after writing the lock and exposes the exact lock path, lock SHA-256,
|
|
529
528
|
propagation key, branch, and upstream release JSON as
|
|
@@ -550,7 +549,7 @@ publication, deployment, and readback entrypoints. A byte-identical rerun is an
|
|
|
550
549
|
explicit successful no-op, never a synthetic completion.
|
|
551
550
|
|
|
552
551
|
For unreleased runtime validation, keep the caller's reusable workflow reference
|
|
553
|
-
on `@
|
|
552
|
+
on `@v4` and pass a temporary train through `runtime-ref`.
|
|
554
553
|
|
|
555
554
|
## kfd to site-libkungfu-dev
|
|
556
555
|
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
@@ -55,9 +55,8 @@ jobs:
|
|
|
55
55
|
release-tail:
|
|
56
56
|
permissions:
|
|
57
57
|
contents: write
|
|
58
|
-
uses: kungfu-systems/buildchain/.github/workflows/public-release-tail.yml
|
|
58
|
+
uses: kungfu-systems/buildchain/.github/workflows/public-release-tail.yml@v4
|
|
59
59
|
with:
|
|
60
|
-
buildchain-ref: <exact-buildchain-sha>
|
|
61
60
|
declaration-path: .buildchain/release-tail/declaration.json
|
|
62
61
|
provider-bindings-path: .buildchain/release-tail/provider-bindings.json
|
|
63
62
|
execute: true
|
|
@@ -34,11 +34,16 @@ jobs:
|
|
|
34
34
|
uses: kungfu-systems/buildchain/.github/workflows/build.yml@v4
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Use `@v4-alpha`
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
`
|
|
41
|
-
|
|
37
|
+
Use `@v4-alpha` for the alpha entry. The entry selects the execution runtime
|
|
38
|
+
from a transient `runtime-ref`, the selected `contract-lock`, or its own commit
|
|
39
|
+
by default. The build API also accepts `config-path` and `resume-run-id`;
|
|
40
|
+
`runtime-selection` transports the entry decision through nested workflows.
|
|
41
|
+
All project commands and build options remain in TOML.
|
|
42
|
+
|
|
43
|
+
A new recovery dispatch can pass a repaired train and the original failed run
|
|
44
|
+
ID through the same entry. It restores matching retained build outputs, executes
|
|
45
|
+
remaining verification and reads back provider effects. An entry defect requires
|
|
46
|
+
an upgraded published entry and a full run. See [Runtime entry](runtime-entry.md).
|
|
42
47
|
|
|
43
48
|
## Project discovery
|
|
44
49
|
|
|
@@ -118,8 +123,9 @@ Other optional project sections are:
|
|
|
118
123
|
| `build.evidence` | Repository files containing gate and candidate-family evidence |
|
|
119
124
|
|
|
120
125
|
Declarative signing targets continue to belong to `[signing.artifacts]`.
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
Signing uses `public-release-signing-authority.yml@v4`, passes the selected runtime
|
|
127
|
+
through its runtime parameter and retains the protected
|
|
128
|
+
`buildchain-artifact-signing` environment.
|
|
123
129
|
Credentials, authority profiles and signer identities cannot be supplied through
|
|
124
130
|
that declaration. See [Release Candidate](release-candidate.md)
|
|
125
131
|
and [GitHub Artifact Attestation](github-artifact-attestation.md).
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: draft
|
|
3
|
+
period: ongoing
|
|
4
|
+
theme: unified-runtime-entry
|
|
5
|
+
doc_type: implementation-contract
|
|
6
|
+
source_level: user-consensus
|
|
7
|
+
confidence: high
|
|
8
|
+
sensitivity: public
|
|
9
|
+
evidence_grade: B
|
|
10
|
+
review_state: unreviewed
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
|
+
ai_provenance:
|
|
13
|
+
model_family: GPT-6
|
|
14
|
+
product: Codex
|
|
15
|
+
generated_at: 2026-09-11
|
|
16
|
+
visible_context: Explicit user-approved runtime selection, recovery and alpha publication requirements.
|
|
17
|
+
invisible_context_boundary: This contract does not claim implementation or hosted qualification is complete.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Runtime entry contract
|
|
21
|
+
|
|
22
|
+
Consumers persist a public workflow reference at `@v4` or `@v4-alpha`.
|
|
23
|
+
GitHub resolves that entry to a commit. The entry selects execution runtime X
|
|
24
|
+
from an explicit transient parameter, the selected contract lock, or the entry
|
|
25
|
+
commit default, in that order. The entry commit and runtime commit may differ.
|
|
26
|
+
|
|
27
|
+
`actions/runtime/environment/prepare` is the sole runtime preparation owner.
|
|
28
|
+
Selection is resolved once per execution. Each executing job prepares that
|
|
29
|
+
selected runtime through the same implementation. Business workflows and
|
|
30
|
+
actions cannot acquire, replace, reselect or install their own Buildchain
|
|
31
|
+
runtime. All business composites, JavaScript modules, WASM and resources come
|
|
32
|
+
from X. Runtime identity is retained as provenance; subsequent business nodes
|
|
33
|
+
do not compare Buildchain SHAs or require equality with the workflow commit.
|
|
34
|
+
|
|
35
|
+
A runtime failure can start a recovery execution through the same public
|
|
36
|
+
entry with a transient repaired train branch or tag. The new execution selects
|
|
37
|
+
runtime Y and retains the original task, source and evidence. Valid completed
|
|
38
|
+
results can be reused; provider effects require readback before further writes.
|
|
39
|
+
Switching runtimes does not automatically qualify all previous results for reuse.
|
|
40
|
+
Neither the persisted caller nor its contract lock needs a train rewrite.
|
|
41
|
+
|
|
42
|
+
An entry failure is repaired by publishing and adopting a corrected entry and
|
|
43
|
+
starting a complete run. Recovering an invalid entry is not a runtime feature.
|
|
44
|
+
Buildchain self-dogfood uses exactly the same consumer contract and has no
|
|
45
|
+
repository-specific execution or recovery route.
|
|
46
|
+
|
|
47
|
+
Source checkouts are separate business inputs. Building Buildchain itself may
|
|
48
|
+
check out its source, but that source cannot implicitly replace the selected
|
|
49
|
+
execution runtime. Source, artifact and publication-effect checks retain their
|
|
50
|
+
business meaning; they do not reintroduce downstream Buildchain SHA checks.
|
|
51
|
+
|
|
52
|
+
Acceptance requires a complete workflow/action acquisition inventory, enforced
|
|
53
|
+
single preparation ownership, different entry/runtime execution, train recovery,
|
|
54
|
+
platform and multi-job qualification, and validation of the published consumer
|
|
55
|
+
entry. A source test or a successful package import alone is insufficient.
|
|
56
|
+
|
|
57
|
+
## Consumer build and recovery
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
on:
|
|
61
|
+
push:
|
|
62
|
+
workflow_dispatch:
|
|
63
|
+
inputs:
|
|
64
|
+
runtime-ref:
|
|
65
|
+
description: Optional repaired train for this execution
|
|
66
|
+
default: ""
|
|
67
|
+
type: string
|
|
68
|
+
resume-run-id:
|
|
69
|
+
description: Original failed build run to recover
|
|
70
|
+
default: ""
|
|
71
|
+
type: string
|
|
72
|
+
jobs:
|
|
73
|
+
build:
|
|
74
|
+
uses: kungfu-systems/buildchain/.github/workflows/build.yml@v4
|
|
75
|
+
with:
|
|
76
|
+
runtime-ref: ${{ inputs.runtime-ref || '' }}
|
|
77
|
+
resume-run-id: ${{ inputs.resume-run-id || '' }}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Ordinary executions use `.buildchain/contract-lock.json`; the alpha entry defaults
|
|
81
|
+
to `.buildchain/alpha-contract-lock.json`. `contract-lock` selects another relative
|
|
82
|
+
lock path. A missing default lock falls back to the entry commit; an invalid lock
|
|
83
|
+
or an unreadable source fails preparation. A supplied runtime parameter overrides
|
|
84
|
+
the lock and requires caller repository write authority. For `workflow_dispatch`,
|
|
85
|
+
GitHub enforces repository Actions write permission before creating the run,
|
|
86
|
+
including calls using installation tokens. The entry uses that authorization;
|
|
87
|
+
an installation bot does not need to be a human repository collaborator.
|
|
88
|
+
Other event types retain the entry's write, maintain or admin collaborator check.
|
|
89
|
+
See GitHub's [workflow dispatch authorization](https://docs.github.com/en/rest/actions/workflows#create-a-workflow-dispatch-event).
|
|
90
|
+
Branches and tags are resolved to an immutable commit during selection.
|
|
91
|
+
|
|
92
|
+
For a Buildchain runtime fault, dispatch the same consumer workflow with
|
|
93
|
+
`runtime-ref: train/v4/v4.1/<repair>` and the original `resume-run-id`. The entry
|
|
94
|
+
retains the original source commit and rejects unrelated workflows or fork runs.
|
|
95
|
+
Install hydrates the new workspace; completed build outputs are restored only
|
|
96
|
+
when source, configuration, platform, tools, artifact producer and all retained
|
|
97
|
+
bytes qualify. The remaining verification runs with the repaired runtime.
|
|
98
|
+
Existing provider effects use their transaction evidence and live readbacks.
|
|
99
|
+
A failed-job rerun cannot supply new inputs; recovery therefore starts a new run.
|
|
100
|
+
|
|
101
|
+
`runtime-selection` is an internal reusable-workflow transport for an already
|
|
102
|
+
selected runtime. Components forward it unchanged instead of resolving another
|
|
103
|
+
reference. Consumers normally supply `runtime-ref` or a lock, not this transport.
|
|
104
|
+
|
|
105
|
+
Nested components preserve the selected runtime and contract metadata without
|
|
106
|
+
re-reading the lock or comparing the runtime SHA. The internal transport carries
|
|
107
|
+
a trusted entry output; consumer source binding and override authorization remain
|
|
108
|
+
entry concerns. Recovery selectors request `actions: read` to read the original
|
|
109
|
+
run in private repositories as well as public repositories.
|
|
110
|
+
|
|
111
|
+
Business adapters also keep the runtime installation directory separate from the
|
|
112
|
+
consumer workspace. Queue reconciliation, npm preview, runner qualification and
|
|
113
|
+
binary packaging read consumer source from the workspace while executing selected
|
|
114
|
+
runtime code. Directory equality is not an admission rule; source SHA and artifact
|
|
115
|
+
containment checks still apply. The architecture gate parses business JavaScript
|
|
116
|
+
and rejects direct or aliased runtime/source directory equality comparisons.
|
|
117
|
+
|
|
118
|
+
Publication authority adapters take runtime repository and revision provenance
|
|
119
|
+
from the prepared entry selection. Consumer requests provide source, artifact
|
|
120
|
+
and effect authority; they do not supply or readmit a Buildchain SHA. Governance
|
|
121
|
+
and sealed publication evidence retain the selected runtime as provenance while
|
|
122
|
+
validating their own source, policy and provider bindings.
|
|
@@ -18,44 +18,33 @@ ai_provenance:
|
|
|
18
18
|
|
|
19
19
|
# Runtime Train Validation
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
Release and recovery entry points retain their own bounded runtime admission
|
|
53
|
-
contracts. Their runtime override capability does not extend to ordinary builds.
|
|
54
|
-
Follow [Release Flow](release-flow.md) and the particular entry point's contract;
|
|
55
|
-
a diagnostic train does not authorize publication, signing, or floating-ref
|
|
56
|
-
movement. Preserve existing source locks, exact candidate lineage and terminal
|
|
57
|
-
receipts when recovering a release.
|
|
58
|
-
|
|
59
|
-
The Buildchain self-build callers exercise the public floating channels using
|
|
60
|
-
root or fixture TOML. They do not commit a private runtime selector to qualify
|
|
61
|
-
that channel.
|
|
21
|
+
A train repairs the execution runtime without changing the consumer's durable
|
|
22
|
+
public entry. All public workflows, including ordinary builds, use the same
|
|
23
|
+
[Runtime entry contract](runtime-entry.md). The transient runtime parameter
|
|
24
|
+
wins over the consumer lock. Buildchain dogfood follows this same path.
|
|
25
|
+
|
|
26
|
+
## Validate a runtime change
|
|
27
|
+
|
|
28
|
+
1. Commit the candidate with its action bundles, WASM and runtime contract.
|
|
29
|
+
2. Publish the candidate at `train/v4/v4.1/<capability>`.
|
|
30
|
+
3. Dispatch the consumer's existing public entry with `runtime-ref` set to that
|
|
31
|
+
train. Record the selected runtime, consumer source and resulting evidence.
|
|
32
|
+
4. After checks and independent review, merge into protected Dev and publish
|
|
33
|
+
the requested Alpha. Qualify the published entry before Stable promotion.
|
|
34
|
+
|
|
35
|
+
Train selection is a trusted non-persistent runtime input. It never grants
|
|
36
|
+
publication or signing authority by itself; those business effects retain their
|
|
37
|
+
provider credentials, capability constraints and readback requirements.
|
|
38
|
+
|
|
39
|
+
## Recover a runtime failure
|
|
40
|
+
|
|
41
|
+
Start a new dispatch through the same public entry with the repaired train.
|
|
42
|
+
For builds, supply `resume-run-id`; for release promotion, preserve the original
|
|
43
|
+
candidate run and transaction in the typed request. The entry prepares runtime
|
|
44
|
+
Y while the task keeps its original source and valid completed evidence.
|
|
45
|
+
A GitHub failed-job rerun does not change its inputs and cannot select a new
|
|
46
|
+
runtime. Do not persist the train into the caller workflow or contract lock.
|
|
47
|
+
|
|
48
|
+
If the public entry itself is defective, publish and adopt the corrected entry
|
|
49
|
+
and start a full run. Copied consumer recovery packages and alternate recovery
|
|
50
|
+
workflows are not part of the runtime contract.
|
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: self-reviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
@@ -107,13 +107,13 @@ effect_default = "disabled"
|
|
|
107
107
|
The public reusable
|
|
108
108
|
[`public-release-tail.yml`](../.github/workflows/public-release-tail.yml) accepts the same
|
|
109
109
|
capsule, candidate root, mode, state and evidence paths. Before publication,
|
|
110
|
-
Buildchain dogfoods that public surface through
|
|
111
|
-
|
|
110
|
+
Buildchain dogfoods that public surface through the same floating `@v4` entry
|
|
111
|
+
as external consumers. The shared entry selects the runtime from the transient
|
|
112
|
+
parameter, consumer lock, or entry default, and prepares it in each job. The reusable is
|
|
112
113
|
permission-neutral and the self-dogfood caller stays `contents: read`, passes
|
|
113
114
|
`execute: false`, and therefore cannot inherit or synthesize production write
|
|
114
115
|
authority. Effectful production callers must explicitly declare their own
|
|
115
|
-
provider permission. Durable external consumers
|
|
116
|
-
`@v4-alpha` contract. Provider mode additionally requires the exact authority
|
|
116
|
+
provider permission. Durable external consumers use `@v4` or `@v4-alpha`. Provider mode additionally requires the exact authority
|
|
117
117
|
path. Provider bindings come from the capsule; an optional external bindings
|
|
118
118
|
input is accepted only when its canonical exact root and payload equal the
|
|
119
119
|
capsule binding. Ordinary calls default to `simulate`.
|
package/docs/v4-stage-capsule.md
CHANGED
|
@@ -8,7 +8,7 @@ confidence: high
|
|
|
8
8
|
sensitivity: public
|
|
9
9
|
evidence_grade: A
|
|
10
10
|
review_state: unreviewed
|
|
11
|
-
last_reviewed: 2026-
|
|
11
|
+
last_reviewed: 2026-09-11
|
|
12
12
|
ai_provenance:
|
|
13
13
|
model_family: GPT-5
|
|
14
14
|
product: Codex
|
|
@@ -122,7 +122,7 @@ access and produce the same ordered decisions and `planRoot`.
|
|
|
122
122
|
|
|
123
123
|
An eligible completed dependency becomes an exact-root restore; a missing or
|
|
124
124
|
invalid target becomes a rebuild, and only that target's dependency closure is
|
|
125
|
-
scheduled. Source, platform, toolchain,
|
|
125
|
+
scheduled. Source, platform, toolchain, policy, declared-input,
|
|
126
126
|
transformation, output-manifest, and retention changes carry rooted causal
|
|
127
127
|
invalidation fields. Cross-platform reuse, corrupt or partial content, root
|
|
128
128
|
mismatch, and insufficient qualification reject reuse fail closed.
|
|
@@ -139,13 +139,11 @@ Buildchain-owned public reusable workflow,
|
|
|
139
139
|
`.github/workflows/public-build-stage-capsule-canary.yml`. Buildchain's caller is the thin
|
|
140
140
|
`.github/workflows/self-build-public-consumer-dogfood.yml`; it has no steps, copied
|
|
141
141
|
orchestration, local action, direct qualification invocation, or private
|
|
142
|
-
consumer profile.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
be pinned to the exact protected commit. An internal exception is never a
|
|
146
|
-
permitted recursion mechanism.
|
|
142
|
+
consumer profile. The persisted caller uses `@v4`. Candidate validation passes
|
|
143
|
+
`train/v4/v4.1/<capability>` as the transient `runtime-ref` input, through the
|
|
144
|
+
same central selection and preparation entry as external consumers.
|
|
147
145
|
|
|
148
|
-
The called workflow
|
|
146
|
+
The called workflow prepares the selected runtime and reads the consumer's
|
|
149
147
|
tracked `.buildchain/buildchain.toml`, and executes only `install`, `build`,
|
|
150
148
|
and `verify` on GitHub-hosted Linux x64, macOS arm64, and Windows x64 runners.
|
|
151
149
|
Each stage binds its declared command, dependency edge, exact consumer source,
|
|
@@ -157,8 +155,9 @@ paths; it does not copy the campaign orchestration.
|
|
|
157
155
|
The external seed retains `install` and `build` before an intentional late
|
|
158
156
|
`verify` failure. A clean process reads the retained store, restores only the
|
|
159
157
|
exact `build` root, rebuilds `verify`, and compares the result with the fresh
|
|
160
|
-
three-stage aggregate.
|
|
161
|
-
output, platform
|
|
158
|
+
three-stage aggregate. A repaired runtime may continue the campaign. Source,
|
|
159
|
+
command/profile, manifest, summary, output, platform and Capsule integrity drift
|
|
160
|
+
still stop with typed diagnostics; runtime provenance does not invalidate reuse.
|
|
162
161
|
|
|
163
162
|
Qualification compares the declared artifact-manifest and aggregate content
|
|
164
163
|
roots from a fresh full build with the roots assembled from retained and rebuilt
|