@kungfu-tech/buildchain 4.1.0-alpha.0 → 4.1.0-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 (295) hide show
  1. package/AGENTS.md +30 -41
  2. package/CONTRIBUTING.md +6 -7
  3. package/architecture/action-taxonomy.json +5 -21
  4. package/architecture/agent-change-map.md +74 -56
  5. package/architecture/build-orchestration.json +8 -1
  6. package/architecture/ci-lane-change-budget.json +179 -69
  7. package/architecture/floating-consumer-policy.json +7 -17
  8. package/architecture/internal-capabilities.json +58 -72
  9. package/architecture/maintainability-debt.json +138 -52
  10. package/architecture/maintainability-policy.json +6 -15
  11. package/architecture/promotion-job-topology.json +39 -20
  12. package/architecture/release-topology.json +26 -37
  13. package/architecture/runtime-entry.json +26 -0
  14. package/architecture/runtime-resume-lineage.json +23 -0
  15. package/architecture/stage-capsule-qualification.json +2 -2
  16. package/architecture/universal-workflow-bootstrap.json +10 -25
  17. package/architecture/universal-workflow-capability-policy.json +61 -0
  18. package/architecture/universal-workflow-fault-campaign.json +18 -24
  19. package/architecture/workflow-taxonomy.json +0 -11
  20. package/contracts/fixtures/{v4-runtime-ref-resume-authority-v1 → runtime-resume-lineage-v2}/scenario.json +2 -3
  21. package/contracts/fixtures/v4-floating-consumer-policy-v1/cases.json +2 -2
  22. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  23. package/contracts/promotion-invocation-v1.schema.json +0 -44
  24. package/contracts/promotion-request-v1.schema.json +0 -39
  25. package/contracts/runtime-resume-lineage-v2.schema.json +182 -0
  26. package/dist/site/buildchain-contract.json +472 -361
  27. package/dist/site/buildchain-site.json +99 -99
  28. package/dist/site/capability-registry.json +3 -3
  29. package/dist/site/cli-registry.json +4 -4
  30. package/dist/site/controller-registry.json +94 -78
  31. package/dist/site/kfd-claims.json +224 -343
  32. package/dist/site/kfd-upstream-aggregate.json +1 -1
  33. package/dist/site/manual-registry.json +15 -15
  34. package/dist/site/node-api-registry.json +239 -354
  35. package/dist/site/page-registry.json +80 -80
  36. package/dist/site/public-surface-audit.json +203 -254
  37. package/dist/site/publication-authority-registry.json +1 -24
  38. package/dist/site/publication-registry.json +4 -4
  39. package/dist/site/release-provenance.json +1 -1
  40. package/dist/site/site-manifest.json +19 -19
  41. package/dist/site/workflow-registry.json +197 -357
  42. package/docs/MAP.md +3 -3
  43. package/docs/auditable-demo.md +4 -4
  44. package/docs/cli-reference.md +2 -2
  45. package/docs/code-organization.md +5 -4
  46. package/docs/controller-evidence.md +2 -2
  47. package/docs/dev-alpha-candidate-patrol.md +5 -5
  48. package/docs/dev-delivery-warrant.md +14 -24
  49. package/docs/engineering-housekeeper.md +3 -3
  50. package/docs/github-artifact-attestation.md +9 -12
  51. package/docs/github-governance-authority.md +4 -4
  52. package/docs/node-api-reference.md +153 -167
  53. package/docs/publication-artifacts.md +3 -4
  54. package/docs/publication-authority.md +2 -2
  55. package/docs/release-candidate.md +21 -27
  56. package/docs/release-governance.md +10 -10
  57. package/docs/release-promotion-request.md +11 -18
  58. package/docs/release-propagation.md +5 -6
  59. package/docs/release-tail-provider-plane.md +2 -3
  60. package/docs/reusable-build-surface.md +13 -7
  61. package/docs/runtime-entry.md +122 -0
  62. package/docs/runtime-train-validation.md +30 -41
  63. package/docs/v4-publication-rehearsal.md +5 -5
  64. package/docs/v4-stage-capsule.md +9 -10
  65. package/docs/web-surface-deployments.md +16 -20
  66. package/docs/workflow-catalog.md +0 -1
  67. package/package.json +6 -6
  68. package/packages/core/adoption/commands/init-repo.mjs +2 -2
  69. package/packages/core/adoption/cross-platform-adopter-qualification.js +2 -13
  70. package/packages/core/adoption/qualification/actions.js +3 -5
  71. package/packages/core/adoption/qualification/admission.js +2 -3
  72. package/packages/core/build/artifact/attestation.js +0 -1
  73. package/packages/core/build/artifact/contracts.js +1 -4
  74. package/packages/core/build/artifact/store.js +6 -5
  75. package/packages/core/build/artifact-signing.js +4 -10
  76. package/packages/core/build/binary/actions.js +15 -9
  77. package/packages/core/build/binary-publication-dispatch.js +2 -6
  78. package/packages/core/build/demo/action-context.js +2 -11
  79. package/packages/core/build/demo/binary-action.js +8 -10
  80. package/packages/core/build/gate/controller.js +0 -2
  81. package/packages/core/build/github-attestation/action.js +2 -7
  82. package/packages/core/build/github-attestation/admission.js +0 -8
  83. package/packages/core/build/github-attestation/transaction.js +1 -2
  84. package/packages/core/build/lifecycle/stage-action.js +2 -0
  85. package/packages/core/build/lifecycle/stage.js +6 -3
  86. package/packages/core/build/macos-credential-island/dmg-assembly.js +0 -2
  87. package/packages/core/build/macos-credential-island/lib.js +2 -6
  88. package/packages/core/build/plan/action-context.js +0 -7
  89. package/packages/core/build/plan/action.js +7 -11
  90. package/packages/core/build/plan/admission.js +6 -73
  91. package/packages/core/build/plan/configuration.js +1 -1
  92. package/packages/core/build/plan/environment.js +1 -1
  93. package/packages/core/build/plan/identity.js +1 -5
  94. package/packages/core/build/plan/resolve.js +7 -1
  95. package/packages/core/build/recovery/checkpoint.js +158 -0
  96. package/packages/core/build/recovery/transaction.js +51 -0
  97. package/packages/core/build/signing/authority-actions.js +2 -11
  98. package/packages/core/build/signing/control.js +0 -5
  99. package/packages/core/build/signing/controller-transaction.js +0 -1
  100. package/packages/core/build/signing/delegation.js +2 -4
  101. package/packages/core/build/signing/dispatch.js +10 -56
  102. package/packages/core/build/signing/intake.js +0 -4
  103. package/packages/core/build/signing/prepare.js +1 -1
  104. package/packages/core/build/signing/request.js +3 -8
  105. package/packages/core/build/source/checkout-action.js +6 -10
  106. package/packages/core/build/source/controller.js +1 -4
  107. package/packages/core/build/source/lifecycle.js +3 -13
  108. package/packages/core/build/stage-capsule/actions.js +3 -13
  109. package/packages/core/build/stage-capsule/campaign/resume.js +10 -5
  110. package/packages/core/build/stage-capsule/rehearsal/verify.js +3 -4
  111. package/packages/core/build/stage-capsule-resume-planner.js +0 -1
  112. package/packages/core/build/summary/aggregation.js +5 -5
  113. package/packages/core/build/summary/finalization.js +1 -1
  114. package/packages/core/build/verification/actions.js +3 -12
  115. package/packages/core/build/verification/runner.js +22 -20
  116. package/packages/core/consumer/floating-consumer-evidence.js +3 -21
  117. package/packages/core/consumer/floating-consumer-policy.js +2 -93
  118. package/packages/core/consumer/floating-consumer-release-passport.js +1 -34
  119. package/packages/core/consumer/policy-admission.js +1 -3
  120. package/packages/core/contracts/buildchain-contract.js +12 -146
  121. package/packages/core/contracts/workflow-yaml-contract.js +11 -1
  122. package/packages/core/dev-delivery/candidate/admission.js +3 -4
  123. package/packages/core/dev-delivery/candidate/coordinates.js +0 -8
  124. package/packages/core/dev-delivery/commands/dev-delivery-request.sh +5 -13
  125. package/packages/core/dev-delivery/commands/dev-delivery-source-proof-reuse.mjs +0 -3
  126. package/packages/core/dev-delivery/dev-delivery-contract-surface.js +4 -52
  127. package/packages/core/dev-delivery/dev-delivery-execution-transfer.js +2 -15
  128. package/packages/core/dev-delivery/native/action-context.js +4 -32
  129. package/packages/core/dev-delivery/native/provider-boundary.js +0 -2
  130. package/packages/core/dev-delivery/native/transactions.js +1 -2
  131. package/packages/core/dev-delivery/queue/reconciliation-action.js +6 -10
  132. package/packages/core/dev-delivery/source-proof/predicates.js +0 -6
  133. package/packages/core/dev-delivery/source-proof/reuse.js +0 -2
  134. package/packages/core/dev-delivery/source-proof/seal.js +0 -2
  135. package/packages/core/governance/alpha-candidate/action.js +1 -10
  136. package/packages/core/governance/audit/actions.js +1 -3
  137. package/packages/core/governance/audit/collection.js +1 -3
  138. package/packages/core/governance/audit/identity.js +3 -31
  139. package/packages/core/governance/audit/transactions.js +2 -4
  140. package/packages/core/governance/buildchain-publication-authority.js +0 -1
  141. package/packages/core/governance/commands/audit-github-governance.mjs +3 -2
  142. package/packages/core/governance/github-governance-authority.js +0 -5
  143. package/packages/core/governance/receipt-admission.js +0 -15
  144. package/packages/core/index.js +1 -1
  145. package/packages/core/observability/controller/identity.js +4 -5
  146. package/packages/core/observability/controller-evidence.js +5 -10
  147. package/packages/core/paper/commands/paper.mjs +6 -6
  148. package/packages/core/paper/operations/plans.js +2 -2
  149. package/packages/core/paper/operations/provisioning-validation.js +1 -1
  150. package/packages/core/paper/operations/scaffold-workflows.js +29 -12
  151. package/packages/core/paper/operations/scaffold.js +97 -69
  152. package/packages/core/paper/paper-agent-entry.js +0 -11
  153. package/packages/core/paper/paper-runtime-channels.js +21 -66
  154. package/packages/core/paper/paper-scaffold-content.js +1 -1
  155. package/packages/core/paper/paper.js +9 -5
  156. package/packages/core/paper/publication/candidate.js +0 -9
  157. package/packages/core/paper/publication-controller.js +2 -4
  158. package/packages/core/providers/github/artifact-attestation.js +1 -1
  159. package/packages/core/publication/authority/actions.js +9 -8
  160. package/packages/core/publication/authority/admission.js +0 -11
  161. package/packages/core/publication/authority/assembly.js +2 -7
  162. package/packages/core/publication/authority/control-plane.js +2 -2
  163. package/packages/core/publication/authority/governance.js +2 -9
  164. package/packages/core/publication/authority/request.js +7 -2
  165. package/packages/core/publication/authority/verification.js +3 -18
  166. package/packages/core/publication/binary/action.js +5 -7
  167. package/packages/core/publication/candidate/qualification-action.js +1 -6
  168. package/packages/core/publication/candidate/stage-capsules.js +1 -1
  169. package/packages/core/publication/npm/preview-action.js +9 -15
  170. package/packages/core/publication/oci/preview-actions.js +1 -10
  171. package/packages/core/publication/publication-artifact-candidate.js +2 -2
  172. package/packages/core/publication/publication-authority.js +2 -2
  173. package/packages/core/publication/publication-rehearsal-projection.js +3 -3
  174. package/packages/core/publication/settlement/actions.js +2 -11
  175. package/packages/core/release/binary/coordinates-action.js +0 -13
  176. package/packages/core/release/binary/coordinates.js +2 -19
  177. package/packages/core/release/commands/promotion-channel-router.mjs +12 -56
  178. package/packages/core/release/commands/resume-from-candidate-run.mjs +2 -3
  179. package/packages/core/release/dev-alpha-active-release-train.js +0 -5
  180. package/packages/core/release/line/action.js +2 -13
  181. package/packages/core/release/next-development/actions.js +2 -5
  182. package/packages/core/release/passport/consumer-validation.js +1 -28
  183. package/packages/core/release/promote-candidate/development-source.js +7 -8
  184. package/packages/core/release/promotion/actions.js +7 -38
  185. package/packages/core/release/promotion/admission.js +3 -50
  186. package/packages/core/release/promotion/candidate.js +2 -4
  187. package/packages/core/release/promotion/channel.js +13 -101
  188. package/packages/core/release/promotion/qualification-action.js +2 -13
  189. package/packages/core/release/promotion/routing.js +16 -81
  190. package/packages/core/release/promotion/selection.js +1 -9
  191. package/packages/core/release/promotion-request.js +1 -40
  192. package/packages/core/release/qualification/actions.js +0 -8
  193. package/packages/core/release/qualification/public-build.js +1 -1
  194. package/packages/core/release/recovery/candidate.js +15 -21
  195. package/packages/core/release/recovery/capsules.js +2 -10
  196. package/packages/core/release/recovery/lineage.js +305 -0
  197. package/packages/core/release/recovery/provenance.js +1 -2
  198. package/packages/core/release/recovery/publication.js +4 -14
  199. package/packages/core/release/recovery/readback.js +19 -32
  200. package/packages/core/release/recovery/runtime.js +4 -95
  201. package/packages/core/release/release-candidate-recovery.js +4 -9
  202. package/packages/core/release/release-candidate.js +2 -5
  203. package/packages/core/release/reseal/actions.js +3 -22
  204. package/packages/core/release/reseal/admission.js +0 -2
  205. package/packages/core/release/reseal/finalize-platform.js +0 -2
  206. package/packages/core/release/tail-reseal-github.js +1 -2
  207. package/packages/core/release/tail-reseal-receipt.js +0 -1
  208. package/packages/core/release/tail-reseal.js +2 -20
  209. package/packages/core/release/version-state.js +16 -13
  210. package/packages/core/runtime/buildchain-domain.wasm +0 -0
  211. package/packages/core/runtime/checkout-identity.js +0 -13
  212. package/packages/core/runtime/domain-wasm-artifact.js +2 -2
  213. package/packages/core/runtime/entry/actions.js +121 -0
  214. package/packages/core/runtime/entry/activation.js +86 -0
  215. package/packages/core/runtime/entry/github.js +55 -0
  216. package/packages/core/runtime/entry/recovery.js +37 -0
  217. package/packages/core/runtime/entry/selection.js +110 -0
  218. package/packages/core/web/controller.js +1 -1
  219. package/packages/core/web/publication-admission-action.js +1 -8
  220. package/packages/core/web/web-surface-publication-candidate.js +2 -5
  221. package/packages/core/workflow/admission/actions.js +6 -26
  222. package/packages/core/workflow/admission/recovery.js +3 -43
  223. package/packages/core/workflow/admission/transactions.js +8 -24
  224. package/packages/core/workflow/commands/buildchain-cli-help.mjs +1 -1
  225. package/packages/core/workflow/commands/universal-workflow-engine.mjs +2 -7
  226. package/packages/core/workflow/dogfood/actions.js +0 -17
  227. package/packages/core/workflow/engine/action.js +0 -5
  228. package/packages/core/workflow/engine/conformance.js +1 -1
  229. package/packages/core/workflow/engine/execution.js +2 -6
  230. package/packages/core/workflow/engine/identity.js +1 -6
  231. package/packages/core/workflow/engine/release-environment.js +11 -35
  232. package/packages/core/workflow/engine/release-promotion.js +2 -2
  233. package/packages/core/workflow/settlement/actions.js +0 -12
  234. package/packages/core/workflow/universal-self-dogfood.js +2 -16
  235. package/packages/core/workflow/universal-workflow-bootstrap.js +16 -241
  236. package/packages/core/workflow/workflow-taxonomy.mjs +2 -2
  237. package/scripts/check-dev-delivery-actions.mjs +17 -8
  238. package/scripts/check-floating-consumer-policy-contract.mjs +6 -6
  239. package/scripts/check-inventory.mjs +1 -10
  240. package/scripts/check-public-dogfood-contract.mjs +34 -21
  241. package/scripts/check-release-topology.mjs +2 -6
  242. package/scripts/check-runtime-entry.mjs +133 -0
  243. package/scripts/check-universal-workflow-bootstrap.mjs +45 -281
  244. package/scripts/check-workflows.sh +0 -7
  245. package/scripts/generate-bootstrap-admission.mjs +1 -1
  246. package/scripts/generate-channel-promotion-workflow.mjs +4 -4
  247. package/scripts/inventory/binary.mjs +4 -4
  248. package/scripts/inventory/promotion.mjs +5 -3
  249. package/scripts/runtime-source-boundaries.mjs +70 -0
  250. package/scripts/site-capability-metadata.mjs +2 -2
  251. package/scripts/workflow-action-graph.mjs +5 -18
  252. package/scripts/workflow-self-reference.mjs +20 -0
  253. package/templates/native-dev-delivery.yml +4 -4
  254. package/templates/universal-buildchain-bootstrap.yml +12 -2
  255. package/architecture/runtime-ref-resume-authority.json +0 -64
  256. package/architecture/universal-workflow-train-admission.json +0 -76
  257. package/contracts/v4-runtime-ref-resume-authority-v1.schema.json +0 -235
  258. package/docs/v4-runtime-ref-resume-authority.md +0 -69
  259. package/packages/core/consumer/channel-selection.js +0 -211
  260. package/packages/core/consumer/commands/buildchain-channel-router.mjs +0 -81
  261. package/packages/core/consumer/invocation-selector.js +0 -4
  262. package/packages/core/consumer/runtime-ref-resume-authority.js +0 -621
  263. package/packages/core/consumer/workflow-definition-authority.js +0 -64
  264. package/packages/core/contracts/runtime-contract-action.js +0 -48
  265. package/packages/core/release/commands/promotion-identity-resolver.mjs +0 -77
  266. package/packages/core/release/commands/verify-promotion-router-binding.sh +0 -36
  267. package/packages/core/release/promotion/identities.js +0 -56
  268. package/packages/core/release/runtime-override-authorization.js +0 -242
  269. package/packages/core/runtime/commands/runtime-ref-core.mjs +0 -171
  270. package/packages/core/runtime/provider-closure.js +0 -60
  271. package/packages/core/runtime/runtime-selection-action.js +0 -34
  272. package/packages/core/runtime/runtime-selection.js +0 -136
  273. package/packages/core/runtime/workflow-runtime.js +0 -11
  274. package/packages/core/workflow/admission/review.js +0 -188
  275. package/packages/core/workflow/commands/universal-workflow-backflow.mjs +0 -26
  276. package/packages/core/workflow/installation.js +0 -33
  277. package/packages/core/workflow/settlement/backflow.js +0 -187
  278. package/scripts/generate-bootstrap-recovery.mjs +0 -94
  279. package/templates/bootstrap-recovery/actions/build/source/admit/action.yml +0 -17
  280. package/templates/bootstrap-recovery/actions/build/source/admit/dist/index.js +0 -63
  281. package/templates/bootstrap-recovery/actions/runtime/dependencies/install/action.yml +0 -18
  282. package/templates/bootstrap-recovery/actions/runtime/dependencies/install/dist/index.js +0 -63
  283. package/templates/bootstrap-recovery/actions/runtime/environment/prepare/action.yml +0 -21
  284. package/templates/bootstrap-recovery/actions/workflow/admission/inspect/action.yml +0 -27
  285. package/templates/bootstrap-recovery/actions/workflow/admission/inspect/dist/index.js +0 -64
  286. package/templates/bootstrap-recovery/actions/workflow/admission/review/action.yml +0 -15
  287. package/templates/bootstrap-recovery/actions/workflow/admission/review/dist/index.js +0 -65
  288. package/templates/bootstrap-recovery/actions/workflow/recovery/admit/action.yml +0 -47
  289. package/templates/bootstrap-recovery/actions/workflow/recovery/execute/action.yml +0 -48
  290. package/templates/bootstrap-recovery/actions/workflow/recovery/settle/action.yml +0 -54
  291. package/templates/bootstrap-recovery/actions/workflow/settlement/seal/action.yml +0 -17
  292. package/templates/bootstrap-recovery/actions/workflow/settlement/seal/dist/index.js +0 -65
  293. package/templates/bootstrap-recovery/manifest.json +0 -68
  294. package/templates/bootstrap-recovery/package.json +0 -9
  295. package/templates/universal-buildchain-bootstrap-recovery.yml +0 -115
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "totalExcessLedger": {
9
9
  "metric": "calibrated-full-dimensional-excess-v1",
10
- "measuredExcess": 39588,
11
- "current": 31527
10
+ "measuredExcess": 38852,
11
+ "current": 30791
12
12
  },
