@kungfu-tech/buildchain 4.0.2-alpha.0 → 4.0.2-alpha.2

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 (45) hide show
  1. package/architecture/agent-change-map.md +4 -4
  2. package/architecture/ci-lane-change-budget.json +76 -8
  3. package/architecture/maintainability-debt.json +41 -115
  4. package/architecture/maintainability-policy.json +12 -7
  5. package/architecture/release-tail-contract-inventory.json +4 -4
  6. package/architecture/v3-v4-live-capability-inventory.json +17 -17
  7. package/architecture/v4-release-invocation-fixtures.json +119 -0
  8. package/architecture/v4-release-topology.json +238 -0
  9. package/contracts/buildchain-v2-residuals-v1.json +0 -9
  10. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  11. package/contracts/v4-release-invocation-v1.schema.json +86 -0
  12. package/dist/site/buildchain-contract.json +9 -9
  13. package/dist/site/buildchain-site.json +7 -7
  14. package/dist/site/kfd-claims.json +7 -5
  15. package/dist/site/kfd-upstream-aggregate.json +1 -1
  16. package/dist/site/manual-registry.json +1 -1
  17. package/dist/site/node-api-registry.json +3 -3
  18. package/dist/site/page-registry.json +2 -2
  19. package/dist/site/public-surface-audit.json +17 -9
  20. package/dist/site/publication-authority-registry.json +2 -3
  21. package/dist/site/publication-registry.json +4 -4
  22. package/dist/site/site-manifest.json +5 -5
  23. package/dist/site/workflow-registry.json +19 -11
  24. package/docs/node-api-reference.md +3 -3
  25. package/package.json +2 -2
  26. package/packages/core/dev-delivery-candidate-identity.js +45 -17
  27. package/packages/core/dev-delivery-provider-heartbeat.js +22 -6
  28. package/packages/core/dev-delivery-warrant-state.js +12 -28
  29. package/packages/core/v4-canonical-contracts.js +8 -0
  30. package/packages/core/v4-floating-consumer-policy.js +4 -1
  31. package/packages/core/v4-release-invocation.js +356 -0
  32. package/scripts/audit-publication-control-plane.mjs +0 -1
  33. package/scripts/check-inventory.mjs +27 -59
  34. package/scripts/check-maintainability.mjs +13 -5
  35. package/scripts/check-v3-v4-capability-inventory.mjs +3 -61
  36. package/scripts/check-v4-floating-consumer-policy-contract.mjs +10 -20
  37. package/scripts/check-v4-release-topology.mjs +237 -0
  38. package/scripts/dev-delivery-warrant.mjs +13 -4
  39. package/scripts/generate-channel-promotion-workflow.mjs +12 -54
  40. package/scripts/v3-v4-capability-catalog.mjs +107 -0
  41. package/scripts/v4-declarative-promotion-admission.mjs +4 -1
  42. package/scripts/capture-package-release-propagation.mjs +0 -263
  43. package/scripts/publication-commit-evidence.mjs +0 -444
  44. package/scripts/publish-github-artifact-attestation-evidence.mjs +0 -201
  45. package/scripts/stage-github-artifact-attestation-inputs.mjs +0 -65
@@ -77,7 +77,6 @@ Safe change route: Reduce one owned responsibility behind the stable facade, run
77
77
  - sources: `scripts/locked-source-checkout.mjs`
78
78
  - sources: `scripts/maintainability-domain-metrics.mjs`
79
79
  - sources: `scripts/paper.mjs`
80
- - sources: `scripts/publication-commit-evidence.mjs`
81
80
  - sources: `scripts/reconcile-github-governance.mjs`
82
81
  - sources: `scripts/release-candidate-resolver.mjs`
83
82
  - sources: `scripts/release-line-policy.mjs`
@@ -124,7 +123,6 @@ Safe change route: Reduce one owned responsibility behind the stable facade, run
124
123
  - tests: `tests/release-passport.test.mjs`
125
124
  - tests: `tests/release-propagation.test.mjs`
126
125
  - tests: `tests/v4-delivery-authority-parity.test.mjs`
127
- - tests: `tests/v4-floating-consumer-policy-contract.test.mjs`
128
126
  - tests: `tests/v4-floating-consumer-policy.test.mjs`
129
127
  - tests: `tests/v4-publication-rehearsal.test.mjs`
130
128
  - tests: `tests/web-surface.test.mjs`
@@ -154,6 +152,7 @@ Safe change route: Reduce one owned responsibility behind the stable facade, run
154
152
 
