@kungfu-tech/buildchain 4.0.1-alpha.3 → 4.0.1-alpha.30
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/actions/release-tail/README.md +8 -0
- package/architecture/ci-lane-change-budget.json +187 -0
- package/architecture/decisions/0002-next-development-transition.md +101 -0
- package/architecture/internal-capabilities.json +117 -8
- package/architecture/maintainability-policy.json +43 -25
- package/architecture/release-tail-contract-inventory.json +5 -2
- package/architecture/v3-core-mechanism-inventory.json +89 -0
- package/architecture/v4-adopter-delivery-parity.json +32 -5
- package/architecture/v4-capability-state-machine-manifest.json +73 -0
- package/architecture/v4-compatibility-facts-parity.json +77 -0
- package/architecture/v4-delivery-warrant-shadow-fixtures.json +15 -6
- package/architecture/v4-floating-consumer-policy.json +6 -0
- package/architecture/v4-next-development-parity.json +192 -0
- package/architecture/v4-publication-rehearsal-parity.json +84 -0
- package/architecture/v4-release-train-parity.json +1 -0
- package/architecture/v4-tail-reseal-parity.json +150 -0
- package/bin/buildchain.mjs +23 -2
- package/bin/internal/adopter-delivery-cli.mjs +70 -0
- package/bin/internal/command-registry.mjs +3 -0
- package/bin/internal/compatibility-facts-cli.mjs +101 -0
- package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +47 -0
- package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +47 -0
- package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +40 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/archive-template.json +19 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json +93 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json +29 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json +26 -0
- package/contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json +50 -0
- package/contracts/fixtures/v4-compatibility-facts-v1/shared.json +1129 -0
- package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +7 -1
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/artifacts/product.bin +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/config/buildchain.toml +5 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/release-activation.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/documents/signed-channel.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/evidence/qualification.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/candidate.json +5 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/candidate/manifests/release-passport.json +1 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/capsule.json +707 -0
- package/contracts/fixtures/v4-publication-rehearsal-v1/offline-vectors.json +27 -0
- package/contracts/fixtures/v4-tail-reseal-v1/valid.json +229 -0
- package/contracts/next-development-request-v1.schema.json +66 -0
- package/contracts/next-development-transition-v1.schema.json +292 -0
- package/contracts/v4-adopter-delivery-v1.schema.json +81 -0
- package/contracts/v4-compatibility-facts-v1.schema.json +230 -0
- package/contracts/v4-floating-consumer-policy-receipt-v1.schema.json +4 -2
- package/contracts/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
- package/contracts/v4-tail-reseal-v1.schema.json +276 -0
- package/dist/site/agent-index.json +4 -0
- package/dist/site/artifact-schemas.json +8 -0
- package/dist/site/buildchain-contract.json +1393 -28
- package/dist/site/buildchain-site.json +477 -32
- package/dist/site/capability-registry.json +17 -14
- package/dist/site/cli-registry.json +159 -1
- package/dist/site/kfd-claims.json +455 -15
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +53 -7
- package/dist/site/node-api-registry.json +13921 -9565
- package/dist/site/page-registry.json +442 -21
- package/dist/site/public-surface-audit.json +440 -11
- package/dist/site/publication-authority-registry.json +44 -8
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +22 -0
- package/dist/site/schemas/release-tail-capabilities-v1.schema.json +199 -0
- package/dist/site/schemas/v4-adopter-delivery-v1.schema.json +81 -0
- package/dist/site/schemas/v4-compatibility-facts-v1.schema.json +230 -0
- package/dist/site/schemas/v4-publication-rehearsal-capsule-v1.schema.json +233 -0
- package/dist/site/site-manifest.json +35 -11
- package/dist/site/workflow-registry.json +142 -8
- package/docs/MAP.md +7 -2
- package/docs/cli-reference.md +193 -0
- package/docs/cli.md +8 -0
- package/docs/dev-alpha-candidate-patrol.md +8 -0
- package/docs/dev-delivery-warrant.md +30 -5
- package/docs/next-development-transition.md +118 -0
- package/docs/node-api-reference.md +578 -285
- package/docs/release-candidate.md +7 -0
- package/docs/release-tail-provider-plane.md +30 -0
- package/docs/v4-adopter-delivery.md +133 -0
- package/docs/v4-compatibility-facts.md +91 -0
- package/docs/v4-publication-rehearsal.md +130 -0
- package/docs/v4-tail-reseal.md +73 -0
- package/docs/versioning.md +4 -3
- package/package.json +30 -6
- package/packages/core/adopter-delivery-passport.js +259 -0
- package/packages/core/adopter-delivery-vectors.js +158 -0
- package/packages/core/adopter-delivery-vectors.json +77 -0
- package/packages/core/buildchain-agent-manuals.js +3 -0
- package/packages/core/buildchain-compatibility-authority.js +336 -0
- package/packages/core/buildchain-compatibility-fact.js +394 -0
- package/packages/core/buildchain-compatibility-facts.json +217 -0
- package/packages/core/buildchain-compatibility-proof.js +566 -0
- package/packages/core/buildchain-config.js +84 -0
- package/packages/core/buildchain-contract.js +93 -141
- package/packages/core/buildchain-delivery-bootstrap.js +240 -0
- package/packages/core/buildchain-delivery-infrastructure.js +164 -0
- package/packages/core/buildchain-delivery-self-dogfood.js +395 -0
- package/packages/core/buildchain-publication-authority.js +1 -0
- package/packages/core/channel-candidate.js +8 -0
- package/packages/core/channel-promotion-baseline.js +55 -0
- package/packages/core/ci-lane-change-budget.js +247 -0
- package/packages/core/dev-alpha-candidate-selection.js +10 -2
- package/packages/core/dev-delivery-execution-transfer.js +21 -1
- package/packages/core/dev-delivery-native-proof.js +43 -27
- package/packages/core/dev-delivery-process-boundary.js +19 -7
- package/packages/core/dev-delivery-provider-heartbeat.js +18 -6
- package/packages/core/dev-delivery-warrant-state.js +32 -10
- package/packages/core/dev-delivery-warrant.js +9 -3
- package/packages/core/github-governance-authority.js +1 -0
- package/packages/core/index.js +5 -0
- package/packages/core/kungfu-temporal-fact.js +557 -0
- package/packages/core/legacy-kfd-adopter-driver.js +167 -0
- package/packages/core/next-development-candidate-reservation.js +186 -0
- package/packages/core/next-development-controller.js +728 -0
- package/packages/core/next-development-projection.js +287 -0
- package/packages/core/next-development-transition.js +738 -0
- package/packages/core/paper-agent-entry.js +11 -5
- package/packages/core/paper.js +16 -5
- package/packages/core/published-delivery-authority.js +266 -0
- package/packages/core/release-candidate-recovery.js +70 -15
- package/packages/core/release-candidate.js +2 -2
- package/packages/core/release-passport.js +36 -9
- package/packages/core/v4-adopter-delivery-parity.js +3 -3
- package/packages/core/v4-adopter-delivery.js +359 -0
- package/packages/core/v4-canonical-contracts.js +5 -0
- package/packages/core/v4-delivery-warrant-read-candidate.js +10 -3
- package/packages/core/v4-floating-consumer-evidence.js +18 -4
- package/packages/core/v4-floating-consumer-policy.js +143 -20
- package/packages/core/v4-floating-consumer-release-passport.js +35 -8
- package/packages/core/v4-publication-rehearsal-capsule.js +468 -0
- package/packages/core/v4-publication-rehearsal-provider-bindings.js +212 -0
- package/packages/core/v4-publication-rehearsal.js +481 -0
- package/packages/core/v4-tail-reseal-contract.js +26 -0
- package/packages/core/v4-tail-reseal-github.js +178 -0
- package/packages/core/v4-tail-reseal-receipt.js +225 -0
- package/packages/core/v4-tail-reseal.js +594 -0
- package/packages/core/workflow-yaml-contract.js +24 -2
- package/scripts/artifact-signing-controller-core.mjs +1 -1
- package/scripts/buildchain-cli-help.mjs +30 -0
- package/scripts/check-ci-lane-change-budget.mjs +100 -0
- package/scripts/check-inventory.mjs +14 -3
- package/scripts/check-v4-floating-consumer-policy-contract.mjs +23 -4
- package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
- package/scripts/dev-delivery-source-proof-replay.mjs +153 -0
- package/scripts/dev-delivery-source-proof-reuse.mjs +13 -97
- package/scripts/dev-delivery-warrant-store.mjs +10 -6
- package/scripts/dev-delivery-warrant.mjs +5 -1
- package/scripts/dev-pr-auto-merge.mjs +1 -1
- package/scripts/dev-pr-delivery-warrant.mjs +1 -0
- package/scripts/dev-pr-prequeue-guard.mjs +0 -18
- package/scripts/dev-qualification-patrol.mjs +9 -9
- package/scripts/dispatch-artifact-signing-authority.mjs +1 -1
- package/scripts/generate-channel-promotion-workflow.mjs +2 -2
- package/scripts/generate-next-development-guidance.mjs +49 -0
- package/scripts/generate-release-candidate-passport.mjs +152 -0
- package/scripts/generate-site-bundle.mjs +46 -3
- package/scripts/init-repo.mjs +22 -4
- package/scripts/next-development-self-dogfood-harness.mjs +460 -0
- package/scripts/next-development-self-dogfood.mjs +597 -0
- package/scripts/next-development-transition.mjs +47 -0
- package/scripts/promotion-channel-router.mjs +4 -4
- package/scripts/release-candidate-anchor-provenance.mjs +99 -0
- package/scripts/release-tail.mjs +51 -3
- package/scripts/release-train-self-dogfood.mjs +94 -92
- package/scripts/resume-from-candidate-run.mjs +560 -30
- package/scripts/site-capability-metadata.mjs +29 -0
- package/scripts/stable-candidate-qualification.mjs +9 -10
- package/scripts/v4-consumer-policy.mjs +5 -5
- package/scripts/v4-publication-rehearsal-fixture.mjs +144 -0
- package/scripts/v4-tail-reseal-macos-rehearsal.mjs +134 -0
- package/scripts/v4-tail-reseal.mjs +416 -0
- package/templates/native-dev-delivery.yml +2 -0
|
@@ -11,3 +11,11 @@ not the adapter, compares the observed subject and target roots, owns retry and
|
|
|
11
11
|
terminal classification, checkpoints state and emits the standardized receipt.
|
|
12
12
|
Tokens remain Action inputs and are never written to the transaction or
|
|
13
13
|
receipt.
|
|
14
|
+
|
|
15
|
+
When `rehearsal-capsule` is supplied, the same Action switches to the v4
|
|
16
|
+
Publication Rehearsal Capsule boundary. `simulate` and `replay` remain
|
|
17
|
+
effect-disabled. `provider` additionally requires exact capsule-bound
|
|
18
|
+
rehearsal authority, consumes only the capsule-rooted data bindings, and
|
|
19
|
+
records every request/readback while still emitting
|
|
20
|
+
`productionAuthority: false` and no Release Passport. See
|
|
21
|
+
[`docs/v4-publication-rehearsal.md`](../../docs/v4-publication-rehearsal.md).
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "buildchain.ci-lane-change-budget/v1",
|
|
3
|
+
"authorityClassification": "repository-policy-enforcement",
|
|
4
|
+
"baseline": {
|
|
5
|
+
"gitRevision": "7fdf0b560670df65929ab2ee833c3d6339372d8a",
|
|
6
|
+
"source": "protected dev/v4/v4.0 before CI lane change-budget enforcement",
|
|
7
|
+
"laneSetRoot": "sha256:5bed17dc265f424e5d528949231146c633be954b8c3c2535ba18aec6ac1465a4",
|
|
8
|
+
"lanes": [
|
|
9
|
+
".github/workflows/.auditable-demo.yml#gate",
|
|
10
|
+
".github/workflows/.auditable-demo.yml#render",
|
|
11
|
+
".github/workflows/.binary-release-assets.yml#publication-authority",
|
|
12
|
+
".github/workflows/.binary-release-assets.yml#publish",
|
|
13
|
+
".github/workflows/.build.yml#anchored-release-preflight",
|
|
14
|
+
".github/workflows/.build.yml#artifact-signing-control",
|
|
15
|
+
".github/workflows/.build.yml#artifact-transfer",
|
|
16
|
+
".github/workflows/.build.yml#build-linux-container",
|
|
17
|
+
".github/workflows/.build.yml#build-native",
|
|
18
|
+
".github/workflows/.build.yml#controller-plan",
|
|
19
|
+
".github/workflows/.build.yml#controller-receipt",
|
|
20
|
+
".github/workflows/.build.yml#credential-island-macos",
|
|
21
|
+
".github/workflows/.build.yml#finalize-artifact-signing",
|
|
22
|
+
".github/workflows/.build.yml#relay-artifacts",
|
|
23
|
+
".github/workflows/.build.yml#resolve-contract",
|
|
24
|
+
".github/workflows/.build.yml#resolve-source",
|
|
25
|
+
".github/workflows/.build.yml#summarize",
|
|
26
|
+
".github/workflows/.build.yml#trust-gate",
|
|
27
|
+
".github/workflows/.bump-minor-version.yml#bump",
|
|
28
|
+
".github/workflows/.declarative-auditable-demo.yml#capture",
|
|
29
|
+
".github/workflows/.declarative-auditable-demo.yml#publish",
|
|
30
|
+
".github/workflows/.declarative-auditable-demo.yml#qualify",
|
|
31
|
+
".github/workflows/.gate-profile.yml#aggregate",
|
|
32
|
+
".github/workflows/.gate-profile.yml#plan",
|
|
33
|
+
".github/workflows/.gate-profile.yml#run-gates",
|
|
34
|
+
".github/workflows/.publication-authority.yml#verify",
|
|
35
|
+
".github/workflows/.release-candidate-promote.yml#controller-plan",
|
|
36
|
+
".github/workflows/.release-candidate-promote.yml#controller-receipt",
|
|
37
|
+
".github/workflows/.release-candidate-promote.yml#github-artifact-attestation",
|
|
38
|
+
".github/workflows/.release-candidate-promote.yml#preflight",
|
|
39
|
+
".github/workflows/.release-candidate-promote.yml#promote",
|
|
40
|
+
".github/workflows/.release-candidate-promote.yml#publication-authority",
|
|
41
|
+
".github/workflows/.release-candidate-promote.yml#publication-plan",
|
|
42
|
+
".github/workflows/.release-candidate-promote.yml#publication-qualification",
|
|
43
|
+
".github/workflows/.release-candidate-promote.yml#publish-github-artifact-attestation-evidence",
|
|
44
|
+
".github/workflows/.release-candidate-promote.yml#qualification-plan",
|
|
45
|
+
".github/workflows/.release-candidate-promote.yml#release-candidate-preflight",
|
|
46
|
+
".github/workflows/.release-docker.yml#retired",
|
|
47
|
+
".github/workflows/.release-elastic-beanstalk.yml#retired",
|
|
48
|
+
".github/workflows/.release-new-version.yml#retired",
|
|
49
|
+
".github/workflows/.release-verify.yml#build",
|
|
50
|
+
".github/workflows/.release-verify.yml#build_local",
|
|
51
|
+
".github/workflows/.release-verify.yml#prepare",
|
|
52
|
+
".github/workflows/.release-verify.yml#verify",
|
|
53
|
+
".github/workflows/.sam-release.yml#retired",
|
|
54
|
+
".github/workflows/.sam-verify.yml#build",
|
|
55
|
+
".github/workflows/.sam-verify.yml#prepare",
|
|
56
|
+
".github/workflows/.sam-verify.yml#verify",
|
|
57
|
+
".github/workflows/.sync-release-page.yml#sync-release-page",
|
|
58
|
+
".github/workflows/.sync-remote-git.yml#sync",
|
|
59
|
+
".github/workflows/.web-surface.yml#apply-input-gate",
|
|
60
|
+
".github/workflows/.web-surface.yml#controller-plan",
|
|
61
|
+
".github/workflows/.web-surface.yml#controller-receipt",
|
|
62
|
+
".github/workflows/.web-surface.yml#external-publication-authority",
|
|
63
|
+
".github/workflows/.web-surface.yml#open-production-release-pr",
|
|
64
|
+
".github/workflows/.web-surface.yml#plan",
|
|
65
|
+
".github/workflows/.web-surface.yml#preview-apply",
|
|
66
|
+
".github/workflows/.web-surface.yml#preview-cleanup",
|
|
67
|
+
".github/workflows/.web-surface.yml#production-apply",
|
|
68
|
+
".github/workflows/.web-surface.yml#publication-authority",
|
|
69
|
+
".github/workflows/.web-surface.yml#publication-decision",
|
|
70
|
+
".github/workflows/.web-surface.yml#release-intent",
|
|
71
|
+
".github/workflows/.web-surface.yml#runtime",
|
|
72
|
+
".github/workflows/.web-surface.yml#staging-apply",
|
|
73
|
+
".github/workflows/.wheel-release.yml#retired",
|
|
74
|
+
".github/workflows/.wheel-verify.yml#build",
|
|
75
|
+
".github/workflows/.wheel-verify.yml#prepare",
|
|
76
|
+
".github/workflows/.wheel-verify.yml#verify",
|
|
77
|
+
".github/workflows/artifact-signing-authority.yml#deliver",
|
|
78
|
+
".github/workflows/artifact-signing-authority.yml#detached",
|
|
79
|
+
".github/workflows/artifact-signing-authority.yml#intake",
|
|
80
|
+
".github/workflows/artifact-signing-authority.yml#macos",
|
|
81
|
+
".github/workflows/artifact-signing-authority.yml#windows",
|
|
82
|
+
".github/workflows/auditable-demo-media-profile-qualification.yml#qualify",
|
|
83
|
+
".github/workflows/auditable-demo.yml#dogfood",
|
|
84
|
+
".github/workflows/auditable-demo.yml#exact-binary",
|
|
85
|
+
".github/workflows/binary-distribution.yml#binary",
|
|
86
|
+
".github/workflows/binary-distribution.yml#dispatch-publication",
|
|
87
|
+
".github/workflows/binary-distribution.yml#passport",
|
|
88
|
+
".github/workflows/binary-distribution.yml#preflight",
|
|
89
|
+
".github/workflows/binary-release-assets.yml#publish",
|
|
90
|
+
".github/workflows/binary-release-assets.yml#resolve",
|
|
91
|
+
".github/workflows/build-surface-fixture.yml#buildchain-package-candidate",
|
|
92
|
+
".github/workflows/build-surface-fixture.yml#libnode-shaped",
|
|
93
|
+
".github/workflows/build.yml#alpha",
|
|
94
|
+
".github/workflows/build.yml#controller-plan",
|
|
95
|
+
".github/workflows/build.yml#controller-receipt",
|
|
96
|
+
".github/workflows/build.yml#override",
|
|
97
|
+
".github/workflows/build.yml#resolve-channel",
|
|
98
|
+
".github/workflows/build.yml#stable",
|
|
99
|
+
".github/workflows/build.yml#summarize",
|
|
100
|
+
".github/workflows/buildchain-alpha-self-dogfood.yml#alpha-consumer",
|
|
101
|
+
".github/workflows/buildchain-alpha-self-dogfood.yml#stable-consumer",
|
|
102
|
+
".github/workflows/buildchain-alpha-self-dogfood.yml#verify-floating-refs",
|
|
103
|
+
".github/workflows/buildchain-candidate-recovery-dogfood-failure.yml#deterministic-startup-router-failure",
|
|
104
|
+
".github/workflows/buildchain-dev-delivery.yml#deliver",
|
|
105
|
+
".github/workflows/buildchain-patrol-daily.yml#patrol",
|
|
106
|
+
".github/workflows/buildchain-patrol-monthly.yml#patrol",
|
|
107
|
+
".github/workflows/buildchain-patrol-weekly.yml#patrol",
|
|
108
|
+
".github/workflows/buildchain-patrol.yml#patrol",
|
|
109
|
+
".github/workflows/buildchain-ref-promotion-recovery.yml#consumer-admission",
|
|
110
|
+
".github/workflows/buildchain-ref-promotion-recovery.yml#promote-alpha-recovery",
|
|
111
|
+
".github/workflows/buildchain-ref-promotion.yml#promote-alpha",
|
|
112
|
+
".github/workflows/buildchain-ref-promotion.yml#promote-stable",
|
|
113
|
+
".github/workflows/buildchain-ref-promotion.yml#reject-invalid-candidate-recovery",
|
|
114
|
+
".github/workflows/buildchain-ref-promotion.yml#reject-invalid-durable-recovery",
|
|
115
|
+
".github/workflows/buildchain-ref-promotion.yml#reject-manual-apply",
|
|
116
|
+
".github/workflows/buildchain-stable-candidate-patrol.yml#patrol",
|
|
117
|
+
".github/workflows/buildchain-stable-candidate-qualification.yml#qualify",
|
|
118
|
+
".github/workflows/candidate-lab.yml#lab",
|
|
119
|
+
".github/workflows/check.yml#check",
|
|
120
|
+
".github/workflows/dev-alpha-candidate-patrol.yml#observe",
|
|
121
|
+
".github/workflows/dev-alpha-candidate-patrol.yml#settle",
|
|
122
|
+
".github/workflows/dev-delivery-warrant-cancel.yml#cancel",
|
|
123
|
+
".github/workflows/dev-delivery-warrant-close.yml#close",
|
|
124
|
+
".github/workflows/dev-merge-queue-governance.yml#reconcile",
|
|
125
|
+
".github/workflows/dev-pr-auto-merge.yml#admission",
|
|
126
|
+
".github/workflows/dev-pr-auto-merge.yml#delivery-heartbeat",
|
|
127
|
+
".github/workflows/dev-pr-auto-merge.yml#merge-dev-prs",
|
|
128
|
+
".github/workflows/dev-pr-auto-merge.yml#native-execution",
|
|
129
|
+
".github/workflows/dev-pr-auto-merge.yml#seal-native-execution",
|
|
130
|
+
".github/workflows/dev-qualification-patrol.yml#mutate",
|
|
131
|
+
".github/workflows/dev-qualification-patrol.yml#observe",
|
|
132
|
+
".github/workflows/engineering-housekeeper-daily.yml#apply",
|
|
133
|
+
".github/workflows/engineering-housekeeper-daily.yml#invalid-apply-gate",
|
|
134
|
+
".github/workflows/engineering-housekeeper-daily.yml#report",
|
|
135
|
+
".github/workflows/engineering-housekeeper-monthly.yml#apply",
|
|
136
|
+
".github/workflows/engineering-housekeeper-monthly.yml#invalid-apply-gate",
|
|
137
|
+
".github/workflows/engineering-housekeeper-monthly.yml#report",
|
|
138
|
+
".github/workflows/engineering-housekeeper-weekly.yml#apply",
|
|
139
|
+
".github/workflows/engineering-housekeeper-weekly.yml#invalid-apply-gate",
|
|
140
|
+
".github/workflows/engineering-housekeeper-weekly.yml#report",
|
|
141
|
+
".github/workflows/engineering-housekeeper.yml#delete-branches",
|
|
142
|
+
".github/workflows/engineering-housekeeper.yml#label-pull-requests",
|
|
143
|
+
".github/workflows/engineering-housekeeper.yml#plan",
|
|
144
|
+
".github/workflows/github-artifact-attestation.yml#attest",
|
|
145
|
+
".github/workflows/github-governance-audit.yml#audit",
|
|
146
|
+
".github/workflows/npm-publish.yml#dry-run",
|
|
147
|
+
".github/workflows/paper-release-sealed.yml#publication-authority",
|
|
148
|
+
".github/workflows/paper-release-sealed.yml#publication-candidate",
|
|
149
|
+
".github/workflows/paper-release-sealed.yml#publish",
|
|
150
|
+
".github/workflows/paper-release.yml#paper-release",
|
|
151
|
+
".github/workflows/paper-release.yml#publication-authority",
|
|
152
|
+
".github/workflows/patrol-daily.yml#patrol",
|
|
153
|
+
".github/workflows/patrol-monthly.yml#patrol",
|
|
154
|
+
".github/workflows/patrol-observed-evidence.yml#publish",
|
|
155
|
+
".github/workflows/patrol-weekly.yml#patrol",
|
|
156
|
+
".github/workflows/publication-artifact.yml#publication",
|
|
157
|
+
".github/workflows/release-candidate-promote.yml#alpha",
|
|
158
|
+
".github/workflows/release-candidate-promote.yml#consumer-admission",
|
|
159
|
+
".github/workflows/release-candidate-promote.yml#resolve-promotion",
|
|
160
|
+
".github/workflows/release-candidate-promote.yml#stable",
|
|
161
|
+
".github/workflows/release-governance-reconcile.yml#reconcile",
|
|
162
|
+
".github/workflows/release-line-bootstrap.yml#bootstrap",
|
|
163
|
+
".github/workflows/release-new-version.yml#buildchain-self-release",
|
|
164
|
+
".github/workflows/release-propagation.yml#propagate",
|
|
165
|
+
".github/workflows/release-tail.yml#release-tail",
|
|
166
|
+
".github/workflows/release-verify.yml#try",
|
|
167
|
+
".github/workflows/release-verify.yml#verify",
|
|
168
|
+
".github/workflows/schedule-purge-artifacts.yml#delete-artifacts",
|
|
169
|
+
".github/workflows/self-hosted-runner-smoke.yml#smoke",
|
|
170
|
+
".github/workflows/stable-candidate-patrol.yml#patrol",
|
|
171
|
+
".github/workflows/v4-adopter-delivery-dogfood.yml#dogfood",
|
|
172
|
+
".github/workflows/v4-adopter-delivery.yml#conformance",
|
|
173
|
+
".github/workflows/v4-adopter-delivery.yml#consumer-admission",
|
|
174
|
+
".github/workflows/v4-public-consumer-dogfood.yml#dogfood",
|
|
175
|
+
".github/workflows/v4-publication-rehearsal-dogfood.yml#rehearsal",
|
|
176
|
+
".github/workflows/v4-stage-capsule-canary.yml#consumer-admission",
|
|
177
|
+
".github/workflows/v4-stage-capsule-canary.yml#qualify",
|
|
178
|
+
".github/workflows/v4-stage-capsule-canary.yml#reconcile",
|
|
179
|
+
".github/workflows/v4-tail-reseal.yml#plan",
|
|
180
|
+
".github/workflows/v4-tail-reseal.yml#platforms",
|
|
181
|
+
".github/workflows/v4-tail-reseal.yml#seal",
|
|
182
|
+
".github/workflows/verify.yml#check",
|
|
183
|
+
".github/workflows/verify.yml#stage-capsule-checkpoints"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"declarations": []
|
|
187
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: accepted
|
|
3
|
+
period: 2026-08-11
|
|
4
|
+
theme: next-development-transition
|
|
5
|
+
doc_type: architecture-decision-record
|
|
6
|
+
source_level: local-files
|
|
7
|
+
confidence: high
|
|
8
|
+
sensitivity: public
|
|
9
|
+
evidence_grade: A
|
|
10
|
+
review_state: self-reviewed
|
|
11
|
+
last_reviewed: 2026-08-11
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ADR 0002: Alpha Publication and Next-development Are Separate Transactions
|
|
15
|
+
|
|
16
|
+
## Status
|
|
17
|
+
|
|
18
|
+
Accepted. This decision is normative for Buildchain promotion controllers and
|
|
19
|
+
for generated consumer guidance.
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
An Alpha publication and preparation of the following development version have
|
|
24
|
+
different trust boundaries. Alpha publication establishes public, immutable
|
|
25
|
+
facts about version N. Preparing N+1 changes repository version material and
|
|
26
|
+
may require a protected pull request or an upstream anchor that does not exist
|
|
27
|
+
when Alpha N completes. Treating both operations as one success condition makes
|
|
28
|
+
a post-publication conflict appear to invalidate a publication that already
|
|
29
|
+
succeeded, and encourages retries to move Alpha refs while repairing Dev.
|
|
30
|
+
|
|
31
|
+
Buildchain supports two legal version models:
|
|
32
|
+
|
|
33
|
+
- `semver` with `next = "auto"`, where N+1 increments the Alpha sequence on
|
|
34
|
+
the same semantic patch; and
|
|
35
|
+
- `anchored` with `next = "manual"`, where no version may be inferred before a
|
|
36
|
+
declared anchor manifest is materialized and rooted.
|
|
37
|
+
|
|
38
|
+
The crossed combinations `semver/manual` and `anchored/auto` have no defined
|
|
39
|
+
meaning and are rejected.
|
|
40
|
+
|
|
41
|
+
## Decision
|
|
42
|
+
|
|
43
|
+
Alpha publication reaches its own terminal success before a next-development
|
|
44
|
+
transition is created. The transition records the completed Alpha exact tag,
|
|
45
|
+
release commit, tree, publication evidence root, and completion time. A
|
|
46
|
+
deterministic idempotency key covers that completed-Alpha root together with
|
|
47
|
+
the repository, legal version model, and the role-separated adapter path set.
|
|
48
|
+
|
|
49
|
+
The independent next-development state machine is:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
planned ----------------------> materialized -> pr-pending -> merged -> verified
|
|
53
|
+
\ \---------------------------> merged
|
|
54
|
+
-> waiting-anchor ----------> materialized
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`semver/auto` derives its target while planned. `anchored/manual` remains in
|
|
58
|
+
`waiting-anchor` until an exact semantic version and the digest of the declared
|
|
59
|
+
anchor manifest are supplied. `pr-pending` is durable incomplete state, not a
|
|
60
|
+
publication failure. Direct materialization may proceed to `merged` or
|
|
61
|
+
`verified` when repository governance does not require a pull request.
|
|
62
|
+
|
|
63
|
+
Every non-initial state transition is compare-and-swap guarded and rooted in
|
|
64
|
+
explicit evidence. Replaying an identical request is a no-op. Alpha outcome is
|
|
65
|
+
always `preserved-success`; no transition may write an Alpha branch, exact tag,
|
|
66
|
+
or floating tag. A controller that needs to repair next-development state may
|
|
67
|
+
write only paths declared by `version.files` and `version.derived_files`; the
|
|
68
|
+
configured anchor manifest is declared read-only authority.
|
|
69
|
+
|
|
70
|
+
## Local adapter boundary
|
|
71
|
+
|
|
72
|
+
The reference adapter is provider-neutral. It reads the checked-in
|
|
73
|
+
`buildchain.toml`, derives the sorted path allowlist, validates the completed
|
|
74
|
+
Alpha and optional anchor, and plans version-file content. It never invokes Git,
|
|
75
|
+
network clients, lifecycle commands, package registries, or provider APIs.
|
|
76
|
+
Mutation requires explicit `--write`, rejects symlinks and path escapes, and is
|
|
77
|
+
limited to configured `version.files`. The standard repository transaction
|
|
78
|
+
adapter passes the exact target in `BUILDCHAIN_VERSION`, permits changes only
|
|
79
|
+
to `version.files` plus `version.derived_files`, runs
|
|
80
|
+
`lifecycle.version-state` when derived files are declared, and then runs
|
|
81
|
+
`lifecycle.verify`. The reference writer fails closed rather than invoking
|
|
82
|
+
those consumer commands because transaction execution is a separate slice.
|
|
83
|
+
For anchored/manual, the consumer must
|
|
84
|
+
materialize the declared manifest first; the adapter verifies its exact digest
|
|
85
|
+
and does not invent or edit upstream anchor data.
|
|
86
|
+
|
|
87
|
+
Preparing development state alone creates no Git tag, GitHub Release, public
|
|
88
|
+
package, or release candidate.
|
|
89
|
+
|
|
90
|
+
## Consequences
|
|
91
|
+
|
|
92
|
+
- A completed Alpha N remains successful when N+1 waits for an anchor, a
|
|
93
|
+
protected PR, merge, or verification.
|
|
94
|
+
- Retrying development preparation cannot republish Alpha N or change any
|
|
95
|
+
Alpha ref.
|
|
96
|
+
- Semver and anchored consumers share one lifecycle while retaining their
|
|
97
|
+
distinct version authority.
|
|
98
|
+
- Provider adapters may project pull-request identifiers and merge evidence,
|
|
99
|
+
but those observations do not become part of the local mutation authority.
|
|
100
|
+
- Generated config, Agent instructions, and public documentation are checked
|
|
101
|
+
against the same constants; projection drift fails repository checks.
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
"bin/internal",
|
|
7
7
|
"packages/core/release-passport.js",
|
|
8
8
|
"packages/core/buildchain-contract.js",
|
|
9
|
+
"packages/core/kungfu-temporal-fact.js",
|
|
10
|
+
"packages/core/buildchain-compatibility-fact.js",
|
|
11
|
+
"packages/core/buildchain-compatibility-authority.js",
|
|
12
|
+
"packages/core/buildchain-compatibility-proof.js",
|
|
9
13
|
"packages/core/workflow-call-contract.js",
|
|
10
14
|
"packages/core/workflow-yaml-contract.js",
|
|
11
15
|
"packages/core/paper-fleet.js",
|
|
@@ -26,6 +30,9 @@
|
|
|
26
30
|
"packages/core/release-tail-provider-plane.js",
|
|
27
31
|
"packages/core/release-tail-provider-adapters.js",
|
|
28
32
|
"packages/core/release-tail-compatibility.js",
|
|
33
|
+
"packages/core/v4-publication-rehearsal-capsule.js",
|
|
34
|
+
"packages/core/v4-publication-rehearsal-provider-bindings.js",
|
|
35
|
+
"packages/core/v4-publication-rehearsal.js",
|
|
29
36
|
"actions/release-tail/index.js",
|
|
30
37
|
"scripts/authorize-promotion-runtime-override.cjs",
|
|
31
38
|
"scripts/build-contract-core.mjs",
|
|
@@ -50,6 +57,12 @@
|
|
|
50
57
|
"crates/buildchain-v4-bridge/src/main.rs",
|
|
51
58
|
"packages/core/v4-runtime-ref-resume-authority.js",
|
|
52
59
|
"packages/core/v4-runtime-selector-persistence.js",
|
|
60
|
+
"packages/core/v4-tail-reseal-contract.js",
|
|
61
|
+
"packages/core/v4-tail-reseal.js",
|
|
62
|
+
"packages/core/v4-tail-reseal-github.js",
|
|
63
|
+
"packages/core/v4-tail-reseal-receipt.js",
|
|
64
|
+
"scripts/v4-tail-reseal.mjs",
|
|
65
|
+
"scripts/v4-tail-reseal-macos-rehearsal.mjs",
|
|
53
66
|
"packages/core/v4-provider-operation-journal.js",
|
|
54
67
|
"packages/core/v4-stage-capsule.js",
|
|
55
68
|
"packages/core/v4-stage-capsule-store.js",
|
|
@@ -105,8 +118,20 @@
|
|
|
105
118
|
"crates/buildchain-v4-contracts/src/stable_publication_fence.rs",
|
|
106
119
|
"packages/core/v4-partial-mutation-recovery-qualification.js",
|
|
107
120
|
"crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs",
|
|
121
|
+
"packages/core/adopter-delivery-gate.js",
|
|
122
|
+
"packages/core/adopter-delivery-passport.js",
|
|
123
|
+
"packages/core/adopter-delivery-vectors.js",
|
|
124
|
+
"packages/core/buildchain-delivery-bootstrap.js",
|
|
125
|
+
"packages/core/buildchain-delivery-infrastructure.js",
|
|
126
|
+
"packages/core/buildchain-delivery-self-dogfood.js",
|
|
127
|
+
"packages/core/kfd-adopter-category-driver.js",
|
|
128
|
+
"packages/core/legacy-kfd-adopter-driver.js",
|
|
129
|
+
"packages/core/published-delivery-authority.js",
|
|
130
|
+
"packages/core/v4-adopter-delivery.js",
|
|
108
131
|
"packages/core/v4-adopter-delivery-parity.js",
|
|
109
|
-
"crates/buildchain-v4-contracts/src/adopter_delivery.rs"
|
|
132
|
+
"crates/buildchain-v4-contracts/src/adopter_delivery.rs",
|
|
133
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts.rs",
|
|
134
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts"
|
|
110
135
|
],
|
|
111
136
|
"ownershipRules": [
|
|
112
137
|
{
|
|
@@ -450,6 +475,22 @@
|
|
|
450
475
|
"docs/release-tail-provider-plane.md"
|
|
451
476
|
]
|
|
452
477
|
},
|
|
478
|
+
{
|
|
479
|
+
"id": "v4-publication-rehearsal",
|
|
480
|
+
"owner": "Buildchain publication rehearsal maintainers",
|
|
481
|
+
"implementation": [
|
|
482
|
+
"packages/core/v4-publication-rehearsal-capsule.js",
|
|
483
|
+
"packages/core/v4-publication-rehearsal-provider-bindings.js",
|
|
484
|
+
"packages/core/v4-publication-rehearsal.js"
|
|
485
|
+
],
|
|
486
|
+
"tests": ["tests/v4-publication-rehearsal.test.mjs"],
|
|
487
|
+
"contracts": [
|
|
488
|
+
"architecture/v4-publication-rehearsal-parity.json",
|
|
489
|
+
"contracts/v4-publication-rehearsal-capsule-v1.schema.json",
|
|
490
|
+
".github/workflows/v4-publication-rehearsal-dogfood.yml",
|
|
491
|
+
"docs/v4-publication-rehearsal.md"
|
|
492
|
+
]
|
|
493
|
+
},
|
|
453
494
|
{
|
|
454
495
|
"id": "v4-delivery-authority",
|
|
455
496
|
"owner": "Buildchain protected delivery maintainers",
|
|
@@ -512,6 +553,65 @@
|
|
|
512
553
|
"docs/dev-delivery-qualification-landing-adr.md"
|
|
513
554
|
]
|
|
514
555
|
},
|
|
556
|
+
{
|
|
557
|
+
"id": "v4-compatibility-facts",
|
|
558
|
+
"owner": "Buildchain compatibility authority maintainers",
|
|
559
|
+
"implementation": [
|
|
560
|
+
"bin/internal/compatibility-facts-cli.mjs",
|
|
561
|
+
"packages/core/kungfu-temporal-fact.js",
|
|
562
|
+
"packages/core/buildchain-compatibility-fact.js",
|
|
563
|
+
"packages/core/buildchain-compatibility-authority.js",
|
|
564
|
+
"packages/core/buildchain-compatibility-proof.js",
|
|
565
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts.rs",
|
|
566
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts/encoding.rs",
|
|
567
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts/fixture.rs",
|
|
568
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts/lifecycle.rs",
|
|
569
|
+
"crates/buildchain-v4-contracts/src/compatibility_facts/verifier.rs"
|
|
570
|
+
],
|
|
571
|
+
"tests": ["tests/v4-compatibility-facts.test.mjs"],
|
|
572
|
+
"contracts": [
|
|
573
|
+
"architecture/v4-compatibility-facts-parity.json",
|
|
574
|
+
"contracts/v4-compatibility-facts-v1.schema.json",
|
|
575
|
+
"contracts/fixtures/v4-compatibility-facts-v1/shared.json",
|
|
576
|
+
"dist/site/schemas/v4-compatibility-facts-v1.schema.json",
|
|
577
|
+
"docs/v4-compatibility-facts.md"
|
|
578
|
+
]
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"id": "v4-adopter-delivery",
|
|
582
|
+
"owner": "Buildchain adopter delivery maintainers",
|
|
583
|
+
"implementation": [
|
|
584
|
+
"bin/internal/adopter-delivery-cli.mjs",
|
|
585
|
+
"packages/core/adopter-delivery-gate.js",
|
|
586
|
+
"packages/core/adopter-delivery-passport.js",
|
|
587
|
+
"packages/core/adopter-delivery-vectors.js",
|
|
588
|
+
"packages/core/buildchain-delivery-bootstrap.js",
|
|
589
|
+
"packages/core/buildchain-delivery-infrastructure.js",
|
|
590
|
+
"packages/core/buildchain-delivery-self-dogfood.js",
|
|
591
|
+
"packages/core/kfd-adopter-category-driver.js",
|
|
592
|
+
"packages/core/legacy-kfd-adopter-driver.js",
|
|
593
|
+
"packages/core/published-delivery-authority.js",
|
|
594
|
+
"packages/core/v4-adopter-delivery.js",
|
|
595
|
+
"packages/core/v4-adopter-delivery-parity.js",
|
|
596
|
+
"crates/buildchain-v4-contracts/src/adopter_delivery.rs"
|
|
597
|
+
],
|
|
598
|
+
"tests": [
|
|
599
|
+
"tests/v4-adopter-delivery.test.mjs",
|
|
600
|
+
"tests/v4-adopter-delivery-parity.test.mjs"
|
|
601
|
+
],
|
|
602
|
+
"contracts": [
|
|
603
|
+
"architecture/v4-adopter-delivery-parity.json",
|
|
604
|
+
"contracts/v4-adopter-delivery-v1.schema.json",
|
|
605
|
+
"contracts/fixtures/v4-adopter-delivery-v1/archive-template.json",
|
|
606
|
+
"contracts/fixtures/v4-adopter-delivery-v1/bootstrap-positive.json",
|
|
607
|
+
"contracts/fixtures/v4-adopter-delivery-v1/gate-positive.json",
|
|
608
|
+
"contracts/fixtures/v4-adopter-delivery-v1/gate-unknown-selector.json",
|
|
609
|
+
"contracts/fixtures/v4-adopter-delivery-v1/offline-vectors.json",
|
|
610
|
+
".github/workflows/v4-adopter-delivery.yml",
|
|
611
|
+
".github/workflows/v4-adopter-delivery-dogfood.yml",
|
|
612
|
+
"docs/v4-adopter-delivery.md"
|
|
613
|
+
]
|
|
614
|
+
},
|
|
515
615
|
{
|
|
516
616
|
"id": "v4-architecture-governance",
|
|
517
617
|
"owner": "Buildchain architecture maintainers",
|
|
@@ -526,9 +626,14 @@
|
|
|
526
626
|
"packages/core/v4-release-activation-shadow.js",
|
|
527
627
|
"packages/core/v4-stable-publication-fence.js",
|
|
528
628
|
"packages/core/v4-partial-mutation-recovery-qualification.js",
|
|
529
|
-
"packages/core/v4-adopter-delivery-parity.js",
|
|
530
629
|
"packages/core/v4-runtime-ref-resume-authority.js",
|
|
531
630
|
"packages/core/v4-runtime-selector-persistence.js",
|
|
631
|
+
"packages/core/v4-tail-reseal-contract.js",
|
|
632
|
+
"packages/core/v4-tail-reseal.js",
|
|
633
|
+
"packages/core/v4-tail-reseal-github.js",
|
|
634
|
+
"packages/core/v4-tail-reseal-receipt.js",
|
|
635
|
+
"scripts/v4-tail-reseal.mjs",
|
|
636
|
+
"scripts/v4-tail-reseal-macos-rehearsal.mjs",
|
|
532
637
|
"packages/core/v4-stage-capsule.js",
|
|
533
638
|
"packages/core/v4-stage-capsule-store.js",
|
|
534
639
|
"packages/core/v4-stage-capsule-local-store.js",
|
|
@@ -546,8 +651,7 @@
|
|
|
546
651
|
"crates/buildchain-v4-contracts/src/release_activation_shadow/model.rs",
|
|
547
652
|
"crates/buildchain-v4-contracts/src/release_activation_shadow/journal.rs",
|
|
548
653
|
"crates/buildchain-v4-contracts/src/stable_publication_fence.rs",
|
|
549
|
-
"crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs"
|
|
550
|
-
"crates/buildchain-v4-contracts/src/adopter_delivery.rs"
|
|
654
|
+
"crates/buildchain-v4-contracts/src/partial_mutation_recovery.rs"
|
|
551
655
|
],
|
|
552
656
|
"tests": [
|
|
553
657
|
"tests/v4-architecture.test.mjs",
|
|
@@ -561,8 +665,9 @@
|
|
|
561
665
|
"tests/v4-stage-capsule-store.test.mjs",
|
|
562
666
|
"tests/v4-platform-stage-checkpoints.test.mjs",
|
|
563
667
|
"tests/v4-stage-capsule-qualification.test.mjs",
|
|
564
|
-
"tests/v4-
|
|
565
|
-
"tests/v4-
|
|
668
|
+
"tests/v4-runtime-ref-resume-authority.test.mjs",
|
|
669
|
+
"tests/v4-tail-reseal.test.mjs",
|
|
670
|
+
"tests/v4-tail-reseal-parity.test.mjs"
|
|
566
671
|
],
|
|
567
672
|
"contracts": [
|
|
568
673
|
"architecture/v4-architecture-constitution.md",
|
|
@@ -579,7 +684,6 @@
|
|
|
579
684
|
"architecture/v4-stage-capsule-store-contract.json",
|
|
580
685
|
"architecture/v4-platform-stage-checkpoints.json",
|
|
581
686
|
"architecture/v4-stage-capsule-qualification.json",
|
|
582
|
-
"architecture/v4-adopter-delivery-parity.json",
|
|
583
687
|
"architecture/v4-runtime-ref-resume-authority.json",
|
|
584
688
|
"contracts/v4-host-contract-v1.schema.json",
|
|
585
689
|
"contracts/v4-provider-operation-journal-v1.schema.json",
|
|
@@ -597,8 +701,13 @@
|
|
|
597
701
|
"contracts/fixtures/v4-partial-mutation-recovery-v1/shared.json",
|
|
598
702
|
"contracts/v4-runtime-ref-resume-authority-v1.schema.json",
|
|
599
703
|
"contracts/fixtures/v4-runtime-ref-resume-authority-v1/scenario.json",
|
|
704
|
+
"architecture/v4-tail-reseal-parity.json",
|
|
705
|
+
"contracts/v4-tail-reseal-v1.schema.json",
|
|
706
|
+
"contracts/fixtures/v4-tail-reseal-v1/valid.json",
|
|
707
|
+
".github/workflows/v4-tail-reseal.yml",
|
|
600
708
|
"docs/v4-stage-capsule.md",
|
|
601
|
-
"docs/v4-runtime-ref-resume-authority.md"
|
|
709
|
+
"docs/v4-runtime-ref-resume-authority.md",
|
|
710
|
+
"docs/v4-tail-reseal.md"
|
|
602
711
|
]
|
|
603
712
|
}
|
|
604
713
|
]
|