13
13
  "defaults": {
14
14
  "owner": "Buildchain architecture maintainers",
@@ -310,7 +310,7 @@
310
310
  "lines": 816
311
311
  },
312
312
  "current": {
313
- "lines": 816
313
+ "lines": 812
314
314
  },
315
315
  "target": {
316
316
  "lines": 600
@@ -327,31 +327,23 @@
327
327
  "lines": 600
328
328
  }
329
329
  },
330
- "packages/core/consumer/runtime-ref-resume-authority.js": {
331
- "baseline": {
332
- "lines": 625
333
- },
334
- "current": {
335
- "lines": 621
336
- },
337
- "target": {
338
- "lines": 600
339
- }
340
- },
341
330
  "packages/core/contracts/buildchain-contract.js": {
342
331
  "baseline": {
343
332
  "lines": 1078,
344
333
  "functions": {
345
334
  "createBuildchainContractWorld@193": {
346
335
  "lines": 681
336
+ },
337
+ "createBuildchainContractWorld@189": {
338
+ "lines": 681
347
339
  }
348
340
  }
349
341
  },
350
342
  "current": {
351
- "lines": 1038,
343
+ "lines": 904,
352
344
  "functions": {
353
- "createBuildchainContractWorld@193": {
354
- "lines": 647
345
+ "createBuildchainContractWorld@189": {
346
+ "lines": 517
355
347
  }
356
348
  }
357
349
  },
@@ -360,6 +352,9 @@
360
352
  "functions": {
361
353
  "createBuildchainContractWorld@193": {
362
354
  "lines": 180
355
+ },
356
+ "createBuildchainContractWorld@189": {
357
+ "lines": 180
363
358
  }
364
359
  }
365
360
  }
@@ -415,12 +410,15 @@
415
410
  "functions": {
416
411
  "verifyNativeExecutionTransfer@468": {
417
412
  "complexity": 36
413
+ },
414
+ "verifyNativeExecutionTransfer@456": {
415
+ "complexity": 36
418
416
  }
419
417
  }
420
418
  },
