@kungfu-tech/buildchain 3.0.9-alpha.7 → 3.0.9-alpha.9

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.
Files changed (43) hide show
  1. package/bin/buildchain.mjs +5 -1
  2. package/contracts/dev-delivery-authority-v2.schema.json +253 -0
  3. package/dist/site/agent-index.json +1 -0
  4. package/dist/site/artifact-schemas.json +2 -0
  5. package/dist/site/buildchain-contract.json +7 -7
  6. package/dist/site/buildchain-site.json +135 -19
  7. package/dist/site/capability-registry.json +2 -2
  8. package/dist/site/cli-registry.json +23 -0
  9. package/dist/site/kfd-claims.json +33 -8
  10. package/dist/site/kfd-upstream-aggregate.json +1 -1
  11. package/dist/site/manual-registry.json +4 -4
  12. package/dist/site/node-api-registry.json +907 -143
  13. package/dist/site/page-registry.json +127 -11
  14. package/dist/site/public-surface-audit.json +228 -7
  15. package/dist/site/publication-registry.json +4 -4
  16. package/dist/site/release-provenance.json +2 -0
  17. package/dist/site/schemas/dev-delivery-authority-v2.schema.json +442 -0
  18. package/dist/site/site-manifest.json +8 -8
  19. package/dist/site/workflow-registry.json +8 -6
  20. package/docs/MAP.md +1 -0
  21. package/docs/cli-reference.md +121 -0
  22. package/docs/dev-delivery-qualification-landing-adr.md +137 -0
  23. package/docs/dev-delivery-warrant.md +106 -13
  24. package/docs/node-api-reference.md +51 -20
  25. package/docs/versioning.md +2 -0
  26. package/package.json +4 -2
  27. package/packages/core/buildchain-channel-identity.js +2 -3
  28. package/packages/core/dev-delivery-authority.js +996 -0
  29. package/packages/core/dev-delivery-native-proof.js +89 -4
  30. package/packages/core/dev-delivery-warrant-settlement.js +65 -22
  31. package/packages/core/dev-delivery-warrant.js +92 -44
  32. package/scripts/buildchain-cli-help.mjs +3 -0
  33. package/scripts/check-inventory.mjs +1 -1
  34. package/scripts/dev-delivery-authority.mjs +368 -0
  35. package/scripts/dev-delivery-native-run.mjs +52 -4
  36. package/scripts/dev-delivery-proof.mjs +10 -0
  37. package/scripts/dev-delivery-two-phase-resume.mjs +90 -0
  38. package/scripts/dev-delivery-two-phase.mjs +31 -52
  39. package/scripts/dev-delivery-warrant.mjs +9 -2
  40. package/scripts/generate-site-bundle.mjs +6 -3
  41. package/scripts/site-capability-metadata.mjs +13 -1
  42. package/scripts/workflow-call-contract.mjs +1 -1
  43. package/templates/native-dev-delivery.yml +17 -13
