@kungfu-tech/buildchain 3.0.9-alpha.1 → 3.0.9-alpha.11
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/promote-buildchain-ref/README.md +4 -0
- package/bin/buildchain.mjs +9 -1
- package/bin/internal/trust-release-release-handlers.mjs +1 -0
- package/contracts/dev-delivery-authority-v2.schema.json +253 -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/next-development-request-v1.schema.json +66 -0
- package/contracts/next-development-transition-v1.schema.json +292 -0
- package/dist/site/agent-index.json +1 -0
- package/dist/site/artifact-schemas.json +2 -0
- package/dist/site/buildchain-contract.json +92 -27
- package/dist/site/buildchain-site.json +351 -38
- package/dist/site/capability-registry.json +7 -6
- package/dist/site/cli-registry.json +43 -3
- package/dist/site/controller-registry.json +6 -2
- package/dist/site/kfd-claims.json +223 -12
- package/dist/site/kfd-upstream-aggregate.json +9 -9
- package/dist/site/manual-registry.json +23 -7
- package/dist/site/node-api-registry.json +7926 -4533
- package/dist/site/page-registry.json +332 -27
- package/dist/site/public-surface-audit.json +359 -11
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-passport-check-manifest.json +1 -0
- package/dist/site/release-provenance.json +14 -0
- package/dist/site/schemas/dev-delivery-authority-v2.schema.json +442 -0
- package/dist/site/schemas/release-passport-v1.schema.json +3 -0
- package/dist/site/site-manifest.json +19 -11
- package/dist/site/workflow-registry.json +21 -10
- package/docs/MAP.md +5 -2
- package/docs/adopter-delivery-gate.md +106 -0
- package/docs/aws-us-elastic-runner-burst-plane.md +30 -3
- package/docs/cli-reference.md +202 -15
- package/docs/dev-alpha-candidate-patrol.md +8 -0
- package/docs/dev-delivery-qualification-landing-adr.md +137 -0
- package/docs/dev-delivery-warrant.md +149 -22
- package/docs/kfd-support.md +7 -2
- package/docs/next-development-transition.md +119 -0
- package/docs/node-api-reference.md +402 -204
- package/docs/release-governance.md +10 -7
- package/docs/release-passport.md +18 -2
- package/docs/versioning.md +4 -1
- package/package.json +23 -6
- package/packages/core/README.md +25 -0
- package/packages/core/adopter-delivery-gate.js +576 -0
- package/packages/core/adopter-delivery-json.js +66 -0
- 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/artifact-verification-envelope.js +5 -5
- package/packages/core/buildchain-agent-manuals.js +1 -0
- package/packages/core/buildchain-channel-identity.js +2 -3
- package/packages/core/buildchain-compatibility-proof.js +22 -0
- 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/channel-candidate.js +8 -0
- package/packages/core/channel-promotion-baseline.js +52 -0
- package/packages/core/dev-alpha-candidate-selection.js +10 -2
- package/packages/core/dev-delivery-authority.js +996 -0
- package/packages/core/dev-delivery-native-proof.js +418 -0
- package/packages/core/dev-delivery-warrant-settlement.js +67 -20
- package/packages/core/dev-delivery-warrant.js +129 -46
- package/packages/core/kfd-adopter-category-driver.js +167 -0
- package/packages/core/kfd-adopter-manifest.js +49 -50
- 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 +726 -0
- package/packages/core/next-development-projection.js +288 -0
- package/packages/core/next-development-transition.js +738 -0
- package/packages/core/paper-agent-entry.js +7 -4
- package/packages/core/paper.js +14 -7
- package/packages/core/published-delivery-authority.js +247 -0
- package/packages/core/release-passport-contract.js +10 -6
- package/packages/core/release-passport.js +37 -13
- package/scripts/aws-macos-jit-controller-core.mjs +239 -4
- package/scripts/aws-macos-jit-controller.mjs +198 -2
- package/scripts/aws-macos-jit-instance-rehydrate.mjs +260 -0
- package/scripts/aws-macos-jit-source-rebind.mjs +235 -14
- package/scripts/aws-macos-jit.mjs +12 -0
- package/scripts/buildchain-cli-help.mjs +10 -2
- package/scripts/check-internal-architecture.mjs +1 -0
- package/scripts/check-inventory.mjs +12 -1
- package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
- package/scripts/dev-delivery-authority.mjs +368 -0
- package/scripts/dev-delivery-native-run.mjs +235 -0
- package/scripts/dev-delivery-proof.mjs +64 -2
- package/scripts/dev-delivery-two-phase-resume.mjs +90 -0
- package/scripts/dev-delivery-two-phase.mjs +577 -0
- package/scripts/dev-delivery-warrant.mjs +48 -6
- package/scripts/dev-pr-delivery-warrant.mjs +19 -14
- package/scripts/generate-buildchain-kfd-witnesses.mjs +2 -2
- package/scripts/generate-channel-build-workflow.mjs +4 -0
- package/scripts/generate-next-development-guidance.mjs +49 -0
- package/scripts/generate-site-bundle.mjs +8 -3
- package/scripts/init-repo.mjs +135 -62
- package/scripts/next-development-self-dogfood-harness.mjs +409 -0
- package/scripts/next-development-self-dogfood.mjs +532 -0
- package/scripts/next-development-transition.mjs +47 -0
- package/scripts/release-candidate-tail-reseal.mjs +426 -0
- package/scripts/seal-artifact-signing-requests.mjs +7 -4
- package/scripts/site-capability-metadata.mjs +25 -1
- package/scripts/stable-candidate-qualification.mjs +7 -7
- package/scripts/workflow-call-contract.mjs +1 -1
- package/templates/native-dev-delivery.yml +86 -0
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), [`publication-rehearsal.md`](publication-rehearsal.md), [`binary-distribution.md`](binary-distribution.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), [`adopter-delivery-gate.md`](adopter-delivery-gate.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), [`publication-rehearsal.md`](publication-rehearsal.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), [`versioning.md`](versioning.md), [`runtime-train-validation.md`](runtime-train-validation.md), [`cli.md`](cli.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), [`next-development-transition.md`](next-development-transition.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,6 +107,7 @@ 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 |
|
|
110
111
|
| How do I initialize a new repository? | [`getting-started.md`](getting-started.md) + [`lifecycle-protocol.md`](lifecycle-protocol.md) | use | stable |
|
|
111
112
|
| Why does Buildchain use branch-driven release governance? | [`release-governance.md`](release-governance.md) | why | stable |
|
|
112
113
|
| 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 |
|
|
@@ -118,6 +119,7 @@ replace them.
|
|
|
118
119
|
| How do I report or safely apply branch and pull-request engineering hygiene? | [`engineering-housekeeper.md`](engineering-housekeeper.md) | use/verify | preview |
|
|
119
120
|
| How does Buildchain decide patch, minor, and major release lines? | [`versioning.md`](versioning.md) | why | stable |
|
|
120
121
|
| 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 |
|
|
121
123
|
| What did Buildchain migrate or retire from old action repositories? | [`migration-inventory.md`](migration-inventory.md) | verify | stable |
|
|
122
124
|
| What is the active action and workflow source of truth? | [`ownership.md`](ownership.md) | verify | stable |
|
|
123
125
|
| How do I declare version files and custom lifecycle commands? | [`lifecycle-protocol.md`](lifecycle-protocol.md) | use | stable |
|
|
@@ -127,6 +129,7 @@ replace them.
|
|
|
127
129
|
| 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 |
|
|
128
130
|
| How do I publish or verify release passport artifacts? | [`release-passport.md`](release-passport.md) | use | stable |
|
|
129
131
|
| 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 |
|
|
132
|
+
| How do I evaluate one project instance through an exact protocol driver and artifact profile without copying KFD semantics? | [`adopter-delivery-gate.md`](adopter-delivery-gate.md) | use/verify | preview |
|
|
130
133
|
| How do I request detached, Developer ID, or Authenticode signing without consumer credentials? | [`reusable-build-surface.md`](reusable-build-surface.md#artifact-signing-authority) | verify/use | preview |
|
|
131
134
|
| How do I seal exact artifact, identity, lifecycle, and KFD assessment roots for KFX admission? | [`artifact-verification-envelope.md`](artifact-verification-envelope.md) | verify/use | preview |
|
|
132
135
|
| How is product publication authority sealed to an exact workflow, runner, control plane, nonce, and artifact? | [`publication-authority.md`](publication-authority.md) | verify | preview |
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: active
|
|
3
|
+
period: ongoing
|
|
4
|
+
theme: adopter-delivery-gate
|
|
5
|
+
doc_type: technical-reference
|
|
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-12
|
|
12
|
+
ai_provenance:
|
|
13
|
+
model_family: GPT-5
|
|
14
|
+
product: Codex
|
|
15
|
+
generated_at: 2026-08-12
|
|
16
|
+
invisible_context: not asserted
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Adopter Delivery Gate
|
|
20
|
+
|
|
21
|
+
Buildchain exposes one protocol-neutral delivery gate. A caller registers an
|
|
22
|
+
exact semantic protocol driver and an exact artifact profile, then evaluates a
|
|
23
|
+
rooted project instance request. The core does not branch on project identity
|
|
24
|
+
and does not infer KFD semantics.
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
import {
|
|
28
|
+
createAdopterDeliveryGate,
|
|
29
|
+
createPackageArtifactProfile,
|
|
30
|
+
} from "@kungfu-tech/buildchain/adopter-delivery-gate";
|
|
31
|
+
import { createKfdAdopterCategoryProtocolDriver } from "@kungfu-tech/buildchain/kfd-adopter-category-driver";
|
|
32
|
+
|
|
33
|
+
const gate = createAdopterDeliveryGate({
|
|
34
|
+
drivers: [createKfdAdopterCategoryProtocolDriver()],
|
|
35
|
+
artifactProfiles: [createPackageArtifactProfile()],
|
|
36
|
+
});
|
|
37
|
+
const result = gate.evaluate(request, {
|
|
38
|
+
adopterManifest,
|
|
39
|
+
verifiedAt: "2026-08-12T00:00:00.000Z",
|
|
40
|
+
maxAgeSeconds: 86400,
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The KFD driver consumes only the installed published `@kungfu-tech/kfd`
|
|
45
|
+
category catalog, manifest verifier, resolver and category-instance verifier.
|
|
46
|
+
Caller-supplied catalog overrides are ignored. The legacy driver is a separate
|
|
47
|
+
one-way adapter for the existing standard adopter manifest and support-matrix
|
|
48
|
+
projection; it is not KFD declaration authority.
|
|
49
|
+
|
|
50
|
+
### Buildchain delivery-infrastructure instance
|
|
51
|
+
|
|
52
|
+
`@kungfu-tech/buildchain/buildchain-delivery-infrastructure` constructs the
|
|
53
|
+
Buildchain-owned project instance for the published
|
|
54
|
+
`kfd.adopter-category/delivery-infrastructure@1.0.0` profile. Callers provide a
|
|
55
|
+
release-bound full-cut adopter manifest plus exact source, package, release, and
|
|
56
|
+
project evidence coordinates. The constructor derives the selected obligation
|
|
57
|
+
set from published KFD bytes and stamps every evidence item with the same
|
|
58
|
+
project, adopter-manifest, package-cut, and category-selection roots.
|
|
59
|
+
|
|
60
|
+
The constructor rejects private or unknown requirement IDs instead of silently
|
|
61
|
+
extending the KFD profile. Verification delegates back to the published KFD
|
|
62
|
+
full-manifest and category-instance verifiers. A passing instance is still a
|
|
63
|
+
declaration-only, non-transferable result: it grants no runtime, publication,
|
|
64
|
+
promotion, or certification authority. Buildchain's anti-circular N-1 release
|
|
65
|
+
qualification remains a separate release gate.
|
|
66
|
+
|
|
67
|
+
### Buildchain anti-circular bootstrap
|
|
68
|
+
|
|
69
|
+
`@kungfu-tech/buildchain/buildchain-delivery-bootstrap` verifies that one exact
|
|
70
|
+
candidate is supported by a distinct protected and publicly released N-1 cut,
|
|
71
|
+
its passed project gate result, and its merged Delivery Warrant evidence. The
|
|
72
|
+
candidate must name the exact authority version; source or package reuse is
|
|
73
|
+
rejected. Changes to the gate, protocol, or selected profile additionally need
|
|
74
|
+
content-rooted compatibility and independent-review evidence.
|
|
75
|
+
|
|
76
|
+
The result is evidence only. It always retains `qualifying: false`,
|
|
77
|
+
`selfCertified: false`, and `releaseAuthorized: false`; publication and release
|
|
78
|
+
authority remain with the protected delivery and release mechanisms.
|
|
79
|
+
|
|
80
|
+
## Fail-closed boundaries
|
|
81
|
+
|
|
82
|
+
- Driver and artifact-profile selection require an exact `id@version` match.
|
|
83
|
+
- Package, Git commit and custom immutable artifact kinds use explicit profiles.
|
|
84
|
+
- Unknown fields, malformed roots, non-JSON declarations, driver exceptions,
|
|
85
|
+
ambiguous kinds, stale KFD cuts and substituted evidence fail closed.
|
|
86
|
+
- Every result retains `qualifying: false` and `selfCertified: false`.
|
|
87
|
+
- Category conformance never grants runtime permission, release authorization
|
|
88
|
+
or independent certification.
|
|
89
|
+
|
|
90
|
+
## Release Passport binding
|
|
91
|
+
|
|
92
|
+
Use `@kungfu-tech/buildchain/adopter-delivery-passport` to create and validate
|
|
93
|
+
the exact binding. Release Passport and artifact evidence must contain the same
|
|
94
|
+
rooted gate closure; neither side may introduce or replace delivery evidence.
|
|
95
|
+
|
|
96
|
+
## Offline vectors
|
|
97
|
+
|
|
98
|
+
`@kungfu-tech/buildchain/adopter-delivery-vectors` exports the immutable
|
|
99
|
+
`ADOPTER_DELIVERY_VECTOR_SUITE`. Its root binds golden two-driver replay,
|
|
100
|
+
unknown-driver rejection, published-KFD category conflict, evidence
|
|
101
|
+
substitution, stale package cut and driver-fault redaction. Consumers can call
|
|
102
|
+
`validateAdopterDeliveryVectorSuite()` before replay and use
|
|
103
|
+
`getAdopterDeliveryVector()` to select one named case.
|
|
104
|
+
|
|
105
|
+
The suite records KFD package and vector subpaths as authority coordinates. It
|
|
106
|
+
does not copy KFD category policy into Buildchain.
|
|
@@ -343,6 +343,11 @@ 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.
|
|
346
351
|
|
|
347
352
|
The instance uses the exact retained Amazon EC2 macOS AMI, IMDSv2, an encrypted
|
|
348
353
|
delete-on-termination root volume, no inbound security-group rule, and the
|
|
@@ -380,7 +385,7 @@ host, including at least one full run, plus proof that:
|
|
|
380
385
|
### Phase 3 lifecycle controller
|
|
381
386
|
|
|
382
387
|
`scripts/aws-macos-jit-controller.mjs` is the operator boundary for the paid
|
|
383
|
-
campaign. It has
|
|
388
|
+
campaign. It has five explicit mutation modes:
|
|
384
389
|
|
|
385
390
|
- `launch-campaign` binds the exact repository source, AMI, availability zone,
|
|
386
391
|
tagged Dedicated Host, and reusable instance. Before paid allocation it
|
|
@@ -390,6 +395,12 @@ campaign. It has four explicit mutation modes:
|
|
|
390
395
|
a DryRun parameter for `AllocateHosts`, it requires an allowed IAM policy
|
|
391
396
|
simulation for the exact tagged allocation before the real call, then a
|
|
392
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`.
|
|
393
404
|
- `run-job` binds one queued exact-source GitHub job to the existing campaign
|
|
394
405
|
host and instance. It writes the repository JIT configuration through a
|
|
395
406
|
mode-0600 temporary file into a distinct SSM SecureString, sends only the
|
|
@@ -405,6 +416,16 @@ campaign. It has four explicit mutation modes:
|
|
|
405
416
|
existing GitHub ref, emits a zero-allocation receipt, and compensates back to
|
|
406
417
|
the prior source if the ref update or readback fails. It never calls
|
|
407
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.
|
|
408
429
|
- `close-campaign` refuses execution before the provider's 24-hour minimum,
|
|
409
430
|
verifies the encrypted delete-on-termination root volume, removes scoped JIT
|
|
410
431
|
residue, terminates the exact instance, and requires a `ReleaseHosts` DryRun
|
|
@@ -417,8 +438,14 @@ through `--confirm-source-sha` and `--confirm-campaign-id`. `run-job` also
|
|
|
417
438
|
requires `--confirm-run-id`; `launch-campaign` additionally requires the
|
|
418
439
|
expected workload account through `--account-id`. `rebind-campaign`
|
|
419
440
|
additionally repeats the prior source, host, and instance identities and
|
|
420
|
-
requires `--confirm-zero-allocation`.
|
|
421
|
-
|
|
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
|
|
444
|
+
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.
|
|
422
449
|
|
|
423
450
|
## Provider lifecycle
|
|
424
451
|
|
package/docs/cli-reference.md
CHANGED
|
@@ -203,11 +203,11 @@ buildchain collect
|
|
|
203
203
|
|
|
204
204
|
- Help: `buildchain collect github-release --help`
|
|
205
205
|
- Canonical id: `collect-github-release`
|
|
206
|
-
- Options: `--anchor-manifest-json`, `--assets-dir`, `--assets-json`, `--base-passport-json`, `--build-facts-json`, `--build-summary-json`, `--dist-tag-evidence-json`, `--github-artifact-attestation-policy-json`, `--impact-json`, `--invariant-passport-cmd`, `--invariant-passport-json`, `--json`, `--kfd-1-witness-json`, `--kfd-2-claim-json`, `--kfd-3-artifact-verify-cmd`, `--kfd-3-artifact-witness-json`, `--kfd-3-prebuild-witness-json`, `--kfd-adopter-manifest-json`, `--kfd-agent-hub-evidence-json`, `--kfd-product-gate-json`, `--kfd-support-matrix-json`, `--output-dir`, `--package-set-json`, `--platform-manifest-json`, `--product-name`, `--publish-evidence-json`, `--publish-json`, `--release-evidence-json`, `--release-extra-json`, `--release-json`, `--repository`, `--require-base-kfd`, `--tag`, `--transaction-json`, `--trusted-publishing-json`
|
|
206
|
+
- Options: `--adopter-delivery-json`, `--anchor-manifest-json`, `--assets-dir`, `--assets-json`, `--base-passport-json`, `--build-facts-json`, `--build-summary-json`, `--dist-tag-evidence-json`, `--github-artifact-attestation-policy-json`, `--impact-json`, `--invariant-passport-cmd`, `--invariant-passport-json`, `--json`, `--kfd-1-witness-json`, `--kfd-2-claim-json`, `--kfd-3-artifact-verify-cmd`, `--kfd-3-artifact-witness-json`, `--kfd-3-prebuild-witness-json`, `--kfd-adopter-manifest-json`, `--kfd-agent-hub-evidence-json`, `--kfd-product-gate-json`, `--kfd-support-matrix-json`, `--output-dir`, `--package-set-json`, `--platform-manifest-json`, `--product-name`, `--publish-evidence-json`, `--publish-json`, `--release-evidence-json`, `--release-extra-json`, `--release-json`, `--repository`, `--require-base-kfd`, `--tag`, `--transaction-json`, `--trusted-publishing-json`
|
|
207
207
|
- Syntax:
|
|
208
208
|
|
|
209
209
|
```text
|
|
210
|
-
buildchain collect github-release --tag <tag> [--repository <owner/repo>] [--assets-dir <dir>] [--assets-json <json-or-path>] [--release-json <json-or-path>] [--package-set-json <json-or-path>] [--product-name <name>] [--publish-evidence-json <json-or-path>] [--trusted-publishing-json <json-or-path>] [--transaction-json <json-or-path>] [--anchor-manifest-json <json-or-path>] [--impact-json <json-or-path>] [--build-summary-json <json-or-path>] [--build-facts-json <json-or-path>]... [--platform-manifest-json <json-or-path>]... [--dist-tag-evidence-json <json-or-path>] [--kfd-1-witness-json <json-or-path>]... [--kfd-2-claim-json <json-or-path>]... [--kfd-3-prebuild-witness-json <json-or-path>]... [--kfd-3-artifact-witness-json <json-or-path>]... [--kfd-3-artifact-verify-cmd <command>] [--kfd-adopter-manifest-json <json-or-path>] [--kfd-support-matrix-json <json-or-path>] [--kfd-product-gate-json <json-or-path>]... [--invariant-passport-json <json-or-path>]... [--invariant-passport-cmd <command>] [--release-evidence-json <json-or-path>]... [--github-artifact-attestation-policy-json <json-or-path>]... [--kfd-agent-hub-evidence-json <json-or-path>] [--base-passport-json <json-or-path>] [--require-base-kfd] [--release-extra-json <json-or-path>] [--publish-json <json-or-path>] [--output-dir <dir>] [--json]
|
|
210
|
+
buildchain collect github-release --tag <tag> [--repository <owner/repo>] [--assets-dir <dir>] [--assets-json <json-or-path>] [--release-json <json-or-path>] [--package-set-json <json-or-path>] [--product-name <name>] [--publish-evidence-json <json-or-path>] [--trusted-publishing-json <json-or-path>] [--transaction-json <json-or-path>] [--anchor-manifest-json <json-or-path>] [--impact-json <json-or-path>] [--build-summary-json <json-or-path>] [--build-facts-json <json-or-path>]... [--platform-manifest-json <json-or-path>]... [--dist-tag-evidence-json <json-or-path>] [--kfd-1-witness-json <json-or-path>]... [--kfd-2-claim-json <json-or-path>]... [--kfd-3-prebuild-witness-json <json-or-path>]... [--kfd-3-artifact-witness-json <json-or-path>]... [--kfd-3-artifact-verify-cmd <command>] [--adopter-delivery-json <json-or-path>] [--kfd-adopter-manifest-json <json-or-path>] [--kfd-support-matrix-json <json-or-path>] [--kfd-product-gate-json <json-or-path>]... [--invariant-passport-json <json-or-path>]... [--invariant-passport-cmd <command>] [--release-evidence-json <json-or-path>]... [--github-artifact-attestation-policy-json <json-or-path>]... [--kfd-agent-hub-evidence-json <json-or-path>] [--base-passport-json <json-or-path>] [--require-base-kfd] [--release-extra-json <json-or-path>] [--publish-json <json-or-path>] [--output-dir <dir>] [--json]
|
|
211
211
|
```
|
|
212
212
|
|
|
213
213
|
## `create`
|
|
@@ -269,6 +269,127 @@ buildchain create runner-provenance --input-json <file-or-json> [--output <file>
|
|
|
269
269
|
buildchain dev
|
|
270
270
|
```
|
|
271
271
|
|
|
272
|
+
### `buildchain dev authority admit-merge-group`
|
|
273
|
+
|
|
274
|
+
- Help: `buildchain dev authority admit-merge-group --help`
|
|
275
|
+
- Canonical id: `dev`
|
|
276
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
277
|
+
- Syntax:
|
|
278
|
+
|
|
279
|
+
```text
|
|
280
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### `buildchain dev authority complete-qualification`
|
|
284
|
+
|
|
285
|
+
- Help: `buildchain dev authority complete-qualification --help`
|
|
286
|
+
- Canonical id: `dev`
|
|
287
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
288
|
+
- Syntax:
|
|
289
|
+
|
|
290
|
+
```text
|
|
291
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### `buildchain dev authority heartbeat-landing`
|
|
295
|
+
|
|
296
|
+
- Help: `buildchain dev authority heartbeat-landing --help`
|
|
297
|
+
- Canonical id: `dev`
|
|
298
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
299
|
+
- Syntax:
|
|
300
|
+
|
|
301
|
+
```text
|
|
302
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
### `buildchain dev authority heartbeat-qualification`
|
|
306
|
+
|
|
307
|
+
- Help: `buildchain dev authority heartbeat-qualification --help`
|
|
308
|
+
- Canonical id: `dev`
|
|
309
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
310
|
+
- Syntax:
|
|
311
|
+
|
|
312
|
+
```text
|
|
313
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### `buildchain dev authority lease-landing`
|
|
317
|
+
|
|
318
|
+
- Help: `buildchain dev authority lease-landing --help`
|
|
319
|
+
- Canonical id: `dev`
|
|
320
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
321
|
+
- Syntax:
|
|
322
|
+
|
|
323
|
+
```text
|
|
324
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### `buildchain dev authority lease-qualification`
|
|
328
|
+
|
|
329
|
+
- Help: `buildchain dev authority lease-qualification --help`
|
|
330
|
+
- Canonical id: `dev`
|
|
331
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
332
|
+
- Syntax:
|
|
333
|
+
|
|
334
|
+
```text
|
|
335
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### `buildchain dev authority migrate`
|
|
339
|
+
|
|
340
|
+
- Help: `buildchain dev authority migrate --help`
|
|
341
|
+
- Canonical id: `dev`
|
|
342
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
343
|
+
- Syntax:
|
|
344
|
+
|
|
345
|
+
```text
|
|
346
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### `buildchain dev authority observe`
|
|
350
|
+
|
|
351
|
+
- Help: `buildchain dev authority observe --help`
|
|
352
|
+
- Canonical id: `dev`
|
|
353
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
354
|
+
- Syntax:
|
|
355
|
+
|
|
356
|
+
```text
|
|
357
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### `buildchain dev authority recover`
|
|
361
|
+
|
|
362
|
+
- Help: `buildchain dev authority recover --help`
|
|
363
|
+
- Canonical id: `dev`
|
|
364
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
365
|
+
- Syntax:
|
|
366
|
+
|
|
367
|
+
```text
|
|
368
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### `buildchain dev authority settle`
|
|
372
|
+
|
|
373
|
+
- Help: `buildchain dev authority settle --help`
|
|
374
|
+
- Canonical id: `dev`
|
|
375
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
376
|
+
- Syntax:
|
|
377
|
+
|
|
378
|
+
```text
|
|
379
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### `buildchain dev authority submit`
|
|
383
|
+
|
|
384
|
+
- Help: `buildchain dev authority submit --help`
|
|
385
|
+
- Canonical id: `dev`
|
|
386
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
387
|
+
- Syntax:
|
|
388
|
+
|
|
389
|
+
```text
|
|
390
|
+
buildchain dev authority <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
391
|
+
```
|
|
392
|
+
|
|
272
393
|
### `buildchain dev merge-queue`
|
|
273
394
|
|
|
274
395
|
- Help: `buildchain dev merge-queue --help`
|
|
@@ -299,7 +420,18 @@ buildchain dev pr-admit --repository <owner/repo> --branch <dev/vN/vN.M> --pull-
|
|
|
299
420
|
- Syntax:
|
|
300
421
|
|
|
301
422
|
```text
|
|
302
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
423
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### `buildchain dev proof classify-native`
|
|
427
|
+
|
|
428
|
+
- Help: `buildchain dev proof classify-native --help`
|
|
429
|
+
- Canonical id: `dev`
|
|
430
|
+
- Options: `--json`, `--output`
|
|
431
|
+
- Syntax:
|
|
432
|
+
|
|
433
|
+
```text
|
|
434
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
303
435
|
```
|
|
304
436
|
|
|
305
437
|
### `buildchain dev proof integration`
|
|
@@ -310,7 +442,18 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
310
442
|
- Syntax:
|
|
311
443
|
|
|
312
444
|
```text
|
|
313
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
445
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
### `buildchain dev proof native`
|
|
449
|
+
|
|
450
|
+
- Help: `buildchain dev proof native --help`
|
|
451
|
+
- Canonical id: `dev`
|
|
452
|
+
- Options: `--json`, `--output`
|
|
453
|
+
- Syntax:
|
|
454
|
+
|
|
455
|
+
```text
|
|
456
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
314
457
|
```
|
|
315
458
|
|
|
316
459
|
### `buildchain dev proof replay`
|
|
@@ -321,7 +464,7 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
321
464
|
- Syntax:
|
|
322
465
|
|
|
323
466
|
```text
|
|
324
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
467
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
325
468
|
```
|
|
326
469
|
|
|
327
470
|
### `buildchain dev proof source`
|
|
@@ -332,7 +475,7 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
332
475
|
- Syntax:
|
|
333
476
|
|
|
334
477
|
```text
|
|
335
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
478
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
336
479
|
```
|
|
337
480
|
|
|
338
481
|
### `buildchain dev proof verify-integration`
|
|
@@ -343,7 +486,29 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
343
486
|
- Syntax:
|
|
344
487
|
|
|
345
488
|
```text
|
|
346
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
489
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
### `buildchain dev proof verify-native`
|
|
493
|
+
|
|
494
|
+
- Help: `buildchain dev proof verify-native --help`
|
|
495
|
+
- Canonical id: `dev`
|
|
496
|
+
- Options: `--json`, `--output`
|
|
497
|
+
- Syntax:
|
|
498
|
+
|
|
499
|
+
```text
|
|
500
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### `buildchain dev proof verify-native-reuse`
|
|
504
|
+
|
|
505
|
+
- Help: `buildchain dev proof verify-native-reuse --help`
|
|
506
|
+
- Canonical id: `dev`
|
|
507
|
+
- Options: `--json`, `--output`
|
|
508
|
+
- Syntax:
|
|
509
|
+
|
|
510
|
+
```text
|
|
511
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
347
512
|
```
|
|
348
513
|
|
|
349
514
|
### `buildchain dev proof verify-source`
|
|
@@ -354,7 +519,18 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
354
519
|
- Syntax:
|
|
355
520
|
|
|
356
521
|
```text
|
|
357
|
-
buildchain dev proof <source|verify-source|classify|replay|integration|verify-integration> [--output <file>] [--json]
|
|
522
|
+
buildchain dev proof <source|verify-source|classify|native|verify-native|classify-native|verify-native-reuse|replay|integration|verify-integration> [--output <file>] [--json]
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### `buildchain dev two-phase`
|
|
526
|
+
|
|
527
|
+
- Help: `buildchain dev two-phase --help`
|
|
528
|
+
- Canonical id: `dev`
|
|
529
|
+
- Options: `--branch`, `--expected-head`, `--native-command`, `--native-proof`, `--pull-request`, `--repository`, `--warrant-result`
|
|
530
|
+
- Syntax:
|
|
531
|
+
|
|
532
|
+
```text
|
|
533
|
+
buildchain dev two-phase --repository <owner/repo> --branch <dev/vN/vN.M> --pull-request <n> --expected-head <sha> --warrant-result <file> [--native-proof <file>] [--native-command <command>]
|
|
358
534
|
```
|
|
359
535
|
|
|
360
536
|
### `buildchain dev warrant cancel-queued`
|
|
@@ -365,7 +541,7 @@ buildchain dev proof <source|verify-source|classify|replay|integration|verify-in
|
|
|
365
541
|
- Syntax:
|
|
366
542
|
|
|
367
543
|
```text
|
|
368
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
544
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
369
545
|
```
|
|
370
546
|
|
|
371
547
|
### `buildchain dev warrant close`
|
|
@@ -376,7 +552,7 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
376
552
|
- Syntax:
|
|
377
553
|
|
|
378
554
|
```text
|
|
379
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
555
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
380
556
|
```
|
|
381
557
|
|
|
382
558
|
### `buildchain dev warrant heartbeat`
|
|
@@ -387,7 +563,7 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
387
563
|
- Syntax:
|
|
388
564
|
|
|
389
565
|
```text
|
|
390
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
566
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
391
567
|
```
|
|
392
568
|
|
|
393
569
|
### `buildchain dev warrant observe`
|
|
@@ -398,7 +574,18 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
398
574
|
- Syntax:
|
|
399
575
|
|
|
400
576
|
```text
|
|
401
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
577
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
### `buildchain dev warrant qualify`
|
|
581
|
+
|
|
582
|
+
- Help: `buildchain dev warrant qualify --help`
|
|
583
|
+
- Canonical id: `dev`
|
|
584
|
+
- Options: `--branch`, `--execute`, `--json`, `--output`, `--repository`
|
|
585
|
+
- Syntax:
|
|
586
|
+
|
|
587
|
+
```text
|
|
588
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
402
589
|
```
|
|
403
590
|
|
|
404
591
|
### `buildchain dev warrant recover`
|
|
@@ -409,7 +596,7 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
409
596
|
- Syntax:
|
|
410
597
|
|
|
411
598
|
```text
|
|
412
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
599
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
413
600
|
```
|
|
414
601
|
|
|
415
602
|
### `buildchain dev warrant select`
|
|
@@ -420,7 +607,7 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
420
607
|
- Syntax:
|
|
421
608
|
|
|
422
609
|
```text
|
|
423
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
610
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
424
611
|
```
|
|
425
612
|
|
|
426
613
|
### `buildchain dev warrant submit`
|
|
@@ -431,7 +618,7 @@ buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|obse
|
|
|
431
618
|
- Syntax:
|
|
432
619
|
|
|
433
620
|
```text
|
|
434
|
-
buildchain dev warrant <submit|select|heartbeat|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
621
|
+
buildchain dev warrant <submit|select|heartbeat|qualify|recover|close|cancel-queued|observe> --repository <owner/repo> --branch <dev/vN/vN.M> [--execute] [--output <file>] [--json]
|
|
435
622
|
```
|
|
436
623
|
|
|
437
624
|
## `diagnostics`
|
|
@@ -59,6 +59,14 @@ controller then compares the selected SHA to the exact Alpha head before it can
|
|
|
59
59
|
be eligible, so a bounded scan cannot turn a commit outside the promotion
|
|
60
60
|
ancestry into a candidate.
|
|
61
61
|
|
|
62
|
+
Generated next-development version preparation is not a product candidate. The
|
|
63
|
+
observer skips both the signed `chore(release): prepare ...` commit and its
|
|
64
|
+
two-parent integration commit. When later product work becomes qualified, the
|
|
65
|
+
nearest preparation becomes a reservation: Patrol reads every path changed by
|
|
66
|
+
that preparation at both exact SHAs and requires identical Git blob identities.
|
|
67
|
+
A missing or stale reserved path blocks selection before the Release Cut and
|
|
68
|
+
therefore before any heavy candidate build.
|
|
69
|
+
|
|
62
70
|
The decision is `kungfu-buildchain-channel-candidate-decision/v1`. It records the
|
|
63
71
|
source and target branches and SHAs, comparison distance, workflow paths, run
|
|
64
72
|
identities and attempts, completion times, URLs, policy, and a canonical decision
|