421
419
  "current": {
422
420
  "functions": {
423
- "verifyNativeExecutionTransfer@468": {
421
+ "verifyNativeExecutionTransfer@456": {
424
422
  "complexity": 36
425
423
  }
426
424
  }
@@ -429,6 +427,9 @@
429
427
  "functions": {
430
428
  "verifyNativeExecutionTransfer@468": {
431
429
  "complexity": 25
430
+ },
431
+ "verifyNativeExecutionTransfer@456": {
432
+ "complexity": 25
432
433
  }
433
434
  }
434
435
  }
@@ -491,17 +492,20 @@
491
492
  },
492
493
  "createGithubRulesetGovernanceRolloutPlan@1190": {
493
494
  "complexity": 36
495
+ },
496
+ "createGithubRulesetGovernanceRolloutPlan@1185": {
497
+ "complexity": 36
494
498
  }
495
499
  }
496
500
  },
497
501
  "current": {
498
- "lines": 1367,
502
+ "lines": 1362,
499
503
  "functions": {
500
504
  "evaluateGithubGovernanceSnapshot@695": {
501
505
  "lines": 189,
502
506
  "complexity": 41
503
507
  },
504
- "createGithubRulesetGovernanceRolloutPlan@1190": {
508
+ "createGithubRulesetGovernanceRolloutPlan@1185": {
505
509
  "complexity": 36
506
510
  }
507
511
  }
@@ -515,6 +519,9 @@
515
519
  },
516
520
  "createGithubRulesetGovernanceRolloutPlan@1190": {
517
521
  "complexity": 25
522
+ },
523
+ "createGithubRulesetGovernanceRolloutPlan@1185": {
524
+ "complexity": 25
518
525
  }
519
526
  }