@@ -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`
@@ -0,0 +1,137 @@
1
+ ---
2
+ status: accepted
3
+ period: ongoing
4
+ theme: dev-delivery-qualification-landing-authority
5
+ doc_type: architecture-decision-record
6
+ source_level: local-files
7
+ confidence: high
8
+ sensitivity: public
9
+ evidence_grade: A
10
+ review_state: self-reviewed
11
+ last_reviewed: 2026-08-12
12
+ ---
13
+
14
+ # ADR: Qualification Leases and the exclusive Landing Warrant
15
+
16
+ ## Decision
17
+
18
+ Buildchain has two explicit protected-dev authority modes:
19
+
20
+ 1. `single-flight-warrant` is the default and continues to use the
21
+ `kungfu-buildchain-dev-delivery-warrant-queue` v1 state and
22
+ `buildchain dev warrant` commands unchanged.
23
+ 2. `bounded-qualification-landing` is opt-in and uses the
24
+ `kungfu-buildchain-dev-delivery-authority` v2 state. It may issue up to the
25
+ configured number of Qualification Leases, but it may issue exactly one
26
+ Landing Warrant.
27
+
28
+ The modes use different contracts, state refs, and CLI command families. There
29
+ is no implicit reinterpretation of a v1 Warrant. A consumer turns the new mode
30
+ on only by explicitly migrating the exact current v1 state and deploying the
31
+ v2 controller against the dedicated
32
+ `buildchain/dev-delivery-authority/<dev-line>` state ref.
33
+
34
+ Migration preserves the immutable v1 `stateRoot`, candidate identity, source
35
+ and proof roots, fencing token, generation, and lease times in a rooted
36
+ migration receipt. An active provisional Warrant becomes a
37
+ qualification-only lease and remains unable to admit `merge_group`; an active
38
+ qualified Warrant becomes the one exclusive Landing Warrant. The migration is
39
+ one-shot: a v2 state is never accepted as v1 input, and source/evidence bytes
40
+ are not regenerated. The legacy ref remains immutable rollback evidence.
41
+
42
+ ## Authority invariants
43
+
44
+ A Qualification Lease carries:
45
+
46
+ - `authority = qualification-only`;
47
+ - `mergeGroupAdmission = false`;
48
+ - one exact candidate id, token, generation, issue time, and expiry; and
49
+ - a place in a list bounded by `policy.maxQualificationLeases`.
50
+
51
+ It authorizes expensive qualification work only. It cannot authorize GitHub
52
+ `merge_group`, cannot be upgraded in place to landing authority, and is removed
53
+ when qualification evidence is recorded. Each new candidate declares a sorted
54
+ set of rooted `qualificationDomains`. Candidates with disjoint sets may hold
55
+ leases concurrently. An overlapping set is serialized; an empty set is treated
56
+ as unknown and therefore conflicts with every active candidate. The scheduler
57
+ returns a content-rooted reason for either refusal.
58
+
59
+ The Landing Warrant carries:
60
+
61
+ - `authority = merge-group-admission`;
62
+ - `mergeGroupAdmission = true`;
63
+ - one exact qualified candidate id, token, generation, issue time, and expiry;
64
+ and
65
+ - the only non-null `landingWarrant` slot in the durable state.
66
+
67
+ Only `admitDevDeliveryMergeGroup` and `buildchain dev authority
68
+ admit-merge-group` consume Landing authority. They bind the exact current state
69
+ root, candidate, protected base, source head, merge-group head, token, and
70
+ generation. A Qualification Lease fails closed at this boundary.
71
+
72
+ The state normalizer rejects a lease beyond the configured bound, duplicate
73
+ Qualification Leases for one candidate, a candidate holding qualification and
74
+ Landing authority together, a Landing Warrant without its exact landing
75
+ candidate, and any state-root drift. Git expected-old, non-force ref advancement
76
+ continues to serialize durable mutations. These checks retain the existing
77
+ two-phase safety rule: source/native qualification is evidence, while the
78
+ exclusive final authority is candidate- and integration-specific.
79
+
80
+ ## Bounded scheduler and recovery
81
+
82
+ Landing selection is FIFO among candidates that have completed qualification.
83
+ When a later candidate receives a Landing Warrant, each older nonterminal
84
+ candidate consumes one durable overtake from its
85
+ `policy.maxLandingOvertakes` budget. Once an older candidate reaches that
86
+ bound, later candidates cannot receive a Warrant. The older candidate receives
87
+ the next landing priority after qualification, or reaches a rooted terminal
88
+ failure after `policy.maxQualificationAttempts` heartbeat expiries. This makes
89
+ the bound independent of controller restart frequency or later arrival rate;
90
+ setting it to zero enforces strict FIFO landing priority.
91
+
92
+ Qualification Leases and Landing Warrants both support fenced heartbeats. A
93
+ missed heartbeat is recovered at expiry; recovery releases capacity and emits
94
+ a deterministic content-rooted wake instruction for the next domain-eligible
95
+ qualification candidates and the next fair landing candidate. Completion,
96
+ cancellation, terminal failure, dequeue, and already-merged settlement emit the
97
+ same wake shape. Exact duplicate heartbeats, recovery, and terminal events are
98
+ state-root-preserving no-ops. Competing controllers still commit through one
99
+ expected-old, non-force ref update, so only one transition can become durable.
100
+
101
+ ## Terminal settlement
102
+
103
+ Terminal provider evidence is authoritative cleanup input. A matching merged,
104
+ failed, dequeued, or cancelled candidate releases its Qualification Lease or
105
+ Landing Warrant in the same expected-old state transition, even when the lease
106
+ TTL has not expired. An active authority requires its exact token and
107
+ generation for that transition. Repeating the same outcome and evidence is a
108
+ root-preserving no-op; outcome or evidence drift fails closed. A terminal event
109
+ for a candidate that never entered the state is also an explicit no-op.
110
+
111
+ TTL recovery remains crash recovery, not the normal terminal cleanup path.
112
+
113
+ ## Public contract
114
+
115
+ - Machine schema:
116
+ [`contracts/dev-delivery-authority-v2.schema.json`](../contracts/dev-delivery-authority-v2.schema.json),
117
+ packaged as `dist/site/schemas/dev-delivery-authority-v2.schema.json`.
118
+ - Node API: `@kungfu-tech/buildchain/dev-delivery-authority` exports the v2
119
+ state, migration, lease, heartbeat, recovery, Landing, admission,
120
+ observation, and settlement functions. `@kungfu-tech/buildchain/dev-delivery-warrant`
121
+ remains byte- and behavior-compatible for v1 consumers.
122
+ - CLI: `buildchain dev authority
123
+ <migrate|submit|lease-qualification|heartbeat-qualification|complete-qualification|lease-landing|heartbeat-landing|recover|admit-merge-group|settle|observe>`.
124
+ - Generated references: [`cli-reference.md`](cli-reference.md) and
125
+ [`node-api-reference.md`](node-api-reference.md).
126
+
127
+ All mutations are plan-only unless `--execute` is supplied. Merge-group
128
+ admission is always a read-only authority check; it never mutates GitHub Merge
129
+ Queue itself.
130
+
131
+ ## Consequences
132
+
133
+ Qualification throughput can increase without increasing the number of
134
+ candidates permitted to land. Consumers retain the byte- and behavior-compatible
135
+ single-flight default until they deliberately deploy the v2 mode. The tradeoff
136
+ is a second state contract and controller family; Buildchain keeps that
137
+ separation explicit so a rollout cannot silently weaken Warrant semantics.
@@ -44,8 +44,11 @@ source binding. It reserves the next protected-dev landing before expensive
44
44
  native shards start, but it is not GitHub Merge Queue admission authority.
45
45
  Heartbeat extends only that generation. Native proof success atomically
46
46
  upgrades the same token and generation to `qualified`; only then may enqueue
47
- begin. Expiry recovery rejects the old token, retains queue age, and returns
48
- the candidate to selection.
47
+ begin. Expiry fences further mutations by the old token, but it does not prove
48
+ that the old native process stopped. The active Warrant therefore remains in
49
+ place until bounded termination is proven by rooted terminal evidence. Only
50
+ that exact fenced settlement may clear the holder and permit successor
51
+ selection.
49
52
 
50
53
  A terminal event may cancel a candidate before selection without minting a
51
54
  Warrant. This transition is limited to an exact non-active queued candidate and
@@ -55,7 +58,12 @@ An active candidate still requires its current fencing token and lease
55
58
  generation. Exact duplicate cancellation evidence is a visible no-op; identity,
56
59
  state, event, or evidence drift fails closed.
57
60
 
58
- The reusable terminal controller uses one `settle` operation for active,
61
+ The reusable terminal controller classifies authoritative completion,
62
+ cancellation, supersession, native failure, and transient dequeue separately.
63
+ `dequeued` alone never clears an active Warrant: a fresh holder continues with
64
+ the same generation and token, while an expired holder waits for proof that its
65
+ fenced worker stopped. Queued work may still settle as dequeued because it never
66
+ started native execution. The controller uses one `settle` operation for active,
59
67
  queued, already-terminal, and never-admitted pull requests. An active Warrant
60
68
  still requires its exact fence and evidence. A matching queued cancellation is
61
69
  persisted normally. A duplicate terminal event or a pull request that never
@@ -86,9 +94,11 @@ evidence. Ready state and approval are established before provisional
86
94
  selection.
87
95
 
88
96
  Native Qualification Proof is separate. It binds semantic source and patch,
89
- plan, affected closure, dependency graph, toolchain, covered paths, native
90
- shard evidence, and the exact dev base used by the native composition. Before
91
- reuse, the consumer classifies the dev delta:
97
+ plan, affected closure, dependency graph, toolchain, the exact execution
98
+ environment contract, covered paths, native shard evidence, and the exact dev
99
+ base used by the native composition. Before reuse, the consumer roots the
100
+ complete attributed Dev delta, including both sides of every rename, then
101
+ classifies it:
92
102
 
93
103
  - unchanged semantic roots plus an unrelated fully attributed base delta reuse
94
104
  native qualification and run only a cheap Project Cut replay. GitHub's `behind`
@@ -97,8 +107,15 @@ reuse, the consumer classifies the dev delta:
97
107
  context roots, and a qualified `project.cut.merge-queue-admission/v1`
98
108
  receipt;
99
109
  - an overlapping delta reruns affected native shards or the full native plan;
100
- - an unknown graph or changed source, plan, closure, dependency, or toolchain
101
- root fails closed to full native qualification.
110
+ - an unknown or truncated graph, ambiguous rename, missing attribution, or
111
+ changed source, plan, closure, dependency, toolchain, or environment root
112
+ fails closed to full native qualification.
113
+
114
+ The reuse decision binds the exact old and current Dev heads, normalized changed
115
+ paths and rename pairs in `baseDeltaRoot`. This makes local and hosted replay of
116
+ the same inputs byte-deterministic. Generated outputs that participate in the
117
+ affected closure must be listed in `affected-paths-json`; a delta touching one
118
+ of those surfaces is overlap, not a documentation-only advance.
102
119
 
103
120
  Integration Delivery Proof is separate and cannot be cached across candidates.
104
121
  It binds the exact current dev base, replay tree, GitHub `merge_group` head and
@@ -123,10 +140,12 @@ buildchain dev warrant select --repository owner/repository \
123
140
  --branch dev/v4/v4.0 --execute
124
141
 
125
142
  buildchain dev proof native --branch dev/v4/v4.0 \
126
- --qualified-base <sha> --affected-paths-json '["packages/native"]' ...
143
+ --qualified-base <sha> --environment-root <root> \
144
+ --affected-paths-json '["packages/native"]' ...
127
145
 
128
146
  buildchain dev proof classify-native --source-proof native-proof.json \
129
- --current-base <sha> --graph-known true --changed-paths-json '[]' ...
147
+ --current-base <sha> --graph-known true --attribution-complete true \
148
+ --changed-paths-json '[]' --renames-json '[]' ...
130
149
 
131
150
  buildchain dev warrant qualify --repository owner/repository \
132
151
  --branch dev/v4/v4.0 --fencing-token <root> --lease-generation 1 \
@@ -144,6 +163,13 @@ buildchain dev warrant cancel-queued --repository owner/repository \
144
163
  Warrant-scoped mutations require the exact fencing token and lease generation.
145
164
  `close` also requires a rooted terminal evidence object.
146
165
 
166
+ Expensive native commands must run through `dev-delivery-native-run.mjs` (or an
167
+ equivalent exact consumer). It performs an exact fenced heartbeat before spawn,
168
+ renews throughout the complete child lifetime, performs a final renewal before
169
+ accepting success, and terminates the process group on heartbeat or fencing
170
+ failure. Missing, stale, expired, or mismatched Warrant state therefore blocks
171
+ native spawn instead of becoming qualification evidence.
172
+
147
173
  Proof commands create, verify, classify, and compose the two proof layers:
148
174
 
149
175
  ```sh