155
153
  - `tests/v3-v4-capability-inventory.test.mjs`
156
154
  - `tests/v4-floating-consumer-policy-contract.test.mjs`
155
+ - `tests/v4-publication-qualification.test.mjs`
157
156
  - `.github/workflows/v4-adopter-delivery.yml`
158
157
  - `.github/workflows/buildchain-ref-promotion.yml`
159
158
  - `tests/release-candidate-recovery.test.mjs`
@@ -171,16 +170,17 @@ Safe change route: Reduce one owned responsibility behind the stable facade, run
171
170
  - `tests/promotion-channel-router.test.mjs`
172
171
  - `scripts/site-capability-metadata.mjs`
173
172
  - `tests/v4-floating-consumer-policy.test.mjs`
173
+ - `tests/v4-declarative-promotion-mode.test.mjs`
174
174
  - `scripts/buildchain-cli-help.mjs`
175
175
  - `scripts/check-v4-floating-consumer-policy-contract.mjs`
176
176
  - `tests/dev-delivery-warrant.test.mjs`
177
177
  - `actions/promote-buildchain-ref/internal/version-state.js`
178
- - `packages/core/v4-floating-consumer-policy.js`
179
178
  - `packages/core/v4-floating-consumer-release-passport.js`
180
179
  - `packages/core/release-passport.js`
181
180
  - `tests/promote-buildchain-ref-governance.test.mjs`
182
- - `tests/v4-declarative-promotion-mode.test.mjs`
183
181
  - `scripts/buildchain-cli-help.mjs`
182
+ - `scripts/check-maintainability.mjs`
183
+ - `tests/maintainability.test.mjs`
184
184
 
185
185
  ## cli-command-registry
186
186
 
@@ -185,37 +185,105 @@
185
185
  },