520
527
  }
@@ -751,7 +758,7 @@
751
758
  "functions": {
752
759
  "validatePublicationEvidence@468": {
753
760
  "lines": 262,
754
- "complexity": 52
761
+ "complexity": 51
755
762
  },
756
763
  "verifyPublicationAdmission@791": {
757
764
  "complexity": 35
@@ -986,19 +993,37 @@
986
993
  },
987
994
  "validateReleaseCandidatePassport@475": {
988
995
  "complexity": 38
996
+ },
997
+ "normalizeFamilyReleaseEvidence@232": {
998
+ "complexity": 26
999
+ },
1000
+ "createReleaseCandidatePassport@368": {
1001
+ "complexity": 37
1002
+ },
1003
+ "validateReleaseCandidatePassport@474": {
1004
+ "complexity": 38
1005
+ },
1006
+ "normalizeFamilyReleaseEvidence@231": {
1007
+ "complexity": 26
1008
+ },
1009
+ "createReleaseCandidatePassport@367": {
1010
+ "complexity": 37
1011
+ },
1012
+ "validateReleaseCandidatePassport@472": {
1013
+ "complexity": 38
989
1014
  }
990
1015
  }
991
1016
  },
992
1017
  "current": {
993
1018
  "functions": {
994
- "normalizeFamilyReleaseEvidence@233": {
1019
+ "normalizeFamilyReleaseEvidence@231": {
995
1020
  "complexity": 26
996
1021
  },
997
- "createReleaseCandidatePassport@369": {
998
- "complexity": 37
1022
+ "createReleaseCandidatePassport@367": {
1023
+ "complexity": 36
999
1024
  },
1000
- "validateReleaseCandidatePassport@475": {
1001
- "complexity": 38
1025
+ "validateReleaseCandidatePassport@472": {
1026
+ "complexity": 37
1002
1027
  }
1003
1028
  }
1004
1029
  },
@@ -1012,6 +1037,24 @@
1012
1037
  },
1013
1038
  "validateReleaseCandidatePassport@475": {
1014
1039
  "complexity": 25
1040
+ },
1041
+ "normalizeFamilyReleaseEvidence@232": {
1042
+ "complexity": 25
1043
+ },
1044
+ "createReleaseCandidatePassport@368": {
1045
+ "complexity": 25
1046
+ },
1047
+ "validateReleaseCandidatePassport@474": {
1048
+ "complexity": 25
1049
+ },
1050
+ "normalizeFamilyReleaseEvidence@231": {
1051
+ "complexity": 25
1052
+ },
1053
+ "createReleaseCandidatePassport@367": {
1054
+ "complexity": 25
1055
+ },
1056
+ "validateReleaseCandidatePassport@472": {
1057
+ "complexity": 25
1015
1058
  }
1016
1059
  }
1017
1060
  }