@@ -157,7 +183,7 @@ buildchain dev proof integration --warrant-result warrant.json ...
157
183
 
158
184
  ## Bounded-concurrency shadow qualification
159
185
 
160
- The production queue remains single-flight. A separate effect-disabled shadow
186
+ The default production queue remains single-flight. A separate effect-disabled shadow
161
187
  planner can replay the same deterministic candidate order with a bound of one
162
188
  or two lanes. It does not issue, renew, supersede, close, or persist a Warrant;
163
189
  it cannot enqueue a pull request; and its output explicitly carries no
@@ -188,6 +214,62 @@ additional runner cost, ambiguity, and false positives. A `proceed` result is
188
214
  only evidence for a separate reviewed rollout decision; it never changes the
189
215
  live Warrant schema, queue state, merge-queue policy, or protected branch.
190
216
 
217
+ ## Opt-in bounded qualification and exclusive landing
218
+
219
+ Buildchain also defines an explicit production opt-in that turns successful
220
+ shadow evidence into a separate v2 authority state. It does not widen or
221
+ reinterpret the v1 Warrant queue. The accepted
222
+ [`Qualification Lease and Landing Warrant ADR`](dev-delivery-qualification-landing-adr.md)
223
+ and `contracts/dev-delivery-authority-v2.schema.json` are authoritative.
224
+
225
+ In `bounded-qualification-landing` mode, a configured number of exact
226
+ Qualification Leases may coexist. Each lease carries
227
+ `authority = qualification-only` and `mergeGroupAdmission = false`. Completing
228
+ qualification records evidence and releases that lease. Qualified candidates
229
+ then wait for the one `Landing Warrant`, which alone carries
230
+ `authority = merge-group-admission` and may be checked for `merge_group`
231
+ admission.
232
+
233
+ Concurrency is granted only across disjoint rooted `qualificationDomains`.
234
+ Overlap and unknown domains are held behind the active safety boundary with an
235
+ explicit content-rooted reason. `maxLandingOvertakes` prevents a slow older
236
+ candidate from being bypassed indefinitely, while `maxQualificationAttempts`
237
+ turns repeated heartbeat loss into a rooted terminal failure. Every release
238
+ returns a deterministic rooted wake instruction; an exact duplicate release or
239
+ recovery is a state-root-preserving no-op.
240
+
241
+ The public command family is explicit:
242
+
243
+ ```sh
244
+ buildchain dev authority migrate --repository owner/repository \
245
+ --branch dev/v3/v3.0 --legacy-state v1-queue.json --execute --json
246
+ buildchain dev authority lease-qualification --repository owner/repository \
247
+ --branch dev/v4/v4.0 --execute
248
+ buildchain dev authority heartbeat-qualification --repository owner/repository \
249
+ --branch dev/v4/v4.0 --candidate-id <root> \
250
+ --authority-token <root> --authority-generation 1 --execute
251
+ buildchain dev authority complete-qualification --repository owner/repository \
252
+ --branch dev/v4/v4.0 --candidate-id <root> \
253
+ --authority-token <root> --authority-generation 1 \
254
+ --evidence-root <qualification-root> --execute
255
+ buildchain dev authority lease-landing --repository owner/repository \
256
+ --branch dev/v4/v4.0 --execute
257
+ buildchain dev authority heartbeat-landing --repository owner/repository \
258
+ --branch dev/v4/v4.0 --candidate-id <root> \
259
+ --authority-token <root> --authority-generation 1 --execute
260
+ buildchain dev authority recover --repository owner/repository \
261
+ --branch dev/v4/v4.0 --execute
262
+ buildchain dev authority admit-merge-group --repository owner/repository \
263
+ --branch dev/v4/v4.0 --candidate-id <root> \
264
+ --authority-token <root> --authority-generation 1 \
265
+ --merge-group-head <sha>
266
+ ```
267
+
268
+ Terminal settlement releases either authority immediately from exact evidence;
269
+ it does not wait for TTL. Exact duplicate settlement is a state-root-preserving
270
+ no-op. The default `buildchain dev warrant` commands, v1 state bytes, and
271
+ single-flight behavior do not change while this mode is off.
272
+
191
273
  ## Workflow rollout and rollback