186
186
  "declarations": [
187
187
  {
188
- "laneId": ".github/workflows/.release-candidate-promote.yml#legacy-promote",
188
+ "laneId": ".github/workflows/.release-candidate-promote.yml#qualify",
189
+ "authorityClass": "evidence",
190
+ "triggerClass": "reusable",
191
+ "concurrencyPolicy": {
192
+ "mode": "serialized",
193
+ "cancelInProgress": false
194
+ },
195
+ "expectedRunnerMinutes": 30,
196
+ "cancellationBehavior": "finish-started",
197
+ "sloImpact": {
198
+ "mergeCritical": false,
199
+ "metric": "protected release qualification latency",
200
+ "expectedContributionSeconds": 0,
201
+ "rationale": "QUALIFY is the read-only exact-runtime and sealed-candidate admission boundary."
202
+ }
203
+ },
204
+ {
205
+ "laneId": ".github/workflows/.release-candidate-promote.yml#apply",
189
206
  "authorityClass": "release",
190
207
  "triggerClass": "reusable",
208
+ "concurrencyPolicy": {
209
+ "mode": "serialized",
210
+ "cancelInProgress": false
211
+ },
212
+ "expectedRunnerMinutes": 30,
213
+ "cancellationBehavior": "finish-started",
214
+ "sloImpact": {
215
+ "mergeCritical": false,
216
+ "metric": "protected release APPLY latency",
217
+ "expectedContributionSeconds": 0,
218
+ "rationale": "APPLY is the sole contents-write and provider-mutation OIDC authority boundary."
219
+ }
220
+ },
221
+ {
222
+ "laneId": ".github/workflows/.release-candidate-promote.yml#settle",
223
+ "authorityClass": "evidence",
224
+ "triggerClass": "reusable",
225
+ "concurrencyPolicy": {
226
+ "mode": "serialized",
227
+ "cancelInProgress": false
228
+ },
229
+ "expectedRunnerMinutes": 10,
230
+ "cancellationBehavior": "finish-started",
231
+ "sloImpact": {
232
+ "mergeCritical": false,
233
+ "metric": "terminal receipt projection latency",
234
+ "expectedContributionSeconds": 0,
235
+ "rationale": "SETTLE verifies and projects the already durable terminal ReleaseReceipt without mutation authority."
236
+ }
237
+ },
238
+ {
239
+ "laneId": ".github/workflows/buildchain-ref-promotion-recovery.yml#resume",
240
+ "authorityClass": "release",
241
+ "triggerClass": "manual",
191
242
  "concurrencyPolicy": {
192
243
  "mode": "none",
193
244
  "cancelInProgress": false
194
245
  },
195
- "expectedRunnerMinutes": 45,
246
+ "expectedRunnerMinutes": 35,
196
247
  "cancellationBehavior": "finish-started",
197
248
  "sloImpact": {
198
249
  "mergeCritical": false,
199
- "metric": "protected release completion latency",
250
+ "metric": "manual recovery adapter latency",
200
251
  "expectedContributionSeconds": 0,
201
- "rationale": "This is the existing v3 promotion lane under an explicit legacy identity, not an added execution path."
252
+ "rationale": "The recovery surface is a one-way adapter into the same canonical publisher."
202
253
  }
203
254
  },
204
255
  {
205
- "laneId": ".github/workflows/.release-candidate-promote.yml#v4-declarative-promote",
256
+ "laneId": ".github/workflows/buildchain-ref-promotion.yml#promote",
257
+ "authorityClass": "release",
258
+ "triggerClass": "mixed",
259
+ "concurrencyPolicy": {
260
+ "mode": "none",
261
+ "cancelInProgress": false
262
+ },
263
+ "expectedRunnerMinutes": 35,
264
+ "cancellationBehavior": "finish-started",
265
+ "sloImpact": {
266
+ "mergeCritical": false,
267
+ "metric": "Buildchain alpha promotion adapter latency",
268
+ "expectedContributionSeconds": 0,
269
+ "rationale": "The Buildchain-owned alpha entry delegates to the single v4 publisher."
270
+ }
271
+ },
272
+ {
273
+ "laneId": ".github/workflows/release-candidate-promote.yml#invoke",
206
274
  "authorityClass": "release",
207
275
  "triggerClass": "reusable",
208
276
  "concurrencyPolicy": {
209
277
  "mode": "none",
210
278
  "cancelInProgress": false
211
279
  },
212
- "expectedRunnerMinutes": 30,
280
+ "expectedRunnerMinutes": 35,
213
281
  "cancellationBehavior": "finish-started",
214
282
  "sloImpact": {
215
283
  "mergeCritical": false,
216
- "metric": "protected release completion latency",
284
+ "metric": "public promotion adapter latency",
217
285
  "expectedContributionSeconds": 0,
218
- "rationale": "The v4 provider lane replaces consumer tail execution only for release invocations and is outside merge-critical CI."
286
+ "rationale": "The public compatibility surface resolves discovery facts and invokes one fixed v4 publisher."
219
287
  }
220
288
  },
221
289
  {
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "totalExcessLedger": {
9
9
  "metric": "calibrated-full-dimensional-excess-v1",
10
- "measuredExcess": 67948,
11
- "current": 59887
10
+ "measuredExcess": 64284,
11
+ "current": 56223
12
12
  },
13
13
  "defaults": {
14
14
  "owner": "Buildchain architecture maintainers",
@@ -1220,7 +1220,7 @@
1220
1220
  "scripts/audit-publication-control-plane.mjs": {
1221
1221
  "baseline": {
1222
1222
  "functions": {
1223
- "main@200": {
1223
+ "main@199": {
1224
1224
  "lines": 322,
1225
1225
  "complexity": 92
1226
1226
  }
@@ -1228,7 +1228,7 @@
1228
1228
  },
1229
1229
  "current": {
1230
1230
  "functions": {
1231
- "main@200": {
1231
+ "main@199": {
1232
1232
  "lines": 322,
1233
1233
  "complexity": 92
1234
1234
  }
@@ -1236,7 +1236,7 @@
1236
1236
  },
1237
1237
  "target": {
1238
1238
  "functions": {
1239
- "main@200": {
1239
+ "main@199": {
1240
1240
  "lines": 180,
1241
1241
  "complexity": 25
1242
1242
  }
@@ -1270,7 +1270,7 @@
1270
1270
  "lines": 1515
1271
1271
  },
1272
1272
  "current": {
1273
- "lines": 1515
1273
+ "lines": 1483
1274
1274
  },
1275
1275
  "target": {
1276
1276
  "lines": 600
@@ -1279,21 +1279,21 @@
1279
1279
  "scripts/check-maintainability.mjs": {
1280
1280
  "baseline": {
1281
1281
  "functions": {
1282
- "evaluateMaintainability@353": {
1282
+ "evaluateMaintainability@361": {
1283
1283
  "complexity": 29
1284
1284
  }
1285
1285
  }
1286
1286
  },
1287
1287
  "current": {
1288
1288
  "functions": {
1289
- "evaluateMaintainability@353": {
1289
+ "evaluateMaintainability@361": {
1290
1290
  "complexity": 29
1291
1291
  }
1292
1292
  }
1293
1293
  },
1294
1294
  "target": {
1295
1295
  "functions": {
1296
- "evaluateMaintainability@353": {
1296
+ "evaluateMaintainability@361": {
1297
1297
  "complexity": 25
1298
1298
  }
1299
1299
  }
@@ -1499,7 +1499,7 @@
1499
1499
  "current": {
1500
1500
  "functions": {
1501
1501
  "generateChannelPromotionWorkflow@277": {
1502
- "lines": 282
1502
+ "lines": 240
1503
1503
  }
1504
1504
  }
1505
1505
  },
@@ -1664,38 +1664,6 @@
1664
1664
  }
1665
1665
  }
1666
1666
  },
1667
- "scripts/publication-commit-evidence.mjs": {
1668
- "baseline": {
1669
- "functions": {
1670
- "validateInstallerBundle@85": {
1671
- "complexity": 42
1672
- },
1673
- "verifyInstallerBundleReadback@307": {
1674
- "complexity": 30
1675
- }
1676
- }
1677
- },
1678
- "current": {
1679
- "functions": {
1680
- "validateInstallerBundle@85": {
1681
- "complexity": 42
1682
- },
1683
- "verifyInstallerBundleReadback@307": {
1684
- "complexity": 30
1685
- }
1686
- }
1687
- },
1688
- "target": {
1689
- "functions": {
1690
- "validateInstallerBundle@85": {
1691
- "complexity": 25
1692
- },
1693
- "verifyInstallerBundleReadback@307": {
1694
- "complexity": 25
1695
- }
1696
- }
1697
- }
1698
- },
1699
1667
  "scripts/reconcile-github-governance.mjs": {
1700
1668
  "baseline": {
1701
1669
  "lines": 689
@@ -2231,15 +2199,15 @@
2231
2199
  "baseline": {
2232
2200
  "lines": 3181,
2233
2201
  "functions": {
2234
- "<anonymous@2013>@2013": {
2202
+ "<anonymous@1559>@1559": {
2235
2203
  "lines": 206
2236
2204
  }
2237
2205
  }
2238
2206
  },
2239
2207
  "current": {
2240
- "lines": 3178,
2208
+ "lines": 2727,
2241
2209
  "functions": {
2242
- "<anonymous@2013>@2013": {
2210
+ "<anonymous@1559>@1559": {
2243
2211
  "lines": 206
2244
2212
  }
2245
2213
  }
@@ -2247,7 +2215,7 @@
2247
2215
  "target": {
2248
2216
  "lines": 600,
2249
2217
  "functions": {
2250
- "<anonymous@2013>@2013": {
2218
+ "<anonymous@1559>@1559": {
2251
2219
  "lines": 180
2252
2220
  }
2253
2221
  }
@@ -2260,36 +2228,30 @@
2260
2228
  "<anonymous@170>@170": {
2261
2229
  "lines": 195
2262
2230
  },
2263
- "<anonymous@553>@553": {
2231
+ "<anonymous@544>@544": {
2264
2232
  "lines": 183
2265
2233
  },
2266
- "<anonymous@737>@737": {
2267
- "lines": 506
2268
- },
2269
- "<anonymous@2153>@2153": {
2234
+ "<anonymous@1678>@1678": {
2270
2235
  "lines": 249
2271
2236
  },
2272
- "<anonymous@3337>@3337": {
2237
+ "<anonymous@2684>@2684": {
2273
2238
  "lines": 188
2274
2239
  }
2275
2240
  }
2276
2241
  },
2277
2242
  "current": {
2278
- "lines": 3680,
2243
+ "lines": 3027,
2279
2244
  "functions": {
2280
2245
  "<anonymous@170>@170": {
2281
- "lines": 195
2246
+ "lines": 186
2282
2247
  },
2283
- "<anonymous@553>@553": {
2248
+ "<anonymous@544>@544": {
2284
2249
  "lines": 183
2285
2250
  },
2286
- "<anonymous@737>@737": {
2287
- "lines": 506
2288
- },
2289
- "<anonymous@2153>@2153": {
2251
+ "<anonymous@1678>@1678": {
2290
2252
  "lines": 249
2291
2253
  },
2292
- "<anonymous@3337>@3337": {
2254
+ "<anonymous@2684>@2684": {
2293
2255
  "lines": 188
2294
2256
  }
2295
2257
  }
@@ -2300,16 +2262,13 @@
2300
2262
  "<anonymous@170>@170": {
2301
2263
  "lines": 180
2302
2264
  },
2303
- "<anonymous@553>@553": {
2265
+ "<anonymous@544>@544": {
2304
2266
  "lines": 180
2305
2267
  },
2306
- "<anonymous@737>@737": {
2268
+ "<anonymous@1678>@1678": {
2307
2269
  "lines": 180
2308
2270
  },
2309
- "<anonymous@2153>@2153": {
2310
- "lines": 180
2311
- },
2312
- "<anonymous@3337>@3337": {
2271
+ "<anonymous@2684>@2684": {
2313
2272
  "lines": 180
2314
2273
  }
2315
2274
  }
@@ -2452,7 +2411,7 @@
2452
2411
  }
2453
2412
  },
2454
2413
  "current": {
2455
- "lines": 1179,
2414
+ "lines": 1178,
2456
2415
  "functions": {
2457
2416
  "<anonymous@817>@817": {
2458
2417
  "lines": 205
@@ -2655,7 +2614,7 @@
2655
2614
  "lines": 1217
2656
2615
  },
2657
2616
  "current": {
2658
- "lines": 1208
2617
+ "lines": 1126
2659
2618
  },
2660
2619
  "target": {
2661
2620
  "lines": 600
@@ -2688,7 +2647,7 @@
2688
2647
  "lines": 1355
2689
2648
  },
2690
2649
  "current": {
2691
- "lines": 1355
2650
+ "lines": 1270
2692
2651
  },
2693
2652
  "target": {
2694
2653
  "lines": 600
@@ -2723,29 +2682,6 @@
2723
2682
  }
2724
2683
  }
2725
2684
  },
2726
- "tests/v4-floating-consumer-policy-contract.test.mjs": {
2727
- "baseline": {
2728
- "functions": {
2729
- "<anonymous@76>@76": {
2730
- "lines": 292
2731
- }
2732
- }
2733
- },
2734
- "current": {
2735
- "functions": {
2736
- "<anonymous@76>@76": {
2737
- "lines": 292
2738
- }
2739
- }
2740
- },
2741
- "target": {
2742
- "functions": {
2743
- "<anonymous@76>@76": {
2744
- "lines": 180
2745
- }
2746
- }
2747
- }
2748
- },
2749
2685
  "tests/v4-floating-consumer-policy.test.mjs": {
2750
2686
  "baseline": {
2751
2687
  "lines": 714
@@ -2986,7 +2922,7 @@
2986
2922
  "decisions": 27
2987
2923
  },
2988
2924
  "current": {
2989
- "lines": 1007,
2925
+ "lines": 1006,
2990
2926
  "maxStepsPerJob": 30,
2991
2927
  "decisions": 27
2992
2928
  },
@@ -2998,25 +2934,13 @@
2998
2934
  },
2999
2935
  ".github/workflows/.release-candidate-promote.yml": {
3000
2936
  "baseline": {
3001
- "lines": 2736,
3002
- "jobs": 13,
3003
- "steps": 99,
3004
- "maxStepsPerJob": 47,
3005
- "decisions": 75
2937
+ "lines": 2736
3006
2938
  },
3007
2939
  "current": {
3008
- "lines": 2677,
3009
- "jobs": 13,
3010
- "steps": 99,
3011
- "maxStepsPerJob": 47,
3012
- "decisions": 75
2940
+ "lines": 1085
3013
2941
  },
3014
2942
  "target": {
3015
- "lines": 600,
3016
- "jobs": 8,
3017
- "steps": 50,
3018
- "maxStepsPerJob": 20,
3019
- "decisions": 25
2943
+ "lines": 600
3020
2944
  }
3021
2945
  },
3022
2946
  ".github/workflows/.release-verify.yml": {
@@ -3084,7 +3008,7 @@
3084
3008
  "decisions": 28
3085
3009
  },
3086
3010
  "current": {
3087
- "lines": 1529,
3011
+ "lines": 1528,
3088
3012
  "decisions": 28
3089
3013
  },
3090
3014
  "target": {
@@ -3136,7 +3060,7 @@
3136
3060
  "lines": 1218
3137
3061
  },
3138
3062
  "current": {
3139
- "lines": 1218
3063
+ "lines": 1094
3140
3064
  },
3141
3065
  "target": {
3142
3066
  "lines": 600
@@ -3161,6 +3085,7 @@
3161
3085
  "hotspots": [
3162
3086
  "tests/v3-v4-capability-inventory.test.mjs",
3163
3087
  "tests/v4-floating-consumer-policy-contract.test.mjs",
3088
+ "tests/v4-publication-qualification.test.mjs",
3164
3089
  ".github/workflows/v4-adopter-delivery.yml",
3165
3090
  ".github/workflows/buildchain-ref-promotion.yml",
3166
3091
  "tests/release-candidate-recovery.test.mjs",
@@ -3178,16 +3103,17 @@
3178
3103
  "tests/promotion-channel-router.test.mjs",
3179
3104
  "scripts/site-capability-metadata.mjs",
3180
3105
  "tests/v4-floating-consumer-policy.test.mjs",
3106
+ "tests/v4-declarative-promotion-mode.test.mjs",
3181
3107
  "scripts/buildchain-cli-help.mjs",
3182
3108
  "scripts/check-v4-floating-consumer-policy-contract.mjs",
3183
3109
  "tests/dev-delivery-warrant.test.mjs",
3184
3110
  "actions/promote-buildchain-ref/internal/version-state.js",
3185
- "packages/core/v4-floating-consumer-policy.js",
3186
3111
  "packages/core/v4-floating-consumer-release-passport.js",
3187
3112
  "packages/core/release-passport.js",
3188
3113
  "tests/promote-buildchain-ref-governance.test.mjs",
3189
- "tests/v4-declarative-promotion-mode.test.mjs",
3190
- "scripts/buildchain-cli-help.mjs"
3114
+ "scripts/buildchain-cli-help.mjs",
3115
+ "scripts/check-maintainability.mjs",
3116
+ "tests/maintainability.test.mjs"
3191
3117
  ],
3192
3118
  "burnDownSlices": [
3193
3119
  {
@@ -3202,14 +3128,14 @@
3202
3128
  "path": "tests/build-surface.test.mjs",
3203
3129
  "metric": "lines",
3204
3130
  "baseline": 4639,
3205
- "current": 3680
3131
+ "current": 3027
3206
3132
  },
3207
3133
  {
3208
3134
  "domain": "workflows",
3209
3135
  "path": ".github/workflows/.release-candidate-promote.yml",
3210
3136
  "metric": "lines",
3211
3137
  "baseline": 2736,
3212
- "current": 2677
3138
+ "current": 1085
3213
3139
  },
3214
3140
  {
3215
3141
  "domain": "sources",
@@ -27,11 +27,11 @@
27
27
  "repositoryBudgets": {
28
28
  "baselineRevision": "858dbe00b6206a8f356b4a12d2659bee7a72e71b",
29
29
  "maxHandMaintainedSourceFiles": 444,
30
- "maxHandMaintainedSourceLines": 164728,
30
+ "maxHandMaintainedSourceLines": 164753,
31
31
  "maxWorkflowFiles": 77,
32
32
  "maxWorkflowLines": 26791,
33
- "latestTransition": "Legacy provisional Warrant recovery is isolated behind one terminal-only authority boundary.",
34
- "latestTransitionRationale": "One bounded source module admits only a complete exact set of failed hosted legacy runs, requires every provider job to be terminal, and performs one expected-old transition into the current strict state contract. The CLI parser extracts state-coordinate options from its oversized compatibility mapping, reducing devDeliveryCliOptions from 247 to 233 lines; dedicated recovery tests remain below the default test-file budget.",
33
+ "latestTransition": "Provider heartbeat rebases unrelated shared-state mutations only under the exact retained fence.",
34
+ "latestTransitionRationale": "Twenty-five bounded source lines let heartbeat CAS recover from an unrelated queue mutation while the state command still revalidates the exact fencing token and lease generation. The rooted provider receipt records both the prior heartbeat root and the observed shared-state root; all non-heartbeat commands retain strict expected-old rejection, and dedicated concurrency tests remain below the default test-file budget.",
35
35
  "rationale": "Bounded modules separate candidate, evidence, native proof and execution, canonical failure verification, closed-set execution transfer, process-boundary verification, Warrant state and qualification, authority state, qualification, Landing acquisition, verified-attempt admission, Landing settlement and fence validation, provider attempt and heartbeat readback, sealed terminal evidence, hosted heartbeat, resume, store, options, command-specific adapters, and CLI orchestration responsibilities. The protected delivery workflow gives candidate and seal jobs no provider write credential, recursively rejects transfer drift, scopes every transfer artifact to the exact provider run attempt, chains every durable heartbeat state and receipt root on a distinct hosted runner domain, and permits qualification or exact failure settlement only after the finalizer verifies live jobs and the latest durable authority state. Public Landing admission and heartbeat always perform non-injectable fresh exact-attempt provider readback, tolerate only a not-yet-materialized seal job while retaining exact native and duplicate-job rejection, and heartbeat-loss coordination never invokes GitHub's run-scoped cancellation API where a successor rerun could race. The hosted process boundary anchors trust in the kernel-resolved versioned Runner.Worker path while accepting an equivalent argv-zero spelling with the same basename; its public boundary marker is allowed only at the one exact non-secret value, so a forged value under the same credential-like name still fails closed. The credentialless transfer seal validates the rooted native reuse decision against the Warrant-bound source, closure, dependency, toolchain, environment and command inputs; qualifiedBase stays in the proof and decision where it is rooted and later independently rechecked, rather than being assumed on the Warrant schema. V2 mutation cannot initialize a second empty authority beside a legacy ref: migration reads and roots the canonical live v1 ref, rechecks it, applies the explicit configured v2 policy, and atomically replaces its bytes through one expected-old non-force update, so old v1 controllers fail closed while the prior commit remains immutable history. Candidate ancestry classifies the GitHub artifact runtime token as credential authority. Every Landing settlement, including an unexpired fence, requires product-owned terminal readback. Terminal cleanup reads the immutable historical attempt, derives workflow and hosted Landing job identity from live run data, reads the exact protected ref head and compares containment against that immutable SHA, and seals merged only when the admitted merge-group head is contained by that protected base; a later different-head merge settles the old attempt as dequeued. Terminal normalization preserves transfer, finalizer boundary, native and seal job, admitted provider attempt, protected-base head, containment result, and terminal readback coordinates. The public reusable workflow truthfully retains its single-flight v1 authority without advertising v2 migration, while bounded v2 remains a separate opt-in CLI, Node API, and schema contract; the tracked self-caller stays on public v4-alpha with matching stable and alpha locks, and transient train selection is dispatch-only. Next-development parity adds one versioned transition authority, one durable controller, one bounded reservation adapter, and pure public-contract recovery evidence while retaining the existing thin floating-channel callers byte-for-byte. The floating-consumer gate reuses the existing contract-world evaluator so SHA drift passes only under the selected lock's compatibility policy, breaking surface drift still fails closed, and external certification reconstructs the receipt from the observed workflow SHA rather than the lock's historical evidence SHA. Tail reseal adds no Stage Capsule effect or general rebuild authority: it verifies the exact retained four-platform bytes, admits one known macOS tail failure through live provider readback, fences signing and finalization to explicit credentials and Warrant identity, and requires standard candidate Passport plus provider and protected readback. Compatibility Facts parity isolates canonical encoding, temporal verification, lifecycle validation, fixture projection, public authority projection, and CLI adaptation into bounded modules; legacy digest and proof arrays are derived only from exact current Fact lineage. Publication Rehearsal adds no production release authority: the content-addressed capsule contract binds source, candidate, manifest, config, canonical data-only provider bindings, provider policy, observations and core version separately from filesystem, runtime and rehearsal-only provider authority; simulate, replay and explicitly authorized provider rehearsal all reuse the release-tail planner, while same-commit local dogfood resolves the new reusable contract and exact current runtime before external callers remain on floating v4-alpha. Cross-runtime candidate recovery preserves original runtime and provider roots and creates resume lineage only after exact public ref, tag, ancestry, npm version and integrity readback. Adopter Delivery restores the reviewed public v3 gate, drivers, Passport binding, N-1 bootstrap and exact archive loader through one public v4 surface while keeping provider and release authority explicit non-claims. Floating Alpha bootstrap uses only the existing exact resolver and protected Alpha private shell to move an otherwise stale floating shell, retains public v4 stable promotion, and removes itself after protected readback. CI lane change-budget enforcement adds a bounded parser, evaluator, guard, and tests without creating another merge authority.",
36
36
  "governance": "legacy-debt-sunset-2026q4"
37
37
  },
@@ -1204,7 +1204,6 @@
1204
1204
  "reusable": true,
1205
1205
  "inputs": [
1206
1206
  "admission-json",
1207
- "authority-job-id",
1208
1207
  "authority-workflow-path",
1209
1208
  "auto-admission",
1210
1209
  "auto-admission-kind",
@@ -1254,7 +1253,7 @@
1254
1253
  "gate-aggregate-json"
1255
1254
  ]
1256
1255
  },
1257
- "rationale": "The sealed read-only authority preserves the dedicated auditor App while adding an isolated governance-read token mapped from the existing caller credential only at the authority boundary. It independently checks out the immutable publication subject and controller, verifies both SHAs and the subject tree, and binds controller repository, SHA, command digest, and the optional exact audited authority job into the qualifying aggregate without granting new provider write permission.",
1256
+ "rationale": "The sealed read-only authority preserves the dedicated auditor App while adding an isolated governance-read token mapped from the existing caller credential only at the authority boundary. It independently checks out the immutable publication subject and controller, verifies both SHAs and the subject tree, and binds controller repository, SHA, and command digest into the qualifying aggregate without granting new provider write permission.",
1258
1257
  "governance": "legacy-debt-sunset-2026q4"
1259
1258
  },
1260
1259
  "workflow:.release-candidate-promote": {
@@ -1421,12 +1420,15 @@
1421
1420
  "release-candidate-artifact",
1422
1421
  "release-candidate-recovery-receipt-artifact",
1423
1422
  "release-candidate-recovery-root",
1423
+ "release-invocation-root",
1424
1424
  "release-propagation-work-artifact",
1425
+ "release-receipt-root",
1425
1426
  "release-tail-declaration-root",
1426
1427
  "release-tail-receipt-roots-json",
1427
1428
  "release-tail-state-root",
1428
1429
  "release-tail-transaction-root",
1429
- "release-tail-transaction-state"
1430
+ "release-tail-transaction-state",
1431
+ "release-transaction-root"
1430
1432
  ]
1431
1433
  },
1432
1434
  "rationale": "The advanced workflow preserves exact contract-lock, channel, trusted transient runtime, candidate, target tree, policy, scanner, provider and fresh-attempt bindings while adding an isolated v4-only declarative provider lane and optional dogfood failure checkpoint. V4 admits only sealed candidate, Stage Capsule and qualification evidence; legacy command inputs fail closed before planning and the provider resumes only incomplete capabilities.",
@@ -1593,12 +1595,15 @@
1593
1595
  "release-candidate-artifact",
1594
1596
  "release-candidate-recovery-receipt-artifact",
1595
1597
  "release-candidate-recovery-root",
1598
+ "release-invocation-root",
1596
1599
  "release-propagation-work-artifact",
1600
+ "release-receipt-root",
1597
1601
  "release-tail-declaration-root",
1598
1602
  "release-tail-receipt-roots-json",
1599
1603
  "release-tail-state-root",
1600
1604
  "release-tail-transaction-root",
1601
- "release-tail-transaction-state"
1605
+ "release-tail-transaction-state",
1606
+ "release-transaction-root"
1602
1607
  ]
1603
1608
  },
1604
1609
  "rationale": "The generated v4 promotion router preserves the opt-in declarative release-tail contract, exact contract-lock routing, and optional verified runtime-resume attachment while forwarding one optional dogfood provider checkpoint into the v4-only declarative lane. Existing v3 callers retain the same defaults, public inputs and legacy implementation, while v4 rejects command-shaped tail authority before planning.",
@@ -234,7 +234,7 @@
234
234
  },
235
235
  {
236
236
  "path": ".github/workflows/.release-candidate-promote.yml",
237
- "marker": "run: ${{ inputs.publication-consumer-qualification-command }}"
237
+ "marker": "name: Translate and admit legacy-compatible inputs"
238
238
  }
239
239
  ],
240
240
  "currentCallers": ["kungfu-alpha-promotion"],
@@ -339,7 +339,7 @@
339
339
  "executionSites": [
340
340
  {
341
341
  "path": ".github/workflows/.release-candidate-promote.yml",
342
- "marker": "bash -euo pipefail -c \"${BUILDCHAIN_PUBLICATION_COMMIT_COMMAND}\""
342
+ "marker": "name: Translate and admit legacy-compatible inputs"
343
343
  }
344
344
  ],
345
345
  "currentCallers": ["kungfu-alpha-promotion"],
@@ -360,7 +360,7 @@
360
360
  "executionSites": [
361
361
  {
362
362
  "path": ".github/workflows/.release-candidate-promote.yml",
363
- "marker": "bash -euo pipefail -c \"${BUILDCHAIN_RELEASE_ACTIVATION_COMMAND}\""
363
+ "marker": "name: Translate and admit legacy-compatible inputs"
364
364
  }
365
365
  ],
366
366
  "currentCallers": ["kungfu-alpha-promotion"],
@@ -387,7 +387,7 @@
387
387
  "executionSites": [
388
388
  {
389
389
  "path": ".github/workflows/.release-candidate-promote.yml",
390
- "marker": "bash -euo pipefail -c \"${{ inputs.release-passport-evidence-command }}\""
390
+ "marker": "name: Translate and admit legacy-compatible inputs"
391
391
  }
392
392
  ],
393
393
  "currentCallers": ["kungfu-alpha-promotion"],