@@ -1160,7 +1203,7 @@
1160
1203
  "lines": 1515
1161
1204
  },
1162
1205
  "current": {
1163
- "lines": 1331
1206
+ "lines": 1322
1164
1207
  },
1165
1208
  "target": {
1166
1209
  "lines": 600
@@ -1551,15 +1594,21 @@
1551
1594
  "baseline": {
1552
1595
  "lines": 3181,
1553
1596
  "functions": {
1554
- "<anonymous@1404>@1404": {
1597
+ "<anonymous@1408>@1408": {
1598
+ "lines": 206
1599
+ },
1600
+ "<anonymous@1401>@1401": {
1601
+ "lines": 206
1602
+ },
1603
+ "<anonymous@1402>@1402": {
1555
1604
  "lines": 206
1556
1605
  }
1557
1606
  }
1558
1607
  },
1559
1608
  "current": {
1560
- "lines": 2563,
1609
+ "lines": 2561,
1561
1610
  "functions": {
1562
- "<anonymous@1404>@1404": {
1611
+ "<anonymous@1402>@1402": {
1563
1612
  "lines": 206
1564
1613
  }
1565
1614
  }
@@ -1567,7 +1616,13 @@
1567
1616
  "target": {
1568
1617
  "lines": 600,
1569
1618
  "functions": {
1570
- "<anonymous@1404>@1404": {
1619
+ "<anonymous@1408>@1408": {
1620
+ "lines": 180
1621
+ },
1622
+ "<anonymous@1401>@1401": {
1623
+ "lines": 180
1624
+ },
1625
+ "<anonymous@1402>@1402": {
1571
1626
  "lines": 180
1572
1627
  }
1573
1628
  }
@@ -1583,12 +1638,7 @@
1583
1638
  }
1584
1639
  },
1585
1640
  "current": {
1586
- "lines": 1765,
1587
- "functions": {
1588
- "<anonymous@1511>@1511": {
1589
- "lines": 188
1590
- }
1591
- }
1641
+ "lines": 1514
1592
1642
  },
1593
1643
  "target": {
1594
1644
  "lines": 600,
@@ -1647,11 +1697,10 @@
1647
1697
  }
1648
1698
  },
1649
1699
  "current": {
1650
- "lines": 1008,
1700
+ "lines": 1002,
1651
1701
  "functions": {
1652
1702
  "<anonymous@426>@426": {
1653
- "lines": 583,
1654
- "complexity": 40
1703
+ "lines": 577
1655
1704
  }
1656
1705
  }
1657
1706
  },
@@ -1670,7 +1719,7 @@
1670
1719
  "lines": 1422
1671
1720
  },
1672
1721
  "current": {
1673
- "lines": 1382
1722
+ "lines": 1384
1674
1723
  },
1675
1724
  "target": {
1676
1725
  "lines": 600
@@ -1716,7 +1765,7 @@
1716
1765
  "lines": 806
1717
1766
  },
1718
1767
  "current": {
1719
- "lines": 805
1768
+ "lines": 786
1720
1769
  },
1721
1770
  "target": {
1722
1771
  "lines": 600
@@ -1761,13 +1810,16 @@
1761
1810
  "functions": {
1762
1811
  "<anonymous@818>@818": {
1763
1812
  "lines": 205
1813
+ },
1814
+ "<anonymous@814>@814": {
1815
+ "lines": 205
1764
1816
  }
1765
1817
  }
1766
1818
  },
1767
1819
  "current": {
1768
1820
  "lines": 1133,
1769
1821
  "functions": {
1770
- "<anonymous@818>@818": {
1822
+ "<anonymous@814>@814": {
1771
1823
  "lines": 205
1772
1824
  }
1773
1825
  }
@@ -1777,6 +1829,9 @@
1777
1829
  "functions": {
1778
1830
  "<anonymous@818>@818": {
1779
1831
  "lines": 180
1832
+ },
1833
+ "<anonymous@814>@814": {
1834
+ "lines": 180
1780
1835
  }
1781
1836
  }
1782
1837
  }
@@ -1809,13 +1864,19 @@
1809
1864
  "functions": {
1810
1865
  "<anonymous@233>@233": {
1811
1866
  "lines": 229
1867
+ },
1868
+ "<anonymous@223>@223": {
1869
+ "lines": 229
1870
+ },
1871
+ "<anonymous@221>@221": {
1872
+ "lines": 229
1812
1873
  }
1813
1874
  }
1814
1875
  },
1815
1876
  "current": {
1816
- "lines": 712,
1877
+ "lines": 702,
1817
1878
  "functions": {
1818
- "<anonymous@233>@233": {
1879
+ "<anonymous@221>@221": {
1819
1880
  "lines": 229
1820
1881
  }
1821
1882
  }
@@ -1825,6 +1886,12 @@
1825
1886
  "functions": {
1826
1887
  "<anonymous@233>@233": {
1827
1888
  "lines": 180
1889
+ },
1890
+ "<anonymous@223>@223": {
1891
+ "lines": 180
1892
+ },
1893
+ "<anonymous@221>@221": {
1894
+ "lines": 180
1828
1895
  }
1829
1896
  }
1830
1897
  }
@@ -1834,7 +1901,7 @@
1834
1901
  "lines": 1202
1835
1902
  },
1836
1903
  "current": {
1837
- "lines": 1182
1904
+ "lines": 1179
1838
1905
  },
1839
1906
  "target": {
1840
1907
  "lines": 600
@@ -1953,12 +2020,15 @@
1953
2020
  "functions": {
1954
2021
  "<anonymous@3>@3": {
1955
2022
  "lines": 262
2023
+ },
2024
+ "<anonymous@4>@4": {
2025
+ "lines": 262
1956
2026
  }
1957
2027
  }
1958
2028
  },
1959
2029
  "current": {
1960
2030
  "functions": {
1961
- "<anonymous@3>@3": {
2031
+ "<anonymous@4>@4": {
1962
2032
  "lines": 262
1963
2033
  }
1964
2034
  }
@@ -1967,6 +2037,9 @@
1967
2037
  "functions": {
1968
2038
  "<anonymous@3>@3": {
1969
2039
  "lines": 180
2040
+ },
2041
+ "<anonymous@4>@4": {
2042
+ "lines": 180
1970
2043
  }
1971
2044
  }
1972
2045
  }
@@ -2048,7 +2121,7 @@
2048
2121
  "lines": 773
2049
2122
  },
2050
2123
  "current": {
2051
- "lines": 773
2124
+ "lines": 770
2052
2125
  },
2053
2126
  "target": {
2054
2127
  "lines": 600
@@ -2070,7 +2143,7 @@
2070
2143
  "lines": 1217
2071
2144
  },
2072
2145
  "current": {
2073
- "lines": 1039
2146
+ "lines": 988
2074
2147
  },
2075
2148
  "target": {
2076
2149
  "lines": 600
@@ -2128,13 +2201,24 @@
2128
2201
  "jobs": 14
2129
2202
  },
2130
2203
  "current": {
2131
- "lines": 787,
2204
+ "lines": 728,
2132
2205
  "jobs": 14
2133
2206
  },
2134
2207
  "target": {
2135
2208
  "lines": 600,
2136
2209
  "jobs": 8
2137
2210
  }
2211
+ },
2212
+ ".github/workflows/self-ops-bootstrap-dogfood.yml": {
2213
+ "baseline": {
2214
+ "jobs": 9
2215
+ },
2216
+ "current": {
2217
+ "jobs": 9
2218
+ },
2219
+ "target": {
2220
+ "jobs": 8
2221
+ }
2138
2222
  }
2139
2223
  }
