@kungfu-tech/buildchain 3.0.9-alpha.9 → 4.0.0-alpha.0
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 +39 -0
- package/README.md +17 -13
- package/actions/promote-buildchain-ref/README.md +0 -10
- package/actions/release-tail/README.md +6 -10
- package/architecture/internal-capabilities.json +502 -0
- package/architecture/maintainability-baseline.json +59 -0
- package/architecture/maintainability-policy.json +1384 -0
- package/architecture/release-tail-contract-inventory.json +587 -0
- package/architecture/v3-core-mechanism-inventory.json +1043 -0
- package/architecture/v3-core-mechanism-inventory.md +67 -0
- package/architecture/v4-adopter-delivery-parity.json +47 -0
- package/architecture/v4-architecture-constitution.md +210 -0
- package/architecture/v4-bootstrap-authority.json +56 -0
- package/architecture/v4-canonical-contract-fixtures.json +105 -0
- package/architecture/v4-capability-state-machine-manifest.json +480 -0
- package/architecture/v4-capability-state-machine-manifest.schema.json +202 -0
- package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.json +830 -0
- package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.md +223 -0
- package/architecture/v4-delivery-warrant-shadow-bootstrap-plan.schema.json +318 -0
- package/architecture/v4-delivery-warrant-shadow-fixtures.json +227 -0
- package/architecture/v4-delivery-warrant-shadow-fixtures.schema.json +67 -0
- package/architecture/v4-exception-ledger.json +5 -0
- package/architecture/v4-exception-ledger.schema.json +56 -0
- package/architecture/v4-partial-mutation-recovery-qualification.json +65 -0
- package/architecture/v4-platform-stage-checkpoints.json +97 -0
- package/architecture/v4-provider-operation-journal-contract.json +113 -0
- package/architecture/v4-release-activation-shadow-domain.json +61 -0
- package/architecture/v4-release-train-parity.json +68 -0
- package/architecture/v4-rust-libnode-bridge-evaluation.json +107 -0
- package/architecture/v4-rust-libnode-bridge-spike.md +85 -0
- package/architecture/v4-stable-publication-fence.json +66 -0
- package/architecture/v4-stage-capsule-contract.json +90 -0
- package/architecture/v4-stage-capsule-qualification.json +99 -0
- package/architecture/v4-stage-capsule-resume-planner.json +52 -0
- package/architecture/v4-stage-capsule-store-contract.json +72 -0
- package/bin/buildchain.mjs +15 -10
- package/contracts/auditable-demo-scenario-v1.schema.json +1 -1
- package/contracts/buildchain-v2-residuals-v1.json +2 -2
- package/contracts/fixtures/v4-delivery-warrant-trace-v1/golden.json +158 -0
- package/contracts/fixtures/v4-delivery-warrant-trace-v1/property.json +380 -0
- package/contracts/fixtures/v4-delivery-warrant-trace-v1/replay.json +163 -0
- package/contracts/fixtures/v4-partial-mutation-recovery-v1/shared.json +155 -0
- package/contracts/fixtures/v4-provider-operation-journal-v1/shared.json +457 -0
- package/contracts/fixtures/v4-provider-readback-idempotency-v1/shared.json +682 -0
- package/contracts/fixtures/v4-release-activation-shadow-v1/shared.json +53 -0
- package/contracts/fixtures/v4-stable-publication-fence-v1/shared.json +56 -0
- package/contracts/fixtures/v4-stage-capsule-resume-v1/late-platform-failure.json +176 -0
- package/contracts/fixtures/v4-stage-capsule-store-v1/shared.json +132 -0
- package/contracts/fixtures/v4-stage-capsule-v1/shared.json +111 -0
- package/contracts/v4-canonical-contracts-v1.schema.json +182 -0
- package/contracts/v4-delivery-warrant-semantic-diff-report-v1.schema.json +284 -0
- package/contracts/v4-delivery-warrant-trace-v1.schema.json +215 -0
- package/contracts/v4-host-contract-v1.schema.json +135 -0
- package/contracts/v4-partial-mutation-recovery-v1.schema.json +168 -0
- package/contracts/v4-provider-operation-journal-v1.schema.json +381 -0
- package/contracts/v4-release-activation-shadow-v1.schema.json +186 -0
- package/contracts/v4-stable-publication-fence-v1.schema.json +125 -0
- package/contracts/v4-stage-capsule-resume-v1.schema.json +225 -0
- package/contracts/v4-stage-capsule-store-v1.schema.json +154 -0
- package/contracts/v4-stage-capsule-v1.schema.json +178 -0
- package/crates/buildchain-v4-bridge/Cargo.lock +213 -0
- package/crates/buildchain-v4-bridge/Cargo.toml +12 -0
- package/crates/buildchain-v4-bridge/src/main.rs +495 -0
- package/dist/site/agent-index.json +0 -4
- package/dist/site/artifact-schemas.json +0 -8
- package/dist/site/buildchain-contract.json +103 -397
- package/dist/site/buildchain-site.json +302 -386
- package/dist/site/capability-registry.json +9 -11
- package/dist/site/cli-registry.json +8 -53
- package/dist/site/controller-registry.json +48 -8
- package/dist/site/kfd-claims.json +129 -167
- package/dist/site/kfd-upstream-aggregate.json +9 -9
- package/dist/site/manual-registry.json +18 -49
- package/dist/site/node-api-registry.json +4345 -7345
- package/dist/site/page-registry.json +278 -346
- package/dist/site/public-surface-audit.json +85 -404
- package/dist/site/publication-authority-registry.json +11 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +3 -9
- package/dist/site/schemas/kfd-support-projection-v1.schema.json +106 -0
- package/dist/site/site-manifest.json +22 -38
- package/dist/site/workflow-registry.json +78 -35
- package/docs/MAP.md +8 -5
- package/docs/auditable-demo.md +2 -2
- package/docs/aws-us-elastic-runner-burst-plane.md +7 -59
- package/docs/cli-reference.md +15 -213
- package/docs/cli.md +14 -14
- package/docs/dev-alpha-candidate-patrol.md +3 -11
- package/docs/dev-delivery-warrant.md +29 -194
- package/docs/engineering-housekeeper.md +12 -4
- package/docs/getting-started.md +1 -1
- package/docs/install.md +5 -5
- package/docs/kfd-support.md +2 -7
- package/docs/lifecycle-protocol.md +2 -4
- package/docs/node-api-reference.md +414 -554
- package/docs/release-flow.md +31 -31
- package/docs/release-governance.md +16 -28
- package/docs/release-passport.md +2 -15
- package/docs/release-tail-contract.md +13 -6
- package/docs/release-tail-provider-plane.md +13 -19
- package/docs/release-train.md +4 -4
- package/docs/reusable-build-surface.md +14 -27
- package/docs/site-bundle-contract.md +1 -5
- package/docs/stable-candidate-patrol.md +7 -7
- package/docs/v4-canonical-contracts.md +92 -0
- package/docs/v4-delivery-warrant-read-candidate.md +73 -0
- package/docs/v4-delivery-warrant-semantic-diff.md +75 -0
- package/docs/v4-production-release.md +63 -0
- package/docs/v4-stage-capsule.md +193 -0
- package/docs/versioning.md +3 -5
- package/package.json +19 -19
- package/packages/core/adopter-delivery-gate.js +576 -0
- package/packages/core/adopter-delivery-json.js +66 -0
- package/packages/core/artifact-signing.js +0 -61
- package/packages/core/artifact-verification-envelope.js +5 -5
- package/packages/core/build-facts.js +12 -4
- package/packages/core/buildchain-agent-manuals.js +0 -2
- package/packages/core/buildchain-channel-identity.js +3 -2
- package/packages/core/buildchain-config.js +4 -69
- package/packages/core/buildchain-contract.js +232 -46
- package/packages/core/buildchain-kfd-claims.js +1 -1
- package/packages/core/channel-candidate.js +0 -8
- package/packages/core/channel-promotion-baseline.js +0 -52
- package/packages/core/controller-evidence.js +3 -4
- package/packages/core/dev-alpha-candidate-selection.js +2 -10
- package/packages/core/dev-delivery-warrant-cancellation.js +0 -1
- package/packages/core/dev-delivery-warrant-settlement.js +20 -67
- package/packages/core/dev-delivery-warrant.js +50 -138
- package/packages/core/diagnostics.js +3 -8
- package/packages/core/github-governance-authority.js +3 -1
- package/packages/core/kfd-adopter-category-driver.js +167 -0
- package/packages/core/kfd-adopter-manifest.js +47 -46
- package/packages/core/kfd-gate.js +15 -45
- package/packages/core/paper-agent-entry.js +7 -16
- package/packages/core/paper-fleet.js +2 -2
- package/packages/core/paper-repository.js +2 -3
- package/packages/core/paper-scaffold-content.js +2 -23
- package/packages/core/paper.js +11 -43
- package/packages/core/publication-reproducibility.js +4 -4
- package/packages/core/release-line-bootstrap.js +21 -8
- package/packages/core/release-passport-contract.js +5 -5
- package/packages/core/release-passport.js +20 -131
- package/packages/core/self-dogfood-version.js +48 -35
- package/packages/core/spawn-command.js +232 -8
- package/packages/core/v4-adopter-delivery-parity.js +219 -0
- package/packages/core/v4-canonical-contracts.js +284 -0
- package/packages/core/v4-delivery-warrant-fixture-runner.js +371 -0
- package/packages/core/v4-delivery-warrant-read-candidate.js +279 -0
- package/packages/core/v4-delivery-warrant-semantic-diff-gate.js +352 -0
- package/packages/core/v4-delivery-warrant-shadow-adapter.js +447 -0
- package/packages/core/v4-partial-mutation-recovery-qualification.js +395 -0
- package/packages/core/v4-platform-stage-checkpoints.js +471 -0
- package/packages/core/v4-provider-operation-journal.js +531 -0
- package/packages/core/v4-provider-readback-idempotency.js +394 -0
- package/packages/core/v4-release-activation-shadow.js +519 -0
- package/packages/core/v4-stable-publication-fence.js +357 -0
- package/packages/core/v4-stage-capsule-local-store.js +426 -0
- package/packages/core/v4-stage-capsule-qualification-campaign.js +512 -0
- package/packages/core/v4-stage-capsule-qualification.js +456 -0
- package/packages/core/v4-stage-capsule-resume-planner.js +397 -0
- package/packages/core/v4-stage-capsule-store.js +401 -0
- package/packages/core/v4-stage-capsule.js +319 -0
- package/scripts/assemble-self-publication-admission.mjs +1 -1
- package/scripts/audit-publication-control-plane.mjs +5 -5
- package/scripts/auditable-demo-bundle-verification.mjs +3 -2
- package/scripts/auditable-demo-platform.mjs +2 -2
- package/scripts/auditable-demo-renditions.mjs +1 -1
- package/scripts/auditable-demo.mjs +2 -2
- package/scripts/aws-macos-jit-controller-core.mjs +13 -346
- package/scripts/aws-macos-jit-controller-runtime.mjs +2 -210
- package/scripts/aws-macos-jit-controller.mjs +37 -275
- package/scripts/aws-macos-jit-core.mjs +3 -41
- package/scripts/aws-macos-jit.mjs +0 -12
- package/scripts/aws-windows-jit-campaign.mjs +2 -2
- package/scripts/aws-windows-jit-controller-core.mjs +1 -1
- package/scripts/aws-windows-jit-controller.mjs +3 -3
- package/scripts/build-contract-core.mjs +3 -8
- package/scripts/build-standalone-binary.mjs +3 -14
- package/scripts/buildchain-channel-router.mjs +4 -0
- package/scripts/buildchain-cli-help.mjs +7 -16
- package/scripts/buildchain-contract-lock.mjs +0 -6
- package/scripts/check-action-bundles.mjs +3 -4
- package/scripts/check-internal-architecture.mjs +7 -6
- package/scripts/check-inventory.mjs +30 -25
- package/scripts/check-v4-public-dogfood-contract.mjs +270 -0
- package/scripts/create-release-bundle.mjs +8 -4
- package/scripts/dev-alpha-candidate-patrol.mjs +1 -22
- package/scripts/dev-delivery-proof.mjs +2 -64
- package/scripts/dev-delivery-warrant.mjs +61 -86
- package/scripts/dev-pr-auto-merge.mjs +4 -30
- package/scripts/dev-pr-delivery-warrant.mjs +0 -55
- package/scripts/dispatch-artifact-signing-authority.mjs +7 -4
- package/scripts/generate-buildchain-kfd-witnesses.mjs +94 -88
- package/scripts/generate-channel-build-workflow.mjs +54 -24
- package/scripts/generate-channel-promotion-workflow.mjs +15 -6
- package/scripts/generate-site-bundle.mjs +8 -27
- package/scripts/git-fetch-process-tree.mjs +34 -1
- package/scripts/init-repo.mjs +64 -159
- package/scripts/inspect-artifact-signing-requests.mjs +0 -6
- package/scripts/locked-source-checkout.mjs +3 -4
- package/scripts/maintainability-metrics.mjs +8 -2
- package/scripts/npm-publish-dry-run.mjs +2 -2
- package/scripts/npm-publish-transaction.mjs +2 -2
- package/scripts/publication-commit-evidence.mjs +23 -69
- package/scripts/release-candidate-resolver.mjs +11 -17
- package/scripts/release-tail.mjs +3 -49
- package/scripts/resume-from-candidate-run.mjs +9 -123
- package/scripts/run-lifecycle-core.mjs +12 -13
- package/scripts/seal-artifact-signing-requests.mjs +17 -21
- package/scripts/site-capability-metadata.mjs +3 -20
- package/scripts/stable-candidate-qualification.mjs +10 -10
- package/scripts/v4-architecture.mjs +12 -2
- package/scripts/v4-bridge-bootstrap.mjs +141 -0
- package/scripts/v4-bridge-evidence.mjs +141 -0
- package/scripts/v4-host-adapter.mjs +182 -0
- package/scripts/v4-platform-stage-checkpoint-rehearsal.mjs +207 -0
- package/scripts/v4-stage-capsule-qualification.mjs +528 -0
- package/scripts/v4-stage-capsule-resume-rehearsal.mjs +57 -0
- package/scripts/v4-warrant-shadow-plan.mjs +601 -0
- package/scripts/verify-golden-path.mjs +5 -5
- package/scripts/web-surface-cloudfront-rewrite.mjs +15 -15
- package/scripts/web-surface-core.mjs +2 -8
- package/scripts/workflow-call-contract.mjs +5 -184
- package/contracts/dev-delivery-authority-v2.schema.json +0 -253
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-perspective.json +0 -16
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-replay.json +0 -57
- package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +0 -47
- package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +0 -47
- package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +0 -40
- package/contracts/next-development-request-v1.schema.json +0 -66
- package/contracts/next-development-transition-v1.schema.json +0 -292
- package/contracts/publication-rehearsal-capsule-v1.schema.json +0 -173
- package/dist/site/schemas/dev-delivery-authority-v2.schema.json +0 -442
- package/dist/site/schemas/publication-rehearsal-capsule-v1.schema.json +0 -269
- package/dist/site/schemas/release-tail-capabilities-v1.schema.json +0 -353
- package/dist/site/schemas/release-tail-provider-bindings-v1.schema.json +0 -94
- package/docs/dev-delivery-qualification-landing-adr.md +0 -137
- package/docs/next-development-transition.md +0 -119
- package/docs/publication-rehearsal.md +0 -94
- package/packages/core/buildchain-compatibility-proof.js +0 -631
- package/packages/core/dev-delivery-authority.js +0 -996
- package/packages/core/dev-delivery-native-proof.js +0 -418
- package/packages/core/dev-delivery-warrant-shadow.js +0 -502
- package/packages/core/next-development-candidate-reservation.js +0 -186
- package/packages/core/next-development-controller.js +0 -726
- package/packages/core/next-development-projection.js +0 -288
- package/packages/core/next-development-transition.js +0 -738
- package/packages/core/publication-rehearsal-projection.js +0 -173
- package/packages/core/publication-rehearsal-runtime.js +0 -921
- package/scripts/aws-macos-jit-instance-rehydrate.mjs +0 -260
- package/scripts/aws-macos-jit-source-rebind.mjs +0 -724
- package/scripts/dev-delivery-authority.mjs +0 -368
- package/scripts/dev-delivery-native-run.mjs +0 -235
- package/scripts/dev-delivery-two-phase-resume.mjs +0 -90
- package/scripts/dev-delivery-two-phase.mjs +0 -577
- package/scripts/generate-next-development-guidance.mjs +0 -49
- package/scripts/materialize-self-release-candidate-version.mjs +0 -137
- package/scripts/next-development-self-dogfood-harness.mjs +0 -409
- package/scripts/next-development-self-dogfood.mjs +0 -532
- package/scripts/next-development-transition.mjs +0 -47
- package/scripts/release-candidate-tail-reseal.mjs +0 -426
- package/templates/native-dev-delivery.yml +0 -86
|
@@ -93,6 +93,8 @@
|
|
|
93
93
|
"reusable": true,
|
|
94
94
|
"inputs": [
|
|
95
95
|
"artifact-compression-level",
|
|
96
|
+
"artifact-finalization-command",
|
|
97
|
+
"artifact-finalization-on-platform",
|
|
96
98
|
"artifact-name",
|
|
97
99
|
"artifact-name-template",
|
|
98
100
|
"artifact-paths",
|
|
@@ -113,6 +115,8 @@
|
|
|
113
115
|
"buildchain-contract-compatibility-policy",
|
|
114
116
|
"buildchain-contract-drift-issue-mode",
|
|
115
117
|
"buildchain-contract-lock-path",
|
|
118
|
+
"buildchain-expected-channel",
|
|
119
|
+
"buildchain-expected-major",
|
|
116
120
|
"buildchain-ref",
|
|
117
121
|
"buildchain-repository",
|
|
118
122
|
"cache-dependency-lock-root",
|
|
@@ -179,7 +183,7 @@
|
|
|
179
183
|
"verify-substage-evidence-path",
|
|
180
184
|
"working-directory"
|
|
181
185
|
],
|
|
182
|
-
"inputCount":
|
|
186
|
+
"inputCount": 90,
|
|
183
187
|
"secrets": [
|
|
184
188
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
|
|
185
189
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
|
|
@@ -465,6 +469,8 @@
|
|
|
465
469
|
"buildchain-contract-compatibility-policy",
|
|
466
470
|
"buildchain-contract-drift-issue-mode",
|
|
467
471
|
"buildchain-contract-lock-path",
|
|
472
|
+
"buildchain-expected-channel",
|
|
473
|
+
"buildchain-expected-major",
|
|
468
474
|
"buildchain-ref",
|
|
469
475
|
"buildchain-repository",
|
|
470
476
|
"channel",
|
|
@@ -568,7 +574,7 @@
|
|
|
568
574
|
"target-sha",
|
|
569
575
|
"trusted-publishing"
|
|
570
576
|
],
|
|
571
|
-
"inputCount":
|
|
577
|
+
"inputCount": 113,
|
|
572
578
|
"secrets": [
|
|
573
579
|
"BUILDCHAIN_ISSUE_APP_ID",
|
|
574
580
|
"BUILDCHAIN_ISSUE_APP_PRIVATE_KEY",
|
|
@@ -1217,6 +1223,8 @@
|
|
|
1217
1223
|
"reusable": true,
|
|
1218
1224
|
"inputs": [
|
|
1219
1225
|
"artifact-compression-level",
|
|
1226
|
+
"artifact-finalization-command",
|
|
1227
|
+
"artifact-finalization-on-platform",
|
|
1220
1228
|
"artifact-name",
|
|
1221
1229
|
"artifact-name-template",
|
|
1222
1230
|
"artifact-paths",
|
|
@@ -1239,6 +1247,8 @@
|
|
|
1239
1247
|
"buildchain-contract-compatibility-policy",
|
|
1240
1248
|
"buildchain-contract-drift-issue-mode",
|
|
1241
1249
|
"buildchain-contract-lock-path",
|
|
1250
|
+
"buildchain-expected-channel",
|
|
1251
|
+
"buildchain-expected-major",
|
|
1242
1252
|
"buildchain-ref",
|
|
1243
1253
|
"buildchain-repository",
|
|
1244
1254
|
"buildchain-stable-contract-lock-path",
|
|
@@ -1306,7 +1316,7 @@
|
|
|
1306
1316
|
"verify-substage-evidence-path",
|
|
1307
1317
|
"working-directory"
|
|
1308
1318
|
],
|
|
1309
|
-
"inputCount":
|
|
1319
|
+
"inputCount": 93,
|
|
1310
1320
|
"secrets": [
|
|
1311
1321
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_DOWNLOAD_ROLE_ARN",
|
|
1312
1322
|
"BUILDCHAIN_ARTIFACT_RELAY_S3_ROLE_ARN",
|
|
@@ -1836,7 +1846,6 @@
|
|
|
1836
1846
|
"path": ".github/workflows/dev-pr-auto-merge.yml",
|
|
1837
1847
|
"reusable": true,
|
|
1838
1848
|
"inputs": [
|
|
1839
|
-
"active-lease-context",
|
|
1840
1849
|
"affected-paths-json",
|
|
1841
1850
|
"allowed-head-prefixes",
|
|
1842
1851
|
"assignment-root",
|
|
@@ -1850,17 +1859,12 @@
|
|
|
1850
1859
|
"dependency-root",
|
|
1851
1860
|
"diagnostic-context",
|
|
1852
1861
|
"dry-run",
|
|
1853
|
-
"environment-root",
|
|
1854
1862
|
"expected-head-sha",
|
|
1855
1863
|
"expected-pr-number",
|
|
1856
|
-
"handoff-workflow-id",
|
|
1857
1864
|
"initiative-root",
|
|
1858
1865
|
"landing-mode",
|
|
1859
1866
|
"max-merges",
|
|
1860
1867
|
"merge-method",
|
|
1861
|
-
"native-command",
|
|
1862
|
-
"native-heartbeat-seconds",
|
|
1863
|
-
"native-proof-json",
|
|
1864
1868
|
"plan-root",
|
|
1865
1869
|
"project-cut-proof-json",
|
|
1866
1870
|
"queue-admission-context",
|
|
@@ -1871,13 +1875,11 @@
|
|
|
1871
1875
|
"shard-evidence-roots-json",
|
|
1872
1876
|
"source-identity-root",
|
|
1873
1877
|
"source-patch-root",
|
|
1874
|
-
"source-workflow-id",
|
|
1875
|
-
"source-workflow-run-id",
|
|
1876
1878
|
"target-branch",
|
|
1877
1879
|
"toolchain-root",
|
|
1878
1880
|
"warrant-lease-seconds"
|
|
1879
1881
|
],
|
|
1880
|
-
"inputCount":
|
|
1882
|
+
"inputCount": 32,
|
|
1881
1883
|
"secrets": [
|
|
1882
1884
|
"github-token"
|
|
1883
1885
|
],
|
|
@@ -1890,17 +1892,14 @@
|
|
|
1890
1892
|
"evaluated-count",
|
|
1891
1893
|
"final-base-sha",
|
|
1892
1894
|
"merged-count",
|
|
1893
|
-
"native-proof-root",
|
|
1894
|
-
"native-reuse-decision-root",
|
|
1895
1895
|
"project-cut-proof-root",
|
|
1896
|
-
"qualified-warrant-receipt-root",
|
|
1897
1896
|
"skipped-count",
|
|
1898
1897
|
"source-proof-root",
|
|
1899
1898
|
"warrant-receipt-root",
|
|
1900
1899
|
"warrant-state-commit",
|
|
1901
1900
|
"warrant-state-root"
|
|
1902
1901
|
],
|
|
1903
|
-
"outputCount":
|
|
1902
|
+
"outputCount": 13,
|
|
1904
1903
|
"surface": "dev-governance",
|
|
1905
1904
|
"capabilityGroup": "governance-versioning",
|
|
1906
1905
|
"status": "active",
|
|
@@ -1969,7 +1968,7 @@
|
|
|
1969
1968
|
"status": "preview",
|
|
1970
1969
|
"owner": "buildchain-workflows",
|
|
1971
1970
|
"maturity": "preview",
|
|
1972
|
-
"introducedVersion": "
|
|
1971
|
+
"introducedVersion": "4.0.0-alpha.0",
|
|
1973
1972
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1974
1973
|
"deprecationReplacement": "",
|
|
1975
1974
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -1990,7 +1989,7 @@
|
|
|
1990
1989
|
"status": "preview",
|
|
1991
1990
|
"owner": "buildchain-workflows",
|
|
1992
1991
|
"maturity": "preview",
|
|
1993
|
-
"introducedVersion": "
|
|
1992
|
+
"introducedVersion": "4.0.0-alpha.0",
|
|
1994
1993
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
1995
1994
|
"deprecationReplacement": "",
|
|
1996
1995
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -2011,7 +2010,7 @@
|
|
|
2011
2010
|
"status": "preview",
|
|
2012
2011
|
"owner": "buildchain-workflows",
|
|
2013
2012
|
"maturity": "preview",
|
|
2014
|
-
"introducedVersion": "
|
|
2013
|
+
"introducedVersion": "4.0.0-alpha.0",
|
|
2015
2014
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2016
2015
|
"deprecationReplacement": "",
|
|
2017
2016
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -2061,7 +2060,7 @@
|
|
|
2061
2060
|
"status": "preview",
|
|
2062
2061
|
"owner": "buildchain-workflows",
|
|
2063
2062
|
"maturity": "preview",
|
|
2064
|
-
"introducedVersion": "
|
|
2063
|
+
"introducedVersion": "4.0.0-alpha.0",
|
|
2065
2064
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2066
2065
|
"deprecationReplacement": "",
|
|
2067
2066
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -2802,25 +2801,22 @@
|
|
|
2802
2801
|
"reusable": true,
|
|
2803
2802
|
"inputs": [
|
|
2804
2803
|
"buildchain-ref",
|
|
2805
|
-
"
|
|
2806
|
-
"
|
|
2807
|
-
"
|
|
2808
|
-
"evidence-path",
|
|
2804
|
+
"declaration-path",
|
|
2805
|
+
"execute",
|
|
2806
|
+
"provider-bindings-path",
|
|
2809
2807
|
"state-path"
|
|
2810
2808
|
],
|
|
2811
|
-
"inputCount":
|
|
2809
|
+
"inputCount": 5,
|
|
2812
2810
|
"secrets": [
|
|
2813
2811
|
"http-token"
|
|
2814
2812
|
],
|
|
2815
2813
|
"secretCount": 1,
|
|
2816
2814
|
"outputs": [
|
|
2817
|
-
"binding-root",
|
|
2818
|
-
"evidence-root",
|
|
2819
2815
|
"state-root",
|
|
2820
2816
|
"transaction-root",
|
|
2821
2817
|
"transaction-state"
|
|
2822
2818
|
],
|
|
2823
|
-
"outputCount":
|
|
2819
|
+
"outputCount": 3,
|
|
2824
2820
|
"surface": "release-tail-provider-plane",
|
|
2825
2821
|
"capabilityGroup": "release-passport-trust",
|
|
2826
2822
|
"status": "active",
|
|
@@ -2943,6 +2939,55 @@
|
|
|
2943
2939
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
2944
2940
|
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
2945
2941
|
},
|
|
2942
|
+
{
|
|
2943
|
+
"id": "v4-public-consumer-dogfood",
|
|
2944
|
+
"path": ".github/workflows/v4-public-consumer-dogfood.yml",
|
|
2945
|
+
"reusable": false,
|
|
2946
|
+
"inputs": [],
|
|
2947
|
+
"inputCount": 0,
|
|
2948
|
+
"secrets": [],
|
|
2949
|
+
"secretCount": 0,
|
|
2950
|
+
"outputs": [],
|
|
2951
|
+
"outputCount": 0,
|
|
2952
|
+
"surface": "repository-workflow",
|
|
2953
|
+
"capabilityGroup": "api-cli-reference",
|
|
2954
|
+
"status": "active",
|
|
2955
|
+
"owner": "buildchain-workflows",
|
|
2956
|
+
"maturity": "active",
|
|
2957
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
2958
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2959
|
+
"deprecationReplacement": "",
|
|
2960
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
2961
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
2962
|
+
},
|
|
2963
|
+
{
|
|
2964
|
+
"id": "v4-stage-capsule-canary",
|
|
2965
|
+
"path": ".github/workflows/v4-stage-capsule-canary.yml",
|
|
2966
|
+
"reusable": true,
|
|
2967
|
+
"inputs": [
|
|
2968
|
+
"build-artifact-path",
|
|
2969
|
+
"consumer",
|
|
2970
|
+
"go-version",
|
|
2971
|
+
"install-artifact-path",
|
|
2972
|
+
"node-version",
|
|
2973
|
+
"verify-artifact-path"
|
|
2974
|
+
],
|
|
2975
|
+
"inputCount": 6,
|
|
2976
|
+
"secrets": [],
|
|
2977
|
+
"secretCount": 0,
|
|
2978
|
+
"outputs": [],
|
|
2979
|
+
"outputCount": 0,
|
|
2980
|
+
"surface": "repository-workflow",
|
|
2981
|
+
"capabilityGroup": "api-cli-reference",
|
|
2982
|
+
"status": "active",
|
|
2983
|
+
"owner": "buildchain-workflows",
|
|
2984
|
+
"maturity": "active",
|
|
2985
|
+
"introducedVersion": "pre-3.0.2-alpha.4",
|
|
2986
|
+
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2987
|
+
"deprecationReplacement": "",
|
|
2988
|
+
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
2989
|
+
"nonDuplicationRationale": "Existing workflow identity retained for caller compatibility and repository orchestration."
|
|
2990
|
+
},
|
|
2946
2991
|
{
|
|
2947
2992
|
"id": "verify",
|
|
2948
2993
|
"path": ".github/workflows/verify.yml",
|
|
@@ -3051,7 +3096,6 @@
|
|
|
3051
3096
|
"github-release-artifact-paths",
|
|
3052
3097
|
"github-release-notes",
|
|
3053
3098
|
"github-release-title",
|
|
3054
|
-
"plan-before-target-advance",
|
|
3055
3099
|
"promote-only-release-candidate",
|
|
3056
3100
|
"publication-capability-json",
|
|
3057
3101
|
"publication-gate-aggregate-json",
|
|
@@ -3119,7 +3163,7 @@
|
|
|
3119
3163
|
"transaction-state-path",
|
|
3120
3164
|
"verification-command"
|
|
3121
3165
|
],
|
|
3122
|
-
"inputCount":
|
|
3166
|
+
"inputCount": 80,
|
|
3123
3167
|
"capabilityGroup": "release-passport-trust",
|
|
3124
3168
|
"status": "active",
|
|
3125
3169
|
"owner": "buildchain-actions",
|
|
@@ -3134,15 +3178,14 @@
|
|
|
3134
3178
|
"id": "release-tail",
|
|
3135
3179
|
"path": "actions/release-tail/action.yml",
|
|
3136
3180
|
"inputs": [
|
|
3137
|
-
"
|
|
3138
|
-
"
|
|
3139
|
-
"capsule-root",
|
|
3140
|
-
"evidence-path",
|
|
3181
|
+
"declaration",
|
|
3182
|
+
"execute",
|
|
3141
3183
|
"github-token",
|
|
3142
3184
|
"http-token",
|
|
3185
|
+
"provider-bindings",
|
|
3143
3186
|
"state-path"
|
|
3144
3187
|
],
|
|
3145
|
-
"inputCount":
|
|
3188
|
+
"inputCount": 6,
|
|
3146
3189
|
"capabilityGroup": "release-passport-trust",
|
|
3147
3190
|
"status": "active",
|
|
3148
3191
|
"owner": "buildchain-actions",
|
package/docs/MAP.md
CHANGED
|
@@ -59,14 +59,14 @@ workflow, action, and Node API export also carries a `capabilityGroup`,
|
|
|
59
59
|
| Capability group | Primary facts | Primary manuals |
|
|
60
60
|
| --- | --- | --- |
|
|
61
61
|
| Getting Started | `capability-registry.json`, `product-mechanism.json` | [`getting-started.md`](getting-started.md), [`install.md`](install.md), [`product-mechanism.md`](product-mechanism.md), [`cli.md`](cli.md) |
|
|
62
|
-
| Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `publication-authority-registry.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`github-artifact-attestation.md`](github-artifact-attestation.md), [`publication-authority.md`](publication-authority.md), [`release-candidate.md`](release-candidate.md), [`release-train.md`](release-train.md), [`publish-transaction.md`](publish-transaction.md), [`release-tail-contract.md`](release-tail-contract.md), [`
|
|
62
|
+
| Release Passport and Trust | `release-model.json`, `artifact-schemas.json`, `publication-authority-registry.json`, `kfd-claims.json` | [`release-passport.md`](release-passport.md), [`github-artifact-attestation.md`](github-artifact-attestation.md), [`publication-authority.md`](publication-authority.md), [`release-candidate.md`](release-candidate.md), [`release-train.md`](release-train.md), [`publish-transaction.md`](publish-transaction.md), [`release-tail-contract.md`](release-tail-contract.md), [`binary-distribution.md`](binary-distribution.md) |
|
|
63
63
|
| Reusable Build and Lifecycle | `workflow-registry.json`, `controller-registry.json`, `release-model.json` | [`reusable-build-surface.md`](reusable-build-surface.md), [`controller-evidence.md`](controller-evidence.md), [`shifu-gate-profiles.md`](shifu-gate-profiles.md), [`lifecycle-protocol.md`](lifecycle-protocol.md) |
|
|
64
64
|
| KFD Trust and Surface Closure | `kfd-claims.json`, `public-surface-audit.json`, `cli-registry.json`, `node-api-registry.json` | [`kfd-support.md`](kfd-support.md), [`release-passport.md`](release-passport.md) |
|
|
65
65
|
| Site Bundle, Web Surfaces, and Propagation | `buildchain-site.json`, `site-manifest.json`, `page-registry.json`, `release-model.json` | [`site-bundle-contract.md`](site-bundle-contract.md), [`web-surface-deployments.md`](web-surface-deployments.md), [`release-propagation.md`](release-propagation.md) |
|
|
66
66
|
| Publication Artifacts | `publication-registry.json`, `workflow-registry.json`, `node-api-registry.json`, `manual-registry.json`, `kungfu-buildchain-publication-artifact-registry` | [`publication-artifacts.md`](publication-artifacts.md), [`reusable-build-surface.md`](reusable-build-surface.md) |
|
|
67
67
|
| Distribution Indexes and Badges | `badge-endpoint-registry.json`, `node-api-registry.json`, `manual-registry.json` | [`readme-badges.md`](readme-badges.md), [`homebrew.md`](homebrew.md) |
|
|
68
68
|
| Build Facts, Observability, and Diagnostics | `cli-registry.json`, `node-api-registry.json`, lifecycle artifacts | [`build-facts.md`](build-facts.md), [`toolkit-observability.md`](toolkit-observability.md), [`consumer-issue-reporting.md`](consumer-issue-reporting.md) |
|
|
69
|
-
| Governance, Versioning, and Runtime Drift | `buildchain-contract.json`, `workflow-registry.json`, `release-model.json` | [`github-governance-authority.md`](github-governance-authority.md), [`release-governance.md`](release-governance.md), [`release-flow.md`](release-flow.md), [`
|
|
69
|
+
| Governance, Versioning, and Runtime Drift | `buildchain-contract.json`, `workflow-registry.json`, `release-model.json` | [`github-governance-authority.md`](github-governance-authority.md), [`release-governance.md`](release-governance.md), [`release-flow.md`](release-flow.md), [`versioning.md`](versioning.md), [`runtime-train-validation.md`](runtime-train-validation.md), [`cli.md`](cli.md) |
|
|
70
70
|
| CLI and Node API Reference | `cli-registry.json`, `node-api-registry.json`, `workflow-registry.json`, `manual-registry.json` | [`cli-reference.md`](cli-reference.md), [`node-api-reference.md`](node-api-reference.md), [`cli.md`](cli.md), [`../packages/core/README.md`](../packages/core/README.md) |
|
|
71
71
|
|
|
72
72
|
| Capability | Machine-readable entry | Manual entry |
|
|
@@ -107,10 +107,15 @@ replace them.
|
|
|
107
107
|
| How do I install a standalone binary or npm package? | [`install.md`](install.md) | use | stable |
|
|
108
108
|
| How do I run or look up the `buildchain` CLI? | [`cli-reference.md`](cli-reference.md) + [`cli.md`](cli.md) | use | stable |
|
|
109
109
|
| How do I import Buildchain toolkit APIs from JavaScript build code? | [`node-api-reference.md`](node-api-reference.md) + [`../packages/core/README.md`](../packages/core/README.md) | use | stable |
|
|
110
|
-
| How are bounded Qualification Leases separated from exclusive merge-group Landing authority? | [`dev-delivery-qualification-landing-adr.md`](dev-delivery-qualification-landing-adr.md) + [`dev-delivery-warrant.md`](dev-delivery-warrant.md) | govern | accepted |
|
|
111
110
|
| How do I initialize a new repository? | [`getting-started.md`](getting-started.md) + [`lifecycle-protocol.md`](lifecycle-protocol.md) | use | stable |
|
|
112
111
|
| Why does Buildchain use branch-driven release governance? | [`release-governance.md`](release-governance.md) | why | stable |
|
|
113
112
|
| What freezes the v4 dependency direction, writer authority, complexity budgets, exceptions, and N-1 qualification? | [`../architecture/v4-architecture-constitution.md`](../architecture/v4-architecture-constitution.md) | why/verify | preview |
|
|
113
|
+
| How will Delivery Warrant move from the v3 writer through shadow, v4 read, single-writer cutover, and legacy removal? | [`../architecture/v4-delivery-warrant-shadow-bootstrap-plan.md`](../architecture/v4-delivery-warrant-shadow-bootstrap-plan.md) | why/verify | preview |
|
|
114
|
+
| What exact canonical bytes, roots, clocks, event, receipt, and typed-fault contracts do Rust and JavaScript share in v4? | [`v4-canonical-contracts.md`](v4-canonical-contracts.md) | use/verify | preview |
|
|
115
|
+
| How is one per-platform v4 build stage identified, retained, observed, and reused without provider identity or a second writer? | [`v4-stage-capsule.md`](v4-stage-capsule.md) | use/verify | preview |
|
|
116
|
+
| How does a late platform failure deterministically reuse qualified Stage Capsules and rebuild only invalid or missing dependencies? | [`v4-stage-capsule.md`](v4-stage-capsule.md#deterministic-resume-planning) | use/verify | preview |
|
|
117
|
+
| How do Rust and JavaScript read the same retained Delivery Warrant traces and emit one semantic projection? | [`v4-canonical-contracts.md`](v4-canonical-contracts.md#shared-delivery-warrant-fixture-runner) | use/verify | preview |
|
|
118
|
+
| How does an explicit caller try the qualified v4 read projection and roll back without moving v3 writer authority? | [`v4-delivery-warrant-read-candidate.md`](v4-delivery-warrant-read-candidate.md) | use/verify | preview |
|
|
114
119
|
| How do protected dev branches and scheduled ready-PR merging work? | [`release-governance.md`](release-governance.md#protected-dev-branches) | use | stable |
|
|
115
120
|
| How do slow required checks land reliably on a busy dev channel? | [`release-governance.md`](release-governance.md#protected-dev-branches) + [`cli.md`](cli.md#commands) | use | preview |
|
|
116
121
|
| How does the durable fair Dev Delivery Warrant Queue prevent slow-candidate starvation? | [`dev-delivery-warrant.md`](dev-delivery-warrant.md) | use/verify | preview |
|
|
@@ -119,13 +124,11 @@ replace them.
|
|
|
119
124
|
| How do I report or safely apply branch and pull-request engineering hygiene? | [`engineering-housekeeper.md`](engineering-housekeeper.md) | use/verify | preview |
|
|
120
125
|
| How does Buildchain decide patch, minor, and major release lines? | [`versioning.md`](versioning.md) | why | stable |
|
|
121
126
|
| What exact branch/tag state machine runs on alpha, release, and major gate? | [`release-flow.md`](release-flow.md) | verify | stable |
|
|
122
|
-
| How does a completed Alpha remain successful while the following development version is prepared? | [`next-development-transition.md`](next-development-transition.md), [`../architecture/decisions/0002-next-development-transition.md`](../architecture/decisions/0002-next-development-transition.md) | verify/use | preview |
|
|
123
127
|
| What did Buildchain migrate or retire from old action repositories? | [`migration-inventory.md`](migration-inventory.md) | verify | stable |
|
|
124
128
|
| What is the active action and workflow source of truth? | [`ownership.md`](ownership.md) | verify | stable |
|
|
125
129
|
| How do I declare version files and custom lifecycle commands? | [`lifecycle-protocol.md`](lifecycle-protocol.md) | use | stable |
|
|
126
130
|
| How does publish evidence, recovery, and finalization work? | [`publish-transaction.md`](publish-transaction.md) | verify | stable |
|
|
127
131
|
| How are consumer-owned release-tail commands inventoried and replaced by declarative capabilities? | [`release-tail-contract.md`](release-tail-contract.md) | verify | draft |
|
|
128
|
-
| How do I reproduce publication semantics locally without GitHub runner state? | [`publication-rehearsal.md`](publication-rehearsal.md), [`../architecture/decisions/0001-release-local-constructibility.md`](../architecture/decisions/0001-release-local-constructibility.md) | use/verify | preview |
|
|
129
132
|
| How do I collect and verify module/product build facts from Git source, version files, and outputs? | [`build-facts.md`](build-facts.md) + [`cli.md`](cli.md) | use/verify | stable |
|
|
130
133
|
| How do I publish or verify release passport artifacts? | [`release-passport.md`](release-passport.md) | use | stable |
|
|
131
134
|
| How do I keylessly attest Linux release artifacts with GitHub and bind them to a Release Passport? | [`github-artifact-attestation.md`](github-artifact-attestation.md) | verify/use | preview |
|
package/docs/auditable-demo.md
CHANGED
|
@@ -47,7 +47,7 @@ literal argv steps. Steps in one demo share a disposable workspace; separate
|
|
|
47
47
|
demos and the two rendition captures do not. Commands are never accepted as a
|
|
48
48
|
shell string. An omitted or explicit `standard` duration class remains bounded
|
|
49
49
|
to 60 seconds. A reviewed `execution.durationClass: long-form` declaration may
|
|
50
|
-
raise the scenario and literal step ceilings to
|
|
50
|
+
raise the scenario and literal step ceilings to 180 seconds; it does not change
|
|
51
51
|
the default. Both classes retain 4 MiB per step, a clean Home/XDG environment,
|
|
52
52
|
no inherited credentials, and a network-disabled read-only container with
|
|
53
53
|
bounded tmpfs.
|
|
@@ -155,7 +155,7 @@ scene.json
|
|
|
155
155
|
|
|
156
156
|
It may additionally emit one declared `terminal-capture.json` using
|
|
157
157
|
`kungfu.terminal-capture/v1`. The optional capture is bounded to 60 seconds by
|
|
158
|
-
default or
|
|
158
|
+
default or 180 seconds only when its scene explicitly declares `long-form`,
|
|
159
159
|
fixed 80-200 by 24-80 terminal cells, 10,000 events, and 4 MiB of canonical
|
|
160
160
|
base64 bytes. It must contain a qualified completion sentinel and an explicitly
|
|
161
161
|
empty authority-grant list. Existing three-file adapters remain valid.
|
|
@@ -343,11 +343,6 @@ JIT SecureString under `/kungfu/burst/macos/`, then runs GitHub Actions Runner
|
|
|
343
343
|
2.336.0 for exactly one job. The runner archive is pinned to the official
|
|
344
344
|
macOS ARM64 SHA256. No GitHub, signing, notarization, publication, SSH, or
|
|
345
345
|
static AWS credential is admitted to the instance.
|
|
346
|
-
The provider provenance step explicitly disables artifact-signing request
|
|
347
|
-
sealing for these qualification jobs, so consumer signing declarations cannot
|
|
348
|
-
turn a runner-profile smoke or full qualification into a signing-authority
|
|
349
|
-
dispatch. All other Buildchain lanes retain the default fail-closed signing
|
|
350
|
-
declaration behavior.
|
|
351
346
|
|
|
352
347
|
The instance uses the exact retained Amazon EC2 macOS AMI, IMDSv2, an encrypted
|
|
353
348
|
delete-on-termination root volume, no inbound security-group rule, and the
|
|
@@ -357,21 +352,13 @@ job must exercise the full native lifecycle.
|
|
|
357
352
|
|
|
358
353
|
AWS imposes a 24-hour minimum Dedicated Host allocation. The contract therefore
|
|
359
354
|
keeps the one host for at least 24 hours even if all three jobs finish earlier.
|
|
360
|
-
At the recorded USD 0.
|
|
361
|
-
30-hour fail-closed ceiling
|
|
355
|
+
At the recorded USD 0.6498 hourly rate, the minimum commitment rounds to USD
|
|
356
|
+
15.60. A 30-hour fail-closed ceiling rounds to USD 19.49, below the dedicated
|
|
362
357
|
USD 25 budget. A ten-minute reaper terminates an expired campaign instance and
|
|
363
358
|
retries host release after the minimum allocation and Apple scrub constraints
|
|
364
359
|
allow it. Budget notifications at 80% and 95% invoke the same card-scoped kill
|
|
365
360
|
switch.
|
|
366
361
|
|
|
367
|
-
The launch controller defaults to `us-east-1` and admits only `us-east-2` as a
|
|
368
|
-
capacity fallback. The regions use mutually exclusive control-plane stacks and
|
|
369
|
-
one shared USD 25 Budget covering Virginia `HostUsage:mac2` and the AWS catalog
|
|
370
|
-
identity `USE2-HostUsage:mac2` for Ohio. A requested region, availability zone,
|
|
371
|
-
stack, and Budget must agree before allocation, and the controller checks both
|
|
372
|
-
regions against one global Host and instance ceiling; no other region is
|
|
373
|
-
accepted.
|
|
374
|
-
|
|
375
362
|
Qualification requires three trusted exact-source one-job JIT runs on the one
|
|
376
363
|
host, including at least one full run, plus proof that:
|
|
377
364
|
|
|
@@ -385,47 +372,17 @@ host, including at least one full run, plus proof that:
|
|
|
385
372
|
### Phase 3 lifecycle controller
|
|
386
373
|
|
|
387
374
|
`scripts/aws-macos-jit-controller.mjs` is the operator boundary for the paid
|
|
388
|
-
campaign. It has
|
|
375
|
+
campaign. It has three explicit mutation modes:
|
|
389
376
|
|
|
390
377
|
- `launch-campaign` binds the exact repository source, AMI, availability zone,
|
|
391
|
-
tagged Dedicated Host, and reusable instance.
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
subscribers, and zero pre-existing Mac capacity. Because AWS does not expose
|
|
395
|
-
a DryRun parameter for `AllocateHosts`, it requires an allowed IAM policy
|
|
396
|
-
simulation for the exact tagged allocation before the real call, then a
|
|
397
|
-
successful `RunInstances` DryRun before launching the instance.
|
|
398
|
-
- `rehydrate-instance` creates a replacement instance on the one already-paid,
|
|
399
|
-
empty campaign host after an interrupted or failed instance lifecycle. It
|
|
400
|
-
rechecks the exact account, disabled workflow, Budget, source, host identity
|
|
401
|
-
and allocation time, zero runner residue, zero active JIT instances, and no
|
|
402
|
-
other active Mac host in either admitted region. It then requires a
|
|
403
|
-
successful same-host `RunInstances` DryRun and never calls `AllocateHosts`.
|
|
378
|
+
tagged Dedicated Host, and reusable instance. It rejects pre-existing Mac
|
|
379
|
+
capacity and requires successful `AllocateHosts` and `RunInstances` DryRuns
|
|
380
|
+
before either real call.
|
|
404
381
|
- `run-job` binds one queued exact-source GitHub job to the existing campaign
|
|
405
382
|
host and instance. It writes the repository JIT configuration through a
|
|
406
383
|
mode-0600 temporary file into a distinct SSM SecureString, sends only the
|
|
407
384
|
credential-free bootstrap through SSM, and removes the parameter plus runner
|
|
408
385
|
registration if command delivery fails.
|
|
409
|
-
- `rebind-campaign` repairs the source of an allocated but unused campaign
|
|
410
|
-
without buying another host. It requires the workflow to remain manually
|
|
411
|
-
disabled, the replacement source to be a strict descendant on the same
|
|
412
|
-
campaign ref, and every prior matching run to contain zero jobs and zero
|
|
413
|
-
artifacts. It also requires no registered JIT runner, SSM parameter, or
|
|
414
|
-
bootstrap evidence and verifies the one exact host, instance, and encrypted
|
|
415
|
-
volume. The operation updates only those resources' source tags and the
|
|
416
|
-
existing GitHub ref, emits a zero-allocation receipt, and compensates back to
|
|
417
|
-
the prior source if the ref update or readback fails. It never calls
|
|
418
|
-
`AllocateHosts`, `RunInstances`, or workflow dispatch.
|
|
419
|
-
- `rebind-campaign-after-failure` advances that same host and instance only
|
|
420
|
-
after the operator confirms the complete prior run-id inventory. Every named
|
|
421
|
-
run must be terminal with conclusion `failure`, all of its jobs must be
|
|
422
|
-
complete, and both GitHub artifacts and S3 bootstrap evidence must still be
|
|
423
|
-
present. The replacement source must remain a strict descendant on the same
|
|
424
|
-
ref, the workflow must be disabled, the next-source evidence prefix must be
|
|
425
|
-
empty, and runner plus SSM residue must be zero. The old evidence is retained
|
|
426
|
-
and included in the rebind receipt; the operation changes only the existing
|
|
427
|
-
source ref and resource tags, with the same compensated rollback and zero
|
|
428
|
-
allocation boundary as an unused-campaign rebind.
|
|
429
386
|
- `close-campaign` refuses execution before the provider's 24-hour minimum,
|
|
430
387
|
verifies the encrypted delete-on-termination root volume, removes scoped JIT
|
|
431
388
|
residue, terminates the exact instance, and requires a `ReleaseHosts` DryRun
|
|
@@ -435,17 +392,8 @@ campaign. It has five explicit mutation modes:
|
|
|
435
392
|
|
|
436
393
|
Every execute mode requires the exact source SHA and campaign id to be repeated
|
|
437
394
|
through `--confirm-source-sha` and `--confirm-campaign-id`. `run-job` also
|
|
438
|
-
requires `--confirm-run-id
|
|
439
|
-
expected workload account through `--account-id`. `rebind-campaign`
|
|
440
|
-
additionally repeats the prior source, host, and instance identities and
|
|
441
|
-
requires `--confirm-zero-allocation`. `rehydrate-instance` additionally repeats
|
|
442
|
-
the existing host and replaced instance identities and requires
|
|
443
|
-
`--confirm-no-host-allocation`. Omitting `--execute` emits a deterministic plan
|
|
395
|
+
requires `--confirm-run-id`. Omitting `--execute` emits a deterministic plan
|
|
444
396
|
without changing AWS or GitHub state.
|
|
445
|
-
`rebind-campaign-after-failure` additionally requires matching
|
|
446
|
-
`--terminal-failure-run-ids-json` and
|
|
447
|
-
`--confirm-terminal-failure-run-ids-json` arrays so an unobserved or newly
|
|
448
|
-
created run fails closed before any tag or ref mutation.
|
|
449
397
|
|
|
450
398
|
## Provider lifecycle
|
|
451
399
|
|