@kungfu-tech/buildchain 4.0.1-alpha.2 → 4.0.1-alpha.4
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/architecture/decisions/0003-two-phase-delivery-warrant.md +152 -0
- package/architecture/internal-capabilities.json +94 -0
- package/architecture/maintainability-policy.json +75 -8
- package/architecture/v3-core-mechanism-inventory.json +2 -0
- package/architecture/v4-delivery-authority-parity.json +250 -0
- package/architecture/v4-delivery-warrant-shadow-fixtures.json +41 -9
- package/bin/buildchain.mjs +9 -1
- package/contracts/dev-delivery-authority-v2.schema.json +662 -0
- package/dist/site/agent-index.json +1 -0
- package/dist/site/artifact-schemas.json +2 -0
- package/dist/site/buildchain-contract.json +91 -8
- package/dist/site/buildchain-site.json +169 -18
- package/dist/site/capability-registry.json +2 -2
- package/dist/site/cli-registry.json +46 -2
- package/dist/site/kfd-claims.json +43 -9
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +3 -3
- package/dist/site/node-api-registry.json +1694 -165
- package/dist/site/page-registry.json +162 -11
- package/dist/site/public-surface-audit.json +367 -7
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +2 -0
- package/dist/site/schemas/dev-delivery-authority-v2.schema.json +662 -0
- package/dist/site/site-manifest.json +7 -7
- package/dist/site/workflow-registry.json +22 -6
- package/docs/MAP.md +1 -0
- package/docs/cli-reference.md +211 -13
- package/docs/dev-delivery-qualification-landing-adr.md +251 -0
- package/docs/dev-delivery-warrant.md +330 -38
- package/docs/node-api-reference.md +113 -53
- package/package.json +5 -1
- package/packages/core/buildchain-contract.js +3 -2
- package/packages/core/dev-delivery-authority-candidate.js +270 -0
- package/packages/core/dev-delivery-authority-evidence.js +146 -0
- package/packages/core/dev-delivery-authority-landing.js +461 -0
- package/packages/core/dev-delivery-authority-observation.js +48 -0
- package/packages/core/dev-delivery-authority-qualification.js +591 -0
- package/packages/core/dev-delivery-authority-settlement.js +213 -0
- package/packages/core/dev-delivery-authority-state.js +583 -0
- package/packages/core/dev-delivery-candidate-identity.js +13 -0
- package/packages/core/dev-delivery-contract-surface.js +76 -0
- package/packages/core/dev-delivery-execution-failure.js +133 -0
- package/packages/core/dev-delivery-execution-transfer.js +572 -0
- package/packages/core/dev-delivery-landing-admission-core.js +119 -0
- package/packages/core/dev-delivery-landing-readback.js +598 -0
- package/packages/core/dev-delivery-landing-terminal-evidence.js +271 -0
- package/packages/core/dev-delivery-landing-testing-port.js +6 -0
- package/packages/core/dev-delivery-native-execution.js +110 -0
- package/packages/core/dev-delivery-native-proof.js +546 -0
- package/packages/core/dev-delivery-process-boundary.js +550 -0
- package/packages/core/dev-delivery-provider-attempt.js +127 -0
- package/packages/core/dev-delivery-provider-heartbeat.js +370 -0
- package/packages/core/dev-delivery-warrant-cancellation.js +1 -0
- package/packages/core/dev-delivery-warrant-qualification.js +145 -0
- package/packages/core/dev-delivery-warrant-settlement.js +237 -36
- package/packages/core/dev-delivery-warrant-state.js +564 -0
- package/packages/core/dev-delivery-warrant.js +321 -368
- package/scripts/buildchain-cli-help.mjs +11 -2
- package/scripts/check-v4-floating-consumer-policy-contract.mjs +1 -1
- package/scripts/dev-delivery-authority-command-adapters.mjs +206 -0
- package/scripts/dev-delivery-authority-provider.mjs +28 -0
- package/scripts/dev-delivery-authority.mjs +490 -0
- package/scripts/dev-delivery-native-run.mjs +177 -0
- package/scripts/dev-delivery-process-boundary.mjs +260 -0
- package/scripts/dev-delivery-proof.mjs +67 -2
- package/scripts/dev-delivery-provider-heartbeat.mjs +215 -0
- package/scripts/dev-delivery-two-phase-resume.mjs +345 -0
- package/scripts/dev-delivery-two-phase.mjs +573 -0
- package/scripts/dev-delivery-warrant-options.mjs +266 -0
- package/scripts/dev-delivery-warrant-store.mjs +227 -0
- package/scripts/dev-delivery-warrant.mjs +227 -193
- package/scripts/dev-pr-auto-merge.mjs +1 -1
- package/scripts/dev-pr-delivery-warrant.mjs +10 -0
- package/scripts/generate-site-bundle.mjs +26 -4
- package/scripts/npm-publish-transaction.mjs +2 -2
- package/scripts/release-train-self-dogfood.mjs +94 -92
- package/scripts/site-capability-metadata.mjs +12 -0
- package/templates/native-dev-delivery.yml +143 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-v4-delivery-authority-parity",
|
|
4
|
+
"sourceAuthority": {
|
|
5
|
+
"decision": "architecture/decisions/0003-two-phase-delivery-warrant.md",
|
|
6
|
+
"reference": "docs/dev-delivery-warrant.md",
|
|
7
|
+
"contract": "kungfu-buildchain-dev-delivery-warrant-queue",
|
|
8
|
+
"schemaVersion": 1
|
|
9
|
+
},
|
|
10
|
+
"target": {
|
|
11
|
+
"branch": "dev/v4/v4.0",
|
|
12
|
+
"singleFlightContract": "kungfu-buildchain-dev-delivery-warrant-queue",
|
|
13
|
+
"boundedAuthorityContract": "kungfu-buildchain-dev-delivery-authority",
|
|
14
|
+
"boundedAuthoritySchemaVersion": 2
|
|
15
|
+
},
|
|
16
|
+
"allowedDispositions": [
|
|
17
|
+
"implemented",
|
|
18
|
+
"superseded-equivalent",
|
|
19
|
+
"missing-before-closeout"
|
|
20
|
+
],
|
|
21
|
+
"invariants": [
|
|
22
|
+
{
|
|
23
|
+
"id": "DA-01",
|
|
24
|
+
"claim": "Native delivery receives provisional authority before expensive execution and cannot use that phase as merge admission.",
|
|
25
|
+
"disposition": "implemented",
|
|
26
|
+
"implementationEvidence": [
|
|
27
|
+
"packages/core/dev-delivery-warrant.js",
|
|
28
|
+
"scripts/dev-delivery-two-phase.mjs"
|
|
29
|
+
],
|
|
30
|
+
"verificationEvidence": [
|
|
31
|
+
"tests/dev-delivery-two-phase.test.mjs",
|
|
32
|
+
"tests/dev-delivery-two-phase-run.test.mjs"
|
|
33
|
+
],
|
|
34
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-01"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "DA-02",
|
|
38
|
+
"claim": "The provisional Warrant heartbeats one exact token and generation, and stale or expired owners cannot renew or qualify.",
|
|
39
|
+
"disposition": "implemented",
|
|
40
|
+
"implementationEvidence": [
|
|
41
|
+
"packages/core/dev-delivery-warrant.js",
|
|
42
|
+
"scripts/dev-delivery-native-run.mjs"
|
|
43
|
+
],
|
|
44
|
+
"verificationEvidence": [
|
|
45
|
+
"tests/dev-delivery-two-phase.test.mjs",
|
|
46
|
+
"tests/dev-delivery-native-run.test.mjs"
|
|
47
|
+
],
|
|
48
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-02"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "DA-03",
|
|
52
|
+
"claim": "Native proof binds semantic source, exact source head, qualified base, affected closure, dependency and toolchain roots, environment, heartbeat receipt, and shard evidence; PR-controlled native code and its complete readable process ancestry receive no controller or provider write credentials, the recursively enumerated transfer is an exact regular-file-only closed set staged separately from candidate evidence, an independent hosted heartbeat runner chains durable state and receipt roots through native and seal completion, and only a live-readback-proven distinct GitHub-hosted finalizer job and runner may verify the latest state, revalidate bytes, recompute canonical failure evidence, qualify, or settle the exact bound failure.",
|
|
53
|
+
"disposition": "implemented",
|
|
54
|
+
"implementationEvidence": [
|
|
55
|
+
"packages/core/dev-delivery-native-proof.js",
|
|
56
|
+
"packages/core/dev-delivery-execution-failure.js",
|
|
57
|
+
"packages/core/dev-delivery-execution-transfer.js",
|
|
58
|
+
"packages/core/dev-delivery-process-boundary.js",
|
|
59
|
+
"packages/core/dev-delivery-provider-heartbeat.js",
|
|
60
|
+
"scripts/dev-delivery-native-run.mjs",
|
|
61
|
+
"scripts/dev-delivery-process-boundary.mjs",
|
|
62
|
+
"scripts/dev-delivery-provider-heartbeat.mjs",
|
|
63
|
+
".github/workflows/dev-pr-auto-merge.yml"
|
|
64
|
+
],
|
|
65
|
+
"verificationEvidence": [
|
|
66
|
+
"tests/dev-delivery-two-phase.test.mjs",
|
|
67
|
+
"tests/dev-delivery-native-run.test.mjs",
|
|
68
|
+
"tests/dev-delivery-process-boundary.test.mjs",
|
|
69
|
+
"tests/dev-delivery-process-boundary-negative.test.mjs",
|
|
70
|
+
"tests/dev-delivery-provider-heartbeat.test.mjs",
|
|
71
|
+
"tests/build-surface.test.mjs"
|
|
72
|
+
],
|
|
73
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-03"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "DA-04",
|
|
77
|
+
"claim": "Interruption resumes only from a live qualified fence or a proof whose complete attributed base delta remains disjoint; ambiguity or overlap revalidates.",
|
|
78
|
+
"disposition": "implemented",
|
|
79
|
+
"implementationEvidence": [
|
|
80
|
+
"packages/core/dev-delivery-native-proof.js",
|
|
81
|
+
"scripts/dev-delivery-two-phase-resume.mjs"
|
|
82
|
+
],
|
|
83
|
+
"verificationEvidence": [
|
|
84
|
+
"tests/dev-delivery-two-phase.test.mjs",
|
|
85
|
+
"tests/dev-delivery-two-phase-run.test.mjs"
|
|
86
|
+
],
|
|
87
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-04"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "DA-05",
|
|
91
|
+
"claim": "Native success upgrades the same fence atomically to qualified authority and records exact proof and reuse roots without minting a second token.",
|
|
92
|
+
"disposition": "implemented",
|
|
93
|
+
"implementationEvidence": [
|
|
94
|
+
"packages/core/dev-delivery-native-proof.js",
|
|
95
|
+
"packages/core/dev-delivery-warrant.js"
|
|
96
|
+
],
|
|
97
|
+
"verificationEvidence": ["tests/dev-delivery-two-phase.test.mjs"],
|
|
98
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-05"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "DA-06",
|
|
102
|
+
"claim": "Expiry does not imply worker termination; an expired provisional holder remains exclusive until exact fenced terminal settlement, and duplicate settlement is idempotent.",
|
|
103
|
+
"disposition": "implemented",
|
|
104
|
+
"implementationEvidence": [
|
|
105
|
+
"packages/core/dev-delivery-warrant.js",
|
|
106
|
+
"packages/core/dev-delivery-warrant-settlement.js"
|
|
107
|
+
],
|
|
108
|
+
"verificationEvidence": [
|
|
109
|
+
"tests/dev-delivery-warrant.test.mjs",
|
|
110
|
+
"tests/dev-delivery-two-phase.test.mjs"
|
|
111
|
+
],
|
|
112
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-06"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"id": "DA-07",
|
|
116
|
+
"claim": "GitHub merge_group and the protected Project Cut remain final integration authority; a Warrant alone never mutates branch protection or proves landing.",
|
|
117
|
+
"disposition": "implemented",
|
|
118
|
+
"implementationEvidence": [
|
|
119
|
+
"packages/core/dev-delivery-proof.js",
|
|
120
|
+
"scripts/dev-pr-delivery-warrant.mjs",
|
|
121
|
+
".github/workflows/dev-pr-auto-merge.yml"
|
|
122
|
+
],
|
|
123
|
+
"verificationEvidence": [
|
|
124
|
+
"tests/dev-delivery-warrant.test.mjs",
|
|
125
|
+
"tests/dev-pr-auto-merge.test.mjs"
|
|
126
|
+
],
|
|
127
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-07"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "DA-08",
|
|
131
|
+
"claim": "Bounded mode issues no more than the configured Qualification Leases and only across disjoint rooted safety domains; unknown or overlapping domains serialize.",
|
|
132
|
+
"disposition": "implemented",
|
|
133
|
+
"implementationEvidence": [
|
|
134
|
+
"packages/core/dev-delivery-authority-qualification.js",
|
|
135
|
+
"packages/core/dev-delivery-authority-state.js"
|
|
136
|
+
],
|
|
137
|
+
"verificationEvidence": ["tests/dev-delivery-authority.test.mjs"],
|
|
138
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-08"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "DA-09",
|
|
142
|
+
"claim": "Qualification authority cannot admit merge_group; a new Landing requires complete verified-native qualification, its public admission API derives provider identity only from live GitHub readback, and exactly one exclusive Landing Warrant binds the candidate, source head, token, generation, state root, protected base, merge-group head, and verified provider attempt.",
|
|
143
|
+
"disposition": "implemented",
|
|
144
|
+
"implementationEvidence": [
|
|
145
|
+
"packages/core/dev-delivery-authority-landing.js",
|
|
146
|
+
"packages/core/dev-delivery-landing-admission-core.js",
|
|
147
|
+
"packages/core/dev-delivery-authority-qualification.js",
|
|
148
|
+
"contracts/dev-delivery-authority-v2.schema.json"
|
|
149
|
+
],
|
|
150
|
+
"verificationEvidence": ["tests/dev-delivery-authority.test.mjs"],
|
|
151
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-09"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "DA-10",
|
|
155
|
+
"claim": "Landing is fair under bounded overtaking, including strict FIFO at zero, and never exposes more than one landing writer under contention.",
|
|
156
|
+
"disposition": "implemented",
|
|
157
|
+
"implementationEvidence": [
|
|
158
|
+
"packages/core/dev-delivery-authority-qualification.js",
|
|
159
|
+
"packages/core/dev-delivery-authority-landing.js"
|
|
160
|
+
],
|
|
161
|
+
"verificationEvidence": ["tests/dev-delivery-authority.test.mjs"],
|
|
162
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-10"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "DA-11",
|
|
166
|
+
"claim": "Every Landing admission derives the provider attempt through non-injectable live GitHub readback, and every admitted heartbeat carries that exact persisted attempt and renews only through the public GitHub workflow run-attempt and job readback; qualification expiry releases only qualification capacity, while every Landing Warrant remains exclusive until an independent terminal verifier reads the immutable historical attempt endpoint and returns fresh rooted evidence bound to state, fence, generation, candidate, admitted source head, provider run, provider job, and protected-base containment without depending on a mutable run projection, referenced-workflow inference, or the synchronized current PR head; runtime sealing enforces the published repository, protected-base, numeric identity, completed-state, run-conclusion, job-conclusion, pull-request-state, merged-flag, containment, and outcome schema, and every resulting settlement is deterministic and idempotent.",
|
|
167
|
+
"disposition": "implemented",
|
|
168
|
+
"implementationEvidence": [
|
|
169
|
+
"packages/core/dev-delivery-authority-qualification.js",
|
|
170
|
+
"packages/core/dev-delivery-authority-landing.js",
|
|
171
|
+
"packages/core/dev-delivery-landing-admission-core.js",
|
|
172
|
+
"packages/core/dev-delivery-landing-readback.js"
|
|
173
|
+
],
|
|
174
|
+
"verificationEvidence": ["tests/dev-delivery-authority.test.mjs"],
|
|
175
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-11"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "DA-12",
|
|
179
|
+
"claim": "Expected-old state roots and non-force Git ref advancement serialize admission and prevent partial or competing writes from becoming two durable authorities.",
|
|
180
|
+
"disposition": "implemented",
|
|
181
|
+
"implementationEvidence": [
|
|
182
|
+
"scripts/dev-delivery-authority.mjs",
|
|
183
|
+
"scripts/dev-delivery-warrant.mjs"
|
|
184
|
+
],
|
|
185
|
+
"verificationEvidence": [
|
|
186
|
+
"tests/dev-delivery-authority.test.mjs",
|
|
187
|
+
"tests/dev-delivery-warrant-command.test.mjs"
|
|
188
|
+
],
|
|
189
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-12"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "DA-13",
|
|
193
|
+
"claim": "One-shot v1 migration preserves the rooted legacy state and exact active fence while representing phase-less and qualified v1 compatibility honestly; compatibility-only evidence cannot acquire v2 native proof authority or mint a new Landing Warrant.",
|
|
194
|
+
"disposition": "implemented",
|
|
195
|
+
"implementationEvidence": [
|
|
196
|
+
"packages/core/dev-delivery-authority-state.js",
|
|
197
|
+
"scripts/dev-delivery-authority.mjs"
|
|
198
|
+
],
|
|
199
|
+
"verificationEvidence": ["tests/dev-delivery-authority.test.mjs"],
|
|
200
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-13"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "DA-14",
|
|
204
|
+
"claim": "Historical v1 queue bytes and native proofs remain readable, phase-less active-owner handoff uses exact legacy-safe bindings without a native command contract, and unbound or compatibility-only legacy proof cannot acquire new exact reuse or Landing authority.",
|
|
205
|
+
"disposition": "implemented",
|
|
206
|
+
"implementationEvidence": [
|
|
207
|
+
"packages/core/dev-delivery-warrant.js",
|
|
208
|
+
"packages/core/dev-delivery-native-proof.js",
|
|
209
|
+
".github/workflows/dev-pr-auto-merge.yml"
|
|
210
|
+
],
|
|
211
|
+
"verificationEvidence": [
|
|
212
|
+
"tests/dev-delivery-authority.test.mjs",
|
|
213
|
+
"tests/dev-delivery-two-phase.test.mjs"
|
|
214
|
+
],
|
|
215
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-14"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"id": "DA-15",
|
|
219
|
+
"claim": "The supported CLI, Node exports including independent Landing terminal readback, schema, documentation, generated references, and byte-exact generated site schema expose bounded v2 authority consistently, while the native template and Buildchain public v4-alpha caller truthfully remain single-flight v1 and do not advertise v2 Landing execution; matching stable and alpha contract locks preserve that explicit boundary.",
|
|
220
|
+
"disposition": "implemented",
|
|
221
|
+
"implementationEvidence": [
|
|
222
|
+
"bin/buildchain.mjs",
|
|
223
|
+
"package.json",
|
|
224
|
+
"packages/core/dev-delivery-landing-readback.js",
|
|
225
|
+
"packages/core/dev-delivery-contract-surface.js",
|
|
226
|
+
"contracts/dev-delivery-authority-v2.schema.json",
|
|
227
|
+
"docs/dev-delivery-warrant.md",
|
|
228
|
+
"docs/dev-delivery-qualification-landing-adr.md",
|
|
229
|
+
"templates/native-dev-delivery.yml",
|
|
230
|
+
".github/workflows/buildchain-dev-delivery.yml",
|
|
231
|
+
".buildchain/contract-lock.json",
|
|
232
|
+
".buildchain/alpha-contract-lock.json"
|
|
233
|
+
],
|
|
234
|
+
"verificationEvidence": [
|
|
235
|
+
"tests/dev-delivery-authority.test.mjs",
|
|
236
|
+
"tests/dev-pr-auto-merge.test.mjs",
|
|
237
|
+
"tests/build-surface.test.mjs"
|
|
238
|
+
],
|
|
239
|
+
"behavioralProof": "tests/v4-delivery-authority-parity.test.mjs#DA-15"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "DA-16",
|
|
243
|
+
"claim": "Independent review, protected merge into dev/v4/v4.0, and exact post-merge readback are required external closeout evidence and are not established by local tests.",
|
|
244
|
+
"disposition": "missing-before-closeout",
|
|
245
|
+
"implementationEvidence": [],
|
|
246
|
+
"verificationEvidence": []
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"matrixRoot": "sha256:5be5abf70b982374f32a1400d4ec7c830017a0473d03165e831a506c94c8b881"
|
|
250
|
+
}
|
|
@@ -25,19 +25,24 @@
|
|
|
25
25
|
"id": "submit-101",
|
|
26
26
|
"operation": "submit",
|
|
27
27
|
"pullRequestNumber": 101,
|
|
28
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
28
29
|
"now": "2026-08-07T00:00:01Z"
|
|
29
30
|
},
|
|
30
31
|
{
|
|
31
32
|
"id": "submit-102",
|
|
32
33
|
"operation": "submit",
|
|
33
34
|
"pullRequestNumber": 102,
|
|
34
|
-
"overrides": {
|
|
35
|
+
"overrides": {
|
|
36
|
+
"deliveryClass": "non-native-fast",
|
|
37
|
+
"priority": "expedited"
|
|
38
|
+
},
|
|
35
39
|
"now": "2026-08-07T00:00:02Z"
|
|
36
40
|
},
|
|
37
41
|
{
|
|
38
42
|
"id": "duplicate-101",
|
|
39
43
|
"operation": "submit",
|
|
40
44
|
"pullRequestNumber": 101,
|
|
45
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
41
46
|
"now": "2026-08-07T00:00:03Z"
|
|
42
47
|
},
|
|
43
48
|
{
|
|
@@ -61,7 +66,7 @@
|
|
|
61
66
|
"now": "2026-08-07T00:02:00Z"
|
|
62
67
|
}
|
|
63
68
|
],
|
|
64
|
-
"expectedLegacyProjectionRoot": "sha256:
|
|
69
|
+
"expectedLegacyProjectionRoot": "sha256:da58eec588414e16781ffad1b92d3733b207b43e2c7846f6b659c71b150d964d"
|
|
65
70
|
},
|
|
66
71
|
{
|
|
67
72
|
"id": "lease-expiry-and-stale-fence",
|
|
@@ -76,36 +81,60 @@
|
|
|
76
81
|
"id": "submit",
|
|
77
82
|
"operation": "submit",
|
|
78
83
|
"pullRequestNumber": 120,
|
|
84
|
+
"overrides": {
|
|
85
|
+
"environmentRoot": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
|
|
86
|
+
"nativeCommandContract": {
|
|
87
|
+
"schema": "kungfu.buildchain.native-command-contract/v1",
|
|
88
|
+
"runner": "bash-lc",
|
|
89
|
+
"command": "node --test tests/v4-warrant-shadow-plan.test.mjs",
|
|
90
|
+
"commandRoot": "sha256:4d9a03536802c46fe254f247b7236925aec49d789e5e9ac7b2dceac08d7cefab"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
79
93
|
"now": "2026-08-07T01:00:01Z"
|
|
80
94
|
},
|
|
95
|
+
{
|
|
96
|
+
"id": "submit-successor",
|
|
97
|
+
"operation": "submit",
|
|
98
|
+
"pullRequestNumber": 121,
|
|
99
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
100
|
+
"now": "2026-08-07T01:00:02Z"
|
|
101
|
+
},
|
|
81
102
|
{
|
|
82
103
|
"id": "select-old",
|
|
83
104
|
"operation": "select",
|
|
84
105
|
"saveWarrant": "old",
|
|
85
106
|
"leaseSeconds": 60,
|
|
86
|
-
"now": "2026-08-07T01:00:
|
|
107
|
+
"now": "2026-08-07T01:00:03Z"
|
|
87
108
|
},
|
|
88
109
|
{
|
|
89
110
|
"id": "recover",
|
|
90
111
|
"operation": "recover-expired",
|
|
91
112
|
"now": "2026-08-07T01:02:00Z"
|
|
92
113
|
},
|
|
114
|
+
{
|
|
115
|
+
"id": "close-expired",
|
|
116
|
+
"operation": "close",
|
|
117
|
+
"useWarrant": "old",
|
|
118
|
+
"outcome": "terminal-failure",
|
|
119
|
+
"reason": "fenced native worker stop proved",
|
|
120
|
+
"now": "2026-08-07T01:02:01Z"
|
|
121
|
+
},
|
|
93
122
|
{
|
|
94
123
|
"id": "select-new",
|
|
95
124
|
"operation": "select",
|
|
96
125
|
"saveWarrant": "new",
|
|
97
126
|
"leaseSeconds": 60,
|
|
98
|
-
"now": "2026-08-07T01:02:
|
|
127
|
+
"now": "2026-08-07T01:02:02Z"
|
|
99
128
|
},
|
|
100
129
|
{
|
|
101
130
|
"id": "reject-old",
|
|
102
131
|
"operation": "heartbeat",
|
|
103
132
|
"useWarrant": "old",
|
|
104
133
|
"expectError": "stale-fencing-token",
|
|
105
|
-
"now": "2026-08-07T01:02:
|
|
134
|
+
"now": "2026-08-07T01:02:03Z"
|
|
106
135
|
}
|
|
107
136
|
],
|
|
108
|
-
"expectedLegacyProjectionRoot": "sha256:
|
|
137
|
+
"expectedLegacyProjectionRoot": "sha256:24cf52c9108393b268cb40943f540c0e9a000a782e59251e3a9b6d5a63c1eb06"
|
|
109
138
|
},
|
|
110
139
|
{
|
|
111
140
|
"id": "settlement-idempotence",
|
|
@@ -129,6 +158,7 @@
|
|
|
129
158
|
"id": "submit",
|
|
130
159
|
"operation": "submit",
|
|
131
160
|
"pullRequestNumber": 150,
|
|
161
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
132
162
|
"now": "2026-08-07T02:00:02Z"
|
|
133
163
|
},
|
|
134
164
|
{
|
|
@@ -153,7 +183,7 @@
|
|
|
153
183
|
"now": "2026-08-07T02:02:00Z"
|
|
154
184
|
}
|
|
155
185
|
],
|
|
156
|
-
"expectedLegacyProjectionRoot": "sha256:
|
|
186
|
+
"expectedLegacyProjectionRoot": "sha256:60fead53ff605fcd81934e6d752ea5f2b4951c57addcec1c1df87fb6dec9b7ba"
|
|
157
187
|
},
|
|
158
188
|
{
|
|
159
189
|
"id": "queued-cancellation-idempotence",
|
|
@@ -168,6 +198,7 @@
|
|
|
168
198
|
"id": "submit",
|
|
169
199
|
"operation": "submit",
|
|
170
200
|
"pullRequestNumber": 151,
|
|
201
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
171
202
|
"now": "2026-08-07T03:00:01Z"
|
|
172
203
|
},
|
|
173
204
|
{
|
|
@@ -187,7 +218,7 @@
|
|
|
187
218
|
"now": "2026-08-07T03:00:03Z"
|
|
188
219
|
}
|
|
189
220
|
],
|
|
190
|
-
"expectedLegacyProjectionRoot": "sha256:
|
|
221
|
+
"expectedLegacyProjectionRoot": "sha256:7000f721d975b379c0f321d935ab70e38589229a691517a3c41d2b1330fd3796"
|
|
191
222
|
},
|
|
192
223
|
{
|
|
193
224
|
"id": "cas-response-loss-provider-conflict",
|
|
@@ -202,6 +233,7 @@
|
|
|
202
233
|
"id": "submit",
|
|
203
234
|
"operation": "submit",
|
|
204
235
|
"pullRequestNumber": 160,
|
|
236
|
+
"overrides": { "deliveryClass": "non-native-fast" },
|
|
205
237
|
"now": "2026-08-07T04:00:01Z"
|
|
206
238
|
},
|
|
207
239
|
{
|
|
@@ -221,7 +253,7 @@
|
|
|
221
253
|
},
|
|
222
254
|
{ "id": "provider-stop", "operation": "provider-conflict" }
|
|
223
255
|
],
|
|
224
|
-
"expectedLegacyProjectionRoot": "sha256:
|
|
256
|
+
"expectedLegacyProjectionRoot": "sha256:c616a8278ace8ece6933987cf9559ca53d4e2fba0e937664c2770464800cff04"
|
|
225
257
|
}
|
|
226
258
|
]
|
|
227
259
|
}
|
package/bin/buildchain.mjs
CHANGED
|
@@ -1385,12 +1385,20 @@ async function handleDevCommand(args) {
|
|
|
1385
1385
|
runScript("dev-delivery-warrant.mjs", devArgs);
|
|
1386
1386
|
return;
|
|
1387
1387
|
}
|
|
1388
|
+
if (subcommand === "authority") {
|
|
1389
|
+
runScript("dev-delivery-authority.mjs", devArgs);
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1388
1392
|
if (subcommand === "proof") {
|
|
1389
1393
|
runScript("dev-delivery-proof.mjs", devArgs);
|
|
1390
1394
|
return;
|
|
1391
1395
|
}
|
|
1396
|
+
if (subcommand === "two-phase") {
|
|
1397
|
+
runScript("dev-delivery-two-phase.mjs", devArgs);
|
|
1398
|
+
return;
|
|
1399
|
+
}
|
|
1392
1400
|
if (subcommand !== "merge-queue") {
|
|
1393
|
-
throw new Error("usage: buildchain dev <pr-admit|merge-queue|warrant|proof> [options]");
|
|
1401
|
+
throw new Error("usage: buildchain dev <pr-admit|merge-queue|warrant|authority|proof|two-phase> [options]");
|
|
1394
1402
|
}
|
|
1395
1403
|
runScript("dev-merge-queue.mjs", devArgs);
|
|
1396
1404
|
return;
|