2140
2224
  },
@@ -2158,7 +2242,9 @@
2158
2242
  ".github/workflows/public-build-adopter-qualification.yml",
2159
2243
  ".github/workflows/public-build-stage-capsule-canary.yml",
2160
2244
  ".github/workflows/public-release-oci-compose-preview.yml",
2161
- ".github/workflows/public-release-promote.yml"
2245
+ ".github/workflows/public-release-promote.yml",
2246
+ ".github/workflows/self-build-verify.yml",
2247
+ ".github/workflows/self-release-promote.yml"
2162
2248
  ],
2163
2249
  "burnDownSlices": [
2164
2250
  {
@@ -2166,7 +2252,7 @@
2166
2252
  "path": "tests/build-surface.test.mjs",
2167
2253
  "metric": "lines",
2168
2254
  "baseline": 4639,
2169
- "current": 1765
2255
+ "current": 1514
2170
2256
  }
2171
2257
  ]
2172
2258
  }
@@ -29,9 +29,9 @@
29
29
  "maxHandMaintainedSourceFiles": 1295,
30
30
  "maxHandMaintainedSourceLines": 203392,
31
31
  "maxWorkflowFiles": 68,
32
- "maxWorkflowLines": 8715,
33
- "latestTransition": "Buildchain 4.1 responsibility layers and capability modules.",
34
- "latestTransitionRationale": "The authorized breaking 4.1 restructuring replaces workflow implementation and historical forwarders with semantic actions and bounded capability modules. Ratchet repository totals at the measured cut; retain frozen per-file, function, exception and calibrated debt limits. Composite implementation and inline shell remain independently bounded by the code-layout gate. Require independent governance review.",
32
+ "maxWorkflowLines": 9763,
33
+ "latestTransition": "Buildchain 4.1 unified runtime entry and per-job preparation.",
34
+ "latestTransitionRationale": "All public APIs declare one runtime selection job and every execution job uses the sole preparation owner. Count the required workflow input, output, permissions and job wiring at this exact cut. Business actions run only from the selected runtime. No per-function, exception-count or calibrated debt ceiling increases; independent governance review is required.",
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
  "maxActionDefinitions": 283,