192
274
 
193
275
  The reusable `dev-pr-auto-merge.yml` supports three explicit rollout modes:
@@ -209,13 +291,24 @@ The reusable `dev-pr-auto-merge.yml` supports three explicit rollout modes:
209
291
  configured consumer workflow is dispatched immediately for that exact PR,
210
292
  head, and source run; the candidate is not left waiting for a patrol cron.
211
293
 
294
+ The controller persists a completed native proof before its final base
295
+ reclassification. A later exact retry can supply that proof and avoid the
296
+ expensive native command when the rooted delta still proves reuse safe. A
297
+ duplicate dispatch against the same already-qualified Warrant returns the same
298
+ proof and reuse roots without another queue mutation. Both result forms carry
299
+ `landingAuthority: false`: only the live qualified Warrant plus exact-head
300
+ GitHub merge-queue admission can authorize landing.
301
+
212
302
  The required controller checks the protected base again after native work. A
213
303
  disjoint attributed delta reuses the proof. Overlap or unknown attribution
214
304
  triggers one automatic revalidation on the latest base; continued overlap,
215
305
  native failure, cancellation, semantic head movement, or an unrecoverable merge
216
306
  conflict closes the exact fence. The next queued candidate is notified through
217
- the `buildchain-dev-delivery-wake` repository event. If cancellation prevents
218
- cleanup, lease expiry recovers retained queue age and mints a new fence.
307
+ the `buildchain-dev-delivery-wake` repository event. Its complete semantic
308
+ candidate is carried under the single `client_payload.candidate` envelope so
309
+ GitHub's ten-property top-level limit cannot discard proof bindings. If
310
+ cancellation prevents cleanup, lease expiry recovers retained queue age and
311
+ mints a new fence.
219
312
 
220
313
  Consumers should deploy `shadow` first, inspect receipts, then change their
221
314
  protected caller to `required`. Rollback is a reviewed caller change back to
@@ -1426,7 +1426,7 @@ Target: `./packages/core/buildchain-contract.js`. Public symbols: 26.
1426
1426
  | `createBuildchainContractLock` | function: function createBuildchainContractLock({ buildchainRef = "v3", resolvedSha = "", contractWorld, compatibilityPolicy = DEFAULT_POLICY, acceptedAt = new Date().toISOString(), } = {}) | { buildchainRef = "v3", resolvedSha = "", contractWorld, compatibilityPolicy = DEFAULT_POLICY, acceptedAt = new Date().toISOString(), } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createBuildchainContractLock } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-contract.js:846` |
1427
1427
  | `createBuildchainContractWorld` | function: function createBuildchainContractWorld({ root = process.cwd(), packageJson = undefined, controllerRegistry = undefined, } = {}) | { root = process.cwd(), packageJson = undefined, controllerRegistry = undefined, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createBuildchainContractWorld } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-contract.js:137` |