@@ -84,11 +84,6 @@
84
84
  "maxLines": 1397,
85
85
  "rationale": "The single provider-neutral Rust release-tail authority replaces the retired 1,228-line JavaScript state machine and keeps strict declaration normalization, deterministic effect planning, rooted observations and receipts, and bounded retry/readback transitions behind the checked WASM ABI. Node retains only provider effects; this exact Rust ceiling cannot grow implicitly.",
86
86
  "governance": "legacy-debt-sunset-2026q4"
87
- },
88
- "packages/core/consumer/runtime-ref-resume-authority.js": {
89
- "maxLines": 625,
90
- "rationale": "The reviewed v4 authority keeps exact-runtime authorization, source and lock binding, fresh-attempt Stage Capsule reuse, floating-ref movement, final readback, and Passport lineage verification in one bounded public module; persistence scanning is separately owned and this exact ceiling cannot grow implicitly.",
91
- "governance": "legacy-debt-sunset-2026q4"
92
87
  }
93
88
  },
94
89
  "approvedExistingDebtTransitions": {
@@ -381,13 +376,9 @@
381
376
  }
382
377
  },
383
378
  "approvedWorkflowDebtTransitions": {
384
- ".github/workflows/public-release-web.yml": {
385
- "maxLines": 2020,
386
- "maxJobs": 14,
387
- "maxSteps": 112,
388
- "maxStepsPerJob": 18,
389
- "maxDecisions": 35,
390
- "rationale": "The web-surface workflow declares only the two historical contract-channel aliases used by its existing v4 contract lock. Conflicts fail before build or deployment, and these exact ceilings contain no unrelated headroom.",
379
+ ".github/workflows/self-ops-bootstrap-dogfood.yml": {
380
+ "maxJobs": 9,
381
+ "rationale": "The common execution-runtime job selects the runtime once for independent primary and recovery public bootstrap calls. Existing provider and reconciliation job boundaries remain explicit; no business logic or runtime acquisition is duplicated. This exact one-job addition replaces the retired web contract-alias transition.",
391
382
  "governance": "legacy-debt-sunset-2026q4"
392
383
  }
393
384
  },
@@ -1,6 +1,30 @@
1
1
  {
2
+ "execution-runtime": {
3
+ "runs-on": "ubuntu-24.04",
4
+ "permissions": {
5
+ "contents": "read"
6
+ },
7
+ "outputs": {
8
+ "selection": "${{ steps.select.outputs.selection }}"
9
+ },
10
+ "steps": [
11
+ {
12
+ "id": "select",
13
+ "uses": "$/actions/runtime/selection/resolve",
14
+ "with": {
15
+ "runtime-ref": "${{ inputs.runtime-ref }}",
16
+ "contract-lock": "${{ inputs.contract-lock }}",
17
+ "workflow-ref": "${{ job.workflow_ref }}",
18
+ "workflow-sha": "${{ job.workflow_sha }}",
19
+ "token": "${{ github.token }}",
20
+ "selection": "${{ inputs.runtime-selection }}"
21
+ }
22
+ }
23
+ ],
24
+ "timeout-minutes": 5
25
+ },
2
26
  "resolve-promotion": {
3
- "name": "Resolve promotion workflow shell and runtime",
27
+ "name": "Bind publication intent to the selected runtime",
4
28
  "runs-on": "ubuntu-24.04",
5
29
  "permissions": {
6
30
  "contents": "read"
@@ -26,19 +50,17 @@
26
50
  },
27
51
  "steps": [
28
52
  {
29
- "name": "Load the exact workflow implementation",
30
- "uses": "actions/checkout@v7.0.0",
53
+ "name": "Prepare selected execution runtime",
54
+ "uses": "$/actions/runtime/environment/prepare",
31
55
  "with": {
32
- "repository": "${{ job.workflow_repository }}",
33
- "ref": "${{ job.workflow_sha }}",
34
- "path": ".buildchain/workflow-shell",
35
- "persist-credentials": false
56
+ "selection": "${{ needs.execution-runtime.outputs.selection }}",
57
+ "token": "${{ github.token }}"
36
58
  }
37
59
  },
38
60
  {
39
61
  "name": "Resolve and bind promotion identities",
40
62
  "id": "node",
41
- "uses": "./.buildchain/workflow-shell/actions/release/promotion/resolve",
63
+ "uses": "./.buildchain/runtime/actions/release/promotion/resolve",
42
64
  "with": {
43
65
  "request-json": "${{ inputs.request-json }}",
44
66
  "workflow-sha": "${{ job.workflow_sha }}",
@@ -46,35 +68,32 @@
46
68
  "workflow-repository": "${{ job.workflow_repository }}"
47
69
  }
48
70
  }
49
- ]
71
+ ],
72
+ "needs": ["execution-runtime"]
50
73
  },
51
74
  "consumer-admission": {
52
75
  "name": "Admit v4 floating consumer policy",
53
- "needs": "resolve-promotion",
76
+ "needs": ["resolve-promotion", "execution-runtime"],
54
77
  "runs-on": "ubuntu-24.04",
55
78
  "permissions": {
56
79
  "contents": "read"
57
80
  },
58
81
  "outputs": {
59
- "runtime-authorization-json": "${{ steps.node.outputs.runtime-authorization-json }}",
60
- "runtime-authorization-root": "${{ steps.node.outputs.runtime-authorization-root }}",
61
82
  "invocation-json": "${{ steps.node.outputs.invocation-json }}"
62
83
  },
63
84
  "steps": [
64
85
  {
65
- "name": "Load the exact workflow implementation",
66
- "uses": "actions/checkout@v7.0.0",
86
+ "name": "Prepare selected execution runtime",
87
+ "uses": "$/actions/runtime/environment/prepare",
67
88
  "with": {
68
- "repository": "${{ job.workflow_repository }}",
69
- "ref": "${{ job.workflow_sha }}",
70
- "path": ".buildchain/workflow-shell",
71
- "persist-credentials": false
89
+ "selection": "${{ needs.execution-runtime.outputs.selection }}",
90
+ "token": "${{ github.token }}"
72
91
  }
73
92
  },
74
93
  {
75
- "name": "Admit consumer and authorize runtime",
94
+ "name": "Admit consumer publication request",
76
95
  "id": "node",
77
- "uses": "./.buildchain/workflow-shell/actions/release/promotion/admit",
96
+ "uses": "./.buildchain/runtime/actions/release/promotion/admit",
78
97
  "with": {
79
98
  "request-json": "${{ needs.resolve-promotion.outputs.request-json }}",
80
99
  "selection-json": "${{ toJSON(needs.resolve-promotion.outputs) }}"