1428
1428
  | `createHistoricalBuildchainCompatibilityProofs` | function: function createHistoricalBuildchainCompatibilityProofs() | none | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createHistoricalBuildchainCompatibilityProofs } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-compatibility-proof.js:252` |
1429
- | `evaluateBuildchainChannelBinding` | function: function evaluateBuildchainChannelBinding({ workflowShellRef = "", runtimeRef = "", lockRef = "", lockMajorLine = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false } = {}) | { workflowShellRef = "", runtimeRef = "", lockRef = "", lockMajorLine = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateBuildchainChannelBinding } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-channel-identity.js:97` |
1429
+ | `evaluateBuildchainChannelBinding` | function: function evaluateBuildchainChannelBinding({ workflowShellRef = "", runtimeRef = "", lockRef = "", lockMajorLine = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false } = {}) | { workflowShellRef = "", runtimeRef = "", lockRef = "", lockMajorLine = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { evaluateBuildchainChannelBinding } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-channel-identity.js:96` |
1430
1430
  | `evaluateBuildchainContractLock` | function: function evaluateBuildchainContractLock({ lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", workflowShellRef = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false, } = {}) | { lock, current, runtimeRef = "", runtimeSha = "", runtimeClass = "", compatibilityPolicy = "", workflowShellRef = "", expectedChannel = "", expectedMajor = "", allowOpaqueRuntime = false, } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { evaluateBuildchainContractLock } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-compatibility-proof.js:476` |
1431
1431
  | `finalizeBuildchainContractWorld` | function: function finalizeBuildchainContractWorld(contractWorld) | contractWorld | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { finalizeBuildchainContractWorld } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-contract.js:801` |
1432
1432
  | `normalizeBuildchainRef` | function: function normalizeBuildchainRef(ref = "") | ref = "" | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { normalizeBuildchainRef } from "@kungfu-tech/buildchain/buildchain-contract";` | `packages/core/buildchain-channel-identity.js:10` |
@@ -1533,19 +1533,49 @@ Target: `./packages/core/diagnostics.js`. Public symbols: 30.
1533
1533
  | `validateAnchoredPackageRelease` | function: function validateAnchoredPackageRelease({ cwd = process.cwd(), requireManifest = true, requirePackageSetOrder = "platforms-first-main-last", requireTrustedPublishing = true, requireLifecycleStages = ["install", "build", "verify", "publish"], requirePublishGateSourceLock = false, publishSource = undefined, env = process.env, } = {}) | { cwd = process.cwd(), requireManifest = true, requirePackageSetOrder = "platforms-first-main-last", requireTrustedPublishing = true, requireLifecycleStages = ["install", "build", "verify", "publish"], requirePublishGateSourceLock = false, publishSource = undefined, env = process.env, } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { validateAnchoredPackageRelease } from "@kungfu-tech/buildchain/diagnostics";` | `packages/core/diagnostics.js:329` |
1534
1534
  | `writeDiagnosticsArtifact` | function: function writeDiagnosticsArtifact(filePath, diagnostics) | filePath, diagnostics | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | local-filesystem-write | `import { writeDiagnosticsArtifact } from "@kungfu-tech/buildchain/diagnostics";` | `packages/core/diagnostics.js:1464` |
1535
1535
 
1536
+ ## `@kungfu-tech/buildchain/dev-delivery-authority`
1537
+
1538
+ Target: `./packages/core/dev-delivery-authority.js`. Public symbols: 22.
1539
+
1540
+ | Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
1541
+ | --- | --- | --- | --- | --- | --- | --- | --- |
1542
+ | `acquireDevDeliveryLandingWarrant` | function: function acquireDevDeliveryLandingWarrant(stateInput, { now = new Date().toISOString(), leaseSeconds } = {}) | stateInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { acquireDevDeliveryLandingWarrant } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:735` |
1543
+ | `acquireDevDeliveryQualificationLease` | function: function acquireDevDeliveryQualificationLease(stateInput, { now = new Date().toISOString(), leaseSeconds } = {}) | stateInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { acquireDevDeliveryQualificationLease } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:553` |
1544
+ | `admitDevDeliveryMergeGroup` | function: function admitDevDeliveryMergeGroup(stateInput, authorityInput, { mergeGroupHead, now = new Date().toISOString() } = {}) | stateInput, authorityInput, { mergeGroupHead, now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { admitDevDeliveryMergeGroup } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:859` |
1545
+ | `completeDevDeliveryQualification` | function: function completeDevDeliveryQualification(stateInput, leaseInput, { evidenceRoot, now = new Date().toISOString() } = {}) | stateInput, leaseInput, { evidenceRoot, now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { completeDevDeliveryQualification } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:672` |
1546
+ | `createDevDeliveryAuthorityState` | function: function createDevDeliveryAuthorityState({ repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {}) | { repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createDevDeliveryAuthorityState } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:144` |
1547
+ | `DEV_DELIVERY_AUTHORITY_CONTRACT` | constant: const DEV_DELIVERY_AUTHORITY_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_AUTHORITY_CONTRACT } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:5` |
1548
+ | `DEV_DELIVERY_AUTHORITY_MIGRATION_SCHEMA` | constant: const DEV_DELIVERY_AUTHORITY_MIGRATION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_AUTHORITY_MIGRATION_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:11` |
1549
+ | `DEV_DELIVERY_AUTHORITY_MODE` | constant: const DEV_DELIVERY_AUTHORITY_MODE | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_AUTHORITY_MODE } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:6` |
1550
+ | `DEV_DELIVERY_AUTHORITY_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_AUTHORITY_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_AUTHORITY_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:9` |
1551
+ | `DEV_DELIVERY_LANDING_WARRANT_SCHEMA` | constant: const DEV_DELIVERY_LANDING_WARRANT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_LANDING_WARRANT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:8` |
1552
+ | `DEV_DELIVERY_MERGE_GROUP_ADMISSION_SCHEMA` | constant: const DEV_DELIVERY_MERGE_GROUP_ADMISSION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_MERGE_GROUP_ADMISSION_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:10` |
1553
+ | `DEV_DELIVERY_QUALIFICATION_LEASE_SCHEMA` | constant: const DEV_DELIVERY_QUALIFICATION_LEASE_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_QUALIFICATION_LEASE_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:7` |
1554
+ | `DEV_DELIVERY_SCHEDULER_REASON_SCHEMA` | constant: const DEV_DELIVERY_SCHEDULER_REASON_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_SCHEDULER_REASON_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:12` |
1555
+ | `DEV_DELIVERY_SCHEDULER_WAKE_SCHEMA` | constant: const DEV_DELIVERY_SCHEDULER_WAKE_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_SCHEDULER_WAKE_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:13` |
1556
+ | `heartbeatDevDeliveryLandingWarrant` | function: function heartbeatDevDeliveryLandingWarrant(stateInput, warrantInput, { now = new Date().toISOString(), leaseSeconds } = {}) | stateInput, warrantInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { heartbeatDevDeliveryLandingWarrant } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:814` |
1557
+ | `heartbeatDevDeliveryQualificationLease` | function: function heartbeatDevDeliveryQualificationLease(stateInput, leaseInput, { now = new Date().toISOString(), leaseSeconds } = {}) | stateInput, leaseInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { heartbeatDevDeliveryQualificationLease } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:628` |
1558
+ | `migrateDevDeliveryAuthorityState` | function: function migrateDevDeliveryAuthorityState(queueInput, { policy = {}, now = new Date().toISOString() } = {}) | queueInput, { policy = {}, now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { migrateDevDeliveryAuthorityState } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:264` |
1559
+ | `normalizeDevDeliveryAuthorityState` | function: function normalizeDevDeliveryAuthorityState(input, expected = {}) | input, expected = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeDevDeliveryAuthorityState } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:202` |
1560
+ | `observeDevDeliveryAuthorityState` | function: function observeDevDeliveryAuthorityState(stateInput, { now = new Date().toISOString() } = {}) | stateInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { observeDevDeliveryAuthorityState } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:961` |
1561
+ | `recoverDevDeliveryAuthority` | function: function recoverDevDeliveryAuthority(stateInput, { now = new Date().toISOString() } = {}) | stateInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { recoverDevDeliveryAuthority } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:711` |
1562
+ | `settleDevDeliveryAuthorityCandidate` | function: function settleDevDeliveryAuthorityCandidate(stateInput, input, { now = new Date().toISOString() } = {}) | stateInput, input, { now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | may-write-or-invoke-external-actions | `import { settleDevDeliveryAuthorityCandidate } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:882` |
1563
+ | `submitDevDeliveryAuthorityCandidate` | function: function submitDevDeliveryAuthorityCandidate(stateInput, input, { now = new Date().toISOString() } = {}) | stateInput, input, { now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { submitDevDeliveryAuthorityCandidate } from "@kungfu-tech/buildchain/dev-delivery-authority";` | `packages/core/dev-delivery-authority.js:366` |
1564
+
1536
1565
  ## `@kungfu-tech/buildchain/dev-delivery-warrant`
1537
1566
 
1538
- Target: `./packages/core/dev-delivery-warrant.js`. Public symbols: 42.
1567
+ Target: `./packages/core/dev-delivery-warrant.js`. Public symbols: 44.
1539
1568
 
1540
1569
  | Symbol | Kind and signature | Parameters | Return | Errors | Side effects | Example | Source |
1541
1570
  | --- | --- | --- | --- | --- | --- | --- | --- |
1542
- | `cancelQueuedDevDeliveryCandidate` | function: function cancelQueuedDevDeliveryCandidate(queueInput, input, options) | queueInput, input, options | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { cancelQueuedDevDeliveryCandidate } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:600` |
1571
+ | `cancelQueuedDevDeliveryCandidate` | function: function cancelQueuedDevDeliveryCandidate(queueInput, input, options) | queueInput, input, options | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { cancelQueuedDevDeliveryCandidate } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:641` |
1543
1572
  | `classifyDevDeliveryDelta` | function: function classifyDevDeliveryDelta({ proof, current = {} } = {}) | { proof, current = {} } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { classifyDevDeliveryDelta } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:75` |
1544
- | `closeDevDeliveryWarrant` | function: function closeDevDeliveryWarrant(queueInput, warrant, { outcome, evidenceRoot, reason = "", now = new Date().toISOString() } = {}) | queueInput, warrant, { outcome, evidenceRoot, reason = "", now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { closeDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:552` |
1545
- | `createDevDeliveryQueue` | function: function createDevDeliveryQueue({ repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {}) | { repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:106` |
1573
+ | `closeDevDeliveryWarrant` | function: function closeDevDeliveryWarrant(queueInput, warrant, { outcome, evidenceRoot, reason = "", now = new Date().toISOString() } = {}) | queueInput, warrant, { outcome, evidenceRoot, reason = "", now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { closeDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:586` |
1574
+ | `createDevDeliveryQueue` | function: function createDevDeliveryQueue({ repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {}) | { repository: repositoryInput, protectedBase: protectedBaseInput, policy = {}, now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:120` |
1546
1575
  | `createIntegrationDeliveryProof` | function: function createIntegrationDeliveryProof(input = {}) | input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createIntegrationDeliveryProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:207` |
1547
- | `createNativeProofReuseDecision` | function: function createNativeProofReuseDecision({ proof, current = {} } = {}) | { proof, current = {} } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNativeProofReuseDecision } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:205` |
1548
- | `createNativeQualificationProof` | function: function createNativeQualificationProof(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNativeQualificationProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:55` |
1576
+ | `createNativeProofBaseDelta` | function: function createNativeProofBaseDelta(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNativeProofBaseDelta } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:58` |
1577
+ | `createNativeProofReuseDecision` | function: function createNativeProofReuseDecision({ proof, current = {} } = {}) | { proof, current = {} } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNativeProofReuseDecision } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:288` |
1578
+ | `createNativeQualificationProof` | function: function createNativeQualificationProof(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createNativeQualificationProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:88` |
1549
1579
  | `createProjectCutReplayPlan` | function: function createProjectCutReplayPlan(input = {}) | input = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { createProjectCutReplayPlan } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:121` |
1550
1580
  | `createProjectCutReplayProof` | function: function createProjectCutReplayProof(input = {}) | input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createProjectCutReplayProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:141` |
1551
1581
  | `createReleaseBlockerPriorityClaim` | function: function createReleaseBlockerPriorityClaim(repairInput, input = {}) | repairInput, input = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { createReleaseBlockerPriorityClaim } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/release-blocker-priority.js:32` |
@@ -1554,31 +1584,32 @@ Target: `./packages/core/dev-delivery-warrant.js`. Public symbols: 42.
1554
1584
  | `DEV_DELIVERY_CLASSES` | constant: const DEV_DELIVERY_CLASSES | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_CLASSES } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:24` |
1555
1585
  | `DEV_DELIVERY_LEASE_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_LEASE_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_LEASE_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:16` |
1556
1586
  | `DEV_DELIVERY_PRIORITIES` | constant: const DEV_DELIVERY_PRIORITIES | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_PRIORITIES } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:18` |
1557
- | `DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:16` |
1587
+ | `DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_QUALIFICATION_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:18` |
1558
1588
  | `DEV_DELIVERY_QUEUE_CONTRACT` | constant: const DEV_DELIVERY_QUEUE_CONTRACT | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_QUEUE_CONTRACT } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:12` |
1559
1589
  | `DEV_DELIVERY_SELECTION_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_SELECTION_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_SELECTION_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:15` |
1560
1590
  | `DEV_DELIVERY_SETTLEMENT_RECEIPT_SCHEMA` | value: DEV_DELIVERY_SETTLEMENT_RECEIPT_SCHEMA | none | unknown | No narrower error contract was mechanically discoverable. | unknown | `import { DEV_DELIVERY_SETTLEMENT_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:1` |
1561
1591
  | `DEV_DELIVERY_SUBMISSION_RECEIPT_SCHEMA` | constant: const DEV_DELIVERY_SUBMISSION_RECEIPT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_SUBMISSION_RECEIPT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:14` |
1562
1592
  | `DEV_DELIVERY_WARRANT_SCHEMA` | constant: const DEV_DELIVERY_WARRANT_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { DEV_DELIVERY_WARRANT_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:13` |
1563
1593
  | `devDeliveryContentRoot` | function: function devDeliveryContentRoot(value) | value | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { devDeliveryContentRoot } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-common.js:27` |
1564
- | `heartbeatDevDeliveryWarrant` | function: function heartbeatDevDeliveryWarrant(queueInput, warrant, { now = new Date().toISOString(), leaseSeconds } = {}) | queueInput, warrant, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { heartbeatDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:467` |
1594
+ | `heartbeatDevDeliveryWarrant` | function: function heartbeatDevDeliveryWarrant(queueInput, warrant, { now = new Date().toISOString(), leaseSeconds } = {}) | queueInput, warrant, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { heartbeatDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:508` |
1565
1595
  | `INTEGRATION_DELIVERY_PROOF_SCHEMA` | constant: const INTEGRATION_DELIVERY_PROOF_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { INTEGRATION_DELIVERY_PROOF_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:5` |
1566
- | `NATIVE_PROOF_REUSE_DECISION_SCHEMA` | constant: const NATIVE_PROOF_REUSE_DECISION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { NATIVE_PROOF_REUSE_DECISION_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:14` |
1596
+ | `NATIVE_PROOF_BASE_DELTA_SCHEMA` | constant: const NATIVE_PROOF_BASE_DELTA_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { NATIVE_PROOF_BASE_DELTA_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:20` |
1597
+ | `NATIVE_PROOF_REUSE_DECISION_SCHEMA` | constant: const NATIVE_PROOF_REUSE_DECISION_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { NATIVE_PROOF_REUSE_DECISION_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:16` |
1567
1598
  | `NATIVE_QUALIFICATION_PROOF_SCHEMA` | constant: const NATIVE_QUALIFICATION_PROOF_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { NATIVE_QUALIFICATION_PROOF_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:12` |
1568
- | `normalizeDevDeliveryQueue` | function: function normalizeDevDeliveryQueue(input, expected = {}) | input, expected = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:121` |
1569
- | `observeDevDeliveryQueue` | function: function observeDevDeliveryQueue(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { observeDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:603` |
1599
+ | `normalizeDevDeliveryQueue` | function: function normalizeDevDeliveryQueue(input, expected = {}) | input, expected = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { normalizeDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:135` |
1600
+ | `observeDevDeliveryQueue` | function: function observeDevDeliveryQueue(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { observeDevDeliveryQueue } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:651` |
1570
1601
  | `PROJECT_CUT_REPLAY_PROOF_SCHEMA` | constant: const PROJECT_CUT_REPLAY_PROOF_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { PROJECT_CUT_REPLAY_PROOF_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:4` |
1571
- | `qualifyDevDeliveryWarrant` | function: function qualifyDevDeliveryWarrant(queueInput, warrant, options) | queueInput, warrant, options | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { qualifyDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:501` |
1572
- | `rankDevDeliveryCandidates` | function: function rankDevDeliveryCandidates(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { rankDevDeliveryCandidates } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:302` |
1573
- | `recoverExpiredDevDeliveryWarrant` | function: function recoverExpiredDevDeliveryWarrant(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { recoverExpiredDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:502` |
1602
+ | `qualifyDevDeliveryWarrant` | function: function qualifyDevDeliveryWarrant(queueInput, warrant, options) | queueInput, warrant, options | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | may-write-or-invoke-external-actions | `import { qualifyDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:545` |
1603
+ | `rankDevDeliveryCandidates` | function: function rankDevDeliveryCandidates(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { rankDevDeliveryCandidates } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:339` |
1604
+ | `recoverExpiredDevDeliveryWarrant` | function: function recoverExpiredDevDeliveryWarrant(queueInput, { now = new Date().toISOString() } = {}) | queueInput, { now = new Date().toISOString() } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { recoverExpiredDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:548` |
1574
1605
  | `RELEASE_BLOCKER_PRIORITY_CLAIM_SCHEMA` | constant: const RELEASE_BLOCKER_PRIORITY_CLAIM_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { RELEASE_BLOCKER_PRIORITY_CLAIM_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/release-blocker-priority.js:15` |
1575
- | `selectDevDeliveryWarrant` | function: function selectDevDeliveryWarrant(queueInput, { now = new Date().toISOString(), leaseSeconds } = {}) | queueInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { selectDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:326` |
1576
- | `settleDevDeliveryTerminalEvent` | constant: const settleDevDeliveryTerminalEvent | none | value | Import does not declare a throw contract. | none-on-import | `import { settleDevDeliveryTerminalEvent } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:601` |
1606
+ | `selectDevDeliveryWarrant` | function: function selectDevDeliveryWarrant(queueInput, { now = new Date().toISOString(), leaseSeconds } = {}) | queueInput, { now = new Date().toISOString(), leaseSeconds } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { selectDevDeliveryWarrant } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:363` |
1607
+ | `settleDevDeliveryTerminalEvent` | constant: const settleDevDeliveryTerminalEvent | none | value | Import does not declare a throw contract. | none-on-import | `import { settleDevDeliveryTerminalEvent } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:644` |
1577
1608
  | `SOURCE_QUALIFICATION_PROOF_SCHEMA` | constant: const SOURCE_QUALIFICATION_PROOF_SCHEMA | none | value | Import does not declare a throw contract. | none-on-import | `import { SOURCE_QUALIFICATION_PROOF_SCHEMA } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:3` |
1578
- | `submitDevDeliveryCandidate` | function: function submitDevDeliveryCandidate(queueInput, input, { now = new Date().toISOString() } = {}) | queueInput, input, { now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { submitDevDeliveryCandidate } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:216` |
1609
+ | `submitDevDeliveryCandidate` | function: function submitDevDeliveryCandidate(queueInput, input, { now = new Date().toISOString() } = {}) | queueInput, input, { now = new Date().toISOString() } = {} | unknown | May throw an Error on rejected input or failed operations; follow the linked source contract. | none-detected-by-static-source-scan | `import { submitDevDeliveryCandidate } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-warrant.js:245` |
1579
1610
  | `verifyIntegrationDeliveryProof` | function: function verifyIntegrationDeliveryProof(proofInput, expected = {}) | proofInput, expected = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyIntegrationDeliveryProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:228` |
1580
- | `verifyNativeProofReuseDecision` | function: function verifyNativeProofReuseDecision(decisionInput, { proof, current = {} } = {}) | decisionInput, { proof, current = {} } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyNativeProofReuseDecision } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:209` |
1581
- | `verifyNativeQualificationProof` | function: function verifyNativeQualificationProof(proofInput, expected = {}) | proofInput, expected = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyNativeQualificationProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:85` |
1611
+ | `verifyNativeProofReuseDecision` | function: function verifyNativeProofReuseDecision(decisionInput, { proof, current = {} } = {}) | decisionInput, { proof, current = {} } = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyNativeProofReuseDecision } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:292` |
1612
+ | `verifyNativeQualificationProof` | function: function verifyNativeQualificationProof(proofInput, expected = {}) | proofInput, expected = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyNativeQualificationProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-native-proof.js:119` |
1582
1613
  | `verifyProjectCutReplayProof` | function: function verifyProjectCutReplayProof(proofInput, expected = {}) | proofInput, expected = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifyProjectCutReplayProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:187` |
1583
1614
  | `verifySourceQualificationProof` | function: function verifySourceQualificationProof(proofInput, expected = {}) | proofInput, expected = {} | unknown | Errors from called operations may propagate; no narrower throw contract is declared in source. | none-detected-by-static-source-scan | `import { verifySourceQualificationProof } from "@kungfu-tech/buildchain/dev-delivery-warrant";` | `packages/core/dev-delivery-proof.js:52` |
1584
1615