@hominis/fireforge 0.46.0 → 0.46.1

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 (606) hide show
  1. package/CHANGELOG.md +381 -498
  2. package/dist/bin/fireforge.d.ts +1 -1
  3. package/dist/bin/fireforge.js +17 -17
  4. package/dist/build-info.json +4 -4
  5. package/dist/src/cli-usage-error.d.ts +9 -9
  6. package/dist/src/cli-usage-error.js +12 -12
  7. package/dist/src/cli.d.ts +3 -2
  8. package/dist/src/cli.js +29 -28
  9. package/dist/src/commands/bootstrap-checks.js +2 -1
  10. package/dist/src/commands/bootstrap.js +2 -2
  11. package/dist/src/commands/build.js +12 -11
  12. package/dist/src/commands/config.js +9 -9
  13. package/dist/src/commands/destructive-decision.d.ts +4 -4
  14. package/dist/src/commands/destructive-decision.js +4 -4
  15. package/dist/src/commands/discard.js +5 -5
  16. package/dist/src/commands/doctor-check-core.d.ts +4 -4
  17. package/dist/src/commands/doctor-external-toolchains.js +2 -2
  18. package/dist/src/commands/doctor-furnace-config-sync.d.ts +2 -2
  19. package/dist/src/commands/doctor-furnace-config-sync.js +20 -20
  20. package/dist/src/commands/doctor-furnace-jar.d.ts +1 -1
  21. package/dist/src/commands/doctor-furnace-jar.js +1 -1
  22. package/dist/src/commands/doctor-furnace.js +22 -22
  23. package/dist/src/commands/doctor-orphaned-harness.d.ts +10 -11
  24. package/dist/src/commands/doctor-orphaned-harness.js +10 -11
  25. package/dist/src/commands/doctor-patch-manifest.d.ts +2 -1
  26. package/dist/src/commands/doctor-patch-manifest.js +7 -6
  27. package/dist/src/commands/doctor-post-rebase-audit.js +2 -2
  28. package/dist/src/commands/doctor-source-pin.d.ts +12 -12
  29. package/dist/src/commands/doctor-source-pin.js +14 -14
  30. package/dist/src/commands/doctor-working-tree.d.ts +3 -3
  31. package/dist/src/commands/doctor-working-tree.js +3 -3
  32. package/dist/src/commands/doctor.d.ts +2 -2
  33. package/dist/src/commands/doctor.js +9 -9
  34. package/dist/src/commands/download.js +15 -13
  35. package/dist/src/commands/export-all.js +8 -8
  36. package/dist/src/commands/export-flow.d.ts +5 -5
  37. package/dist/src/commands/export-flow.js +14 -14
  38. package/dist/src/commands/export-placement-conflicts.d.ts +3 -3
  39. package/dist/src/commands/export-placement-conflicts.js +9 -9
  40. package/dist/src/commands/export-placement-gate.d.ts +2 -2
  41. package/dist/src/commands/export-placement-gate.js +5 -5
  42. package/dist/src/commands/export-placement-policy.d.ts +1 -1
  43. package/dist/src/commands/export-placement-policy.js +1 -1
  44. package/dist/src/commands/export-shared.d.ts +10 -10
  45. package/dist/src/commands/export-shared.js +13 -13
  46. package/dist/src/commands/export.js +4 -4
  47. package/dist/src/commands/furnace/apply.js +16 -16
  48. package/dist/src/commands/furnace/chrome-doc-remove.d.ts +1 -1
  49. package/dist/src/commands/furnace/chrome-doc-remove.js +1 -1
  50. package/dist/src/commands/furnace/chrome-doc-templates.d.ts +14 -14
  51. package/dist/src/commands/furnace/chrome-doc-templates.js +17 -17
  52. package/dist/src/commands/furnace/chrome-doc-tests.d.ts +2 -2
  53. package/dist/src/commands/furnace/chrome-doc-tests.js +4 -4
  54. package/dist/src/commands/furnace/chrome-doc.d.ts +8 -8
  55. package/dist/src/commands/furnace/chrome-doc.js +18 -18
  56. package/dist/src/commands/furnace/create-browser-test.d.ts +1 -1
  57. package/dist/src/commands/furnace/create-browser-test.js +4 -4
  58. package/dist/src/commands/furnace/create-dry-run.d.ts +4 -4
  59. package/dist/src/commands/furnace/create-dry-run.js +4 -4
  60. package/dist/src/commands/furnace/create-features.d.ts +2 -2
  61. package/dist/src/commands/furnace/create-features.js +2 -2
  62. package/dist/src/commands/furnace/create-mochikit.d.ts +4 -4
  63. package/dist/src/commands/furnace/create-mochikit.js +7 -7
  64. package/dist/src/commands/furnace/create-templates.d.ts +14 -14
  65. package/dist/src/commands/furnace/create-templates.js +18 -18
  66. package/dist/src/commands/furnace/create-xpcshell.d.ts +5 -5
  67. package/dist/src/commands/furnace/create-xpcshell.js +8 -8
  68. package/dist/src/commands/furnace/create.d.ts +1 -1
  69. package/dist/src/commands/furnace/create.js +10 -10
  70. package/dist/src/commands/furnace/deploy.js +4 -4
  71. package/dist/src/commands/furnace/diff.js +7 -7
  72. package/dist/src/commands/furnace/index.js +1 -1
  73. package/dist/src/commands/furnace/init.js +15 -15
  74. package/dist/src/commands/furnace/list.js +2 -2
  75. package/dist/src/commands/furnace/override.d.ts +1 -1
  76. package/dist/src/commands/furnace/override.js +15 -15
  77. package/dist/src/commands/furnace/preview.js +17 -17
  78. package/dist/src/commands/furnace/refresh.js +6 -6
  79. package/dist/src/commands/furnace/remove-mutations.d.ts +3 -3
  80. package/dist/src/commands/furnace/remove-mutations.js +19 -18
  81. package/dist/src/commands/furnace/remove-state.d.ts +1 -1
  82. package/dist/src/commands/furnace/remove-state.js +1 -1
  83. package/dist/src/commands/furnace/remove.js +2 -2
  84. package/dist/src/commands/furnace/rename-browser-test.js +9 -8
  85. package/dist/src/commands/furnace/rename-xpcshell.d.ts +2 -2
  86. package/dist/src/commands/furnace/rename-xpcshell.js +3 -3
  87. package/dist/src/commands/furnace/rename.js +9 -9
  88. package/dist/src/commands/furnace/scan.js +3 -3
  89. package/dist/src/commands/furnace/status.js +7 -7
  90. package/dist/src/commands/furnace/sync.js +6 -6
  91. package/dist/src/commands/furnace/test-file-name.d.ts +2 -2
  92. package/dist/src/commands/furnace/test-file-name.js +2 -2
  93. package/dist/src/commands/furnace/validate.js +11 -12
  94. package/dist/src/commands/import.js +20 -20
  95. package/dist/src/commands/lint-per-patch.js +8 -8
  96. package/dist/src/commands/lint-per-run-checkjs.d.ts +12 -13
  97. package/dist/src/commands/lint-per-run-checkjs.js +14 -15
  98. package/dist/src/commands/lint-report.d.ts +3 -3
  99. package/dist/src/commands/lint-report.js +4 -4
  100. package/dist/src/commands/lint.d.ts +3 -3
  101. package/dist/src/commands/lint.js +35 -35
  102. package/dist/src/commands/manifest.d.ts +4 -4
  103. package/dist/src/commands/package.js +2 -2
  104. package/dist/src/commands/patch/compact.d.ts +2 -2
  105. package/dist/src/commands/patch/compact.js +8 -8
  106. package/dist/src/commands/patch/delete.d.ts +1 -1
  107. package/dist/src/commands/patch/delete.js +8 -8
  108. package/dist/src/commands/patch/lint-ignore.d.ts +3 -4
  109. package/dist/src/commands/patch/lint-ignore.js +14 -15
  110. package/dist/src/commands/patch/move-files-create.d.ts +2 -2
  111. package/dist/src/commands/patch/move-files-create.js +5 -5
  112. package/dist/src/commands/patch/move-files-into.d.ts +2 -2
  113. package/dist/src/commands/patch/move-files-into.js +3 -3
  114. package/dist/src/commands/patch/move-files.js +1 -1
  115. package/dist/src/commands/patch/patch-context.d.ts +1 -1
  116. package/dist/src/commands/patch/rename.d.ts +4 -4
  117. package/dist/src/commands/patch/rename.js +8 -8
  118. package/dist/src/commands/patch/reorder.js +10 -10
  119. package/dist/src/commands/patch/split-plan.d.ts +3 -3
  120. package/dist/src/commands/patch/split-plan.js +6 -5
  121. package/dist/src/commands/patch/split.d.ts +2 -2
  122. package/dist/src/commands/patch/split.js +5 -5
  123. package/dist/src/commands/patch/staged-dependency-validate.d.ts +1 -1
  124. package/dist/src/commands/patch/staged-dependency-validate.js +3 -3
  125. package/dist/src/commands/patch/staged-dependency.d.ts +1 -1
  126. package/dist/src/commands/patch/staged-dependency.js +6 -6
  127. package/dist/src/commands/patch/tier.d.ts +2 -2
  128. package/dist/src/commands/patch/tier.js +5 -5
  129. package/dist/src/commands/patch-rename-map.d.ts +1 -1
  130. package/dist/src/commands/patch-rename-map.js +1 -1
  131. package/dist/src/commands/pending-resolution.d.ts +5 -5
  132. package/dist/src/commands/pending-resolution.js +5 -5
  133. package/dist/src/commands/re-export-adjacent.d.ts +3 -3
  134. package/dist/src/commands/re-export-adjacent.js +8 -8
  135. package/dist/src/commands/re-export-bulk-scan.d.ts +3 -3
  136. package/dist/src/commands/re-export-bulk-scan.js +17 -17
  137. package/dist/src/commands/re-export-drift.d.ts +10 -10
  138. package/dist/src/commands/re-export-drift.js +29 -29
  139. package/dist/src/commands/re-export-files.js +14 -15
  140. package/dist/src/commands/re-export-lint.d.ts +26 -26
  141. package/dist/src/commands/re-export-lint.js +27 -27
  142. package/dist/src/commands/re-export-options.d.ts +1 -1
  143. package/dist/src/commands/re-export-options.js +1 -1
  144. package/dist/src/commands/re-export-register.d.ts +1 -1
  145. package/dist/src/commands/re-export-register.js +1 -1
  146. package/dist/src/commands/re-export-scan.d.ts +1 -1
  147. package/dist/src/commands/re-export-scan.js +7 -7
  148. package/dist/src/commands/re-export-single.d.ts +1 -1
  149. package/dist/src/commands/re-export-single.js +20 -20
  150. package/dist/src/commands/re-export.js +7 -6
  151. package/dist/src/commands/rebase/abort.js +6 -6
  152. package/dist/src/commands/rebase/continue.js +8 -7
  153. package/dist/src/commands/rebase/index.d.ts +1 -1
  154. package/dist/src/commands/rebase/index.js +3 -3
  155. package/dist/src/commands/rebase/patch-loop.js +18 -17
  156. package/dist/src/commands/register.js +5 -5
  157. package/dist/src/commands/reset.js +1 -1
  158. package/dist/src/commands/resolve.d.ts +2 -2
  159. package/dist/src/commands/resolve.js +3 -3
  160. package/dist/src/commands/run.js +26 -26
  161. package/dist/src/commands/setup-support.js +4 -4
  162. package/dist/src/commands/setup.js +1 -1
  163. package/dist/src/commands/source.js +1 -1
  164. package/dist/src/commands/status-check.d.ts +3 -3
  165. package/dist/src/commands/status-check.js +4 -4
  166. package/dist/src/commands/status-json.d.ts +14 -13
  167. package/dist/src/commands/status-json.js +9 -8
  168. package/dist/src/commands/status-output.d.ts +3 -3
  169. package/dist/src/commands/status-output.js +3 -3
  170. package/dist/src/commands/status-ownership.d.ts +3 -3
  171. package/dist/src/commands/status-ownership.js +3 -3
  172. package/dist/src/commands/status.js +22 -22
  173. package/dist/src/commands/test-build-phase.d.ts +1 -1
  174. package/dist/src/commands/test-build-phase.js +17 -17
  175. package/dist/src/commands/test-diagnose.d.ts +1 -1
  176. package/dist/src/commands/test-diagnose.js +20 -20
  177. package/dist/src/commands/test-modes.d.ts +2 -2
  178. package/dist/src/commands/test-modes.js +4 -4
  179. package/dist/src/commands/test-run.d.ts +11 -11
  180. package/dist/src/commands/test-run.js +15 -15
  181. package/dist/src/commands/test-stale-gate.d.ts +12 -12
  182. package/dist/src/commands/test-stale-gate.js +13 -13
  183. package/dist/src/commands/test-verdict.d.ts +6 -6
  184. package/dist/src/commands/test-verdict.js +11 -11
  185. package/dist/src/commands/test.d.ts +3 -3
  186. package/dist/src/commands/test.js +36 -36
  187. package/dist/src/commands/token-coverage.js +3 -3
  188. package/dist/src/commands/token-list.js +5 -5
  189. package/dist/src/commands/token.js +9 -9
  190. package/dist/src/commands/tree.js +19 -19
  191. package/dist/src/commands/typecheck.d.ts +6 -6
  192. package/dist/src/commands/typecheck.js +7 -7
  193. package/dist/src/commands/verify.d.ts +3 -3
  194. package/dist/src/commands/verify.js +10 -10
  195. package/dist/src/commands/watch.js +11 -11
  196. package/dist/src/commands/wire.js +13 -13
  197. package/dist/src/core/ast-utils.d.ts +7 -7
  198. package/dist/src/core/ast-utils.js +8 -8
  199. package/dist/src/core/branding.d.ts +5 -5
  200. package/dist/src/core/branding.js +3 -3
  201. package/dist/src/core/browser-wire.d.ts +1 -1
  202. package/dist/src/core/browser-wire.js +4 -4
  203. package/dist/src/core/build-audit-platform.d.ts +6 -6
  204. package/dist/src/core/build-audit-platform.js +26 -26
  205. package/dist/src/core/build-audit-registration.d.ts +5 -5
  206. package/dist/src/core/build-audit-registration.js +7 -7
  207. package/dist/src/core/build-audit-resolve.d.ts +5 -5
  208. package/dist/src/core/build-audit-resolve.js +6 -6
  209. package/dist/src/core/build-audit-skip.d.ts +8 -8
  210. package/dist/src/core/build-audit-skip.js +12 -12
  211. package/dist/src/core/build-audit-transforms.d.ts +2 -2
  212. package/dist/src/core/build-audit-transforms.js +3 -3
  213. package/dist/src/core/build-audit.d.ts +8 -8
  214. package/dist/src/core/build-audit.js +39 -37
  215. package/dist/src/core/build-baseline-types.d.ts +19 -18
  216. package/dist/src/core/build-baseline-types.js +1 -1
  217. package/dist/src/core/build-baseline.d.ts +8 -8
  218. package/dist/src/core/build-baseline.js +14 -14
  219. package/dist/src/core/build-jar-escalation.d.ts +8 -8
  220. package/dist/src/core/build-jar-escalation.js +15 -15
  221. package/dist/src/core/build-overwrite-guard.d.ts +4 -4
  222. package/dist/src/core/build-overwrite-guard.js +13 -13
  223. package/dist/src/core/build-prepare.d.ts +4 -4
  224. package/dist/src/core/build-prepare.js +16 -15
  225. package/dist/src/core/config-mutate.js +4 -4
  226. package/dist/src/core/config-state.js +2 -2
  227. package/dist/src/core/config-validate-build-audit.js +3 -3
  228. package/dist/src/core/config-validate-file-size.d.ts +1 -1
  229. package/dist/src/core/config-validate-file-size.js +2 -2
  230. package/dist/src/core/config-validate.js +8 -9
  231. package/dist/src/core/config.d.ts +10 -10
  232. package/dist/src/core/config.js +10 -10
  233. package/dist/src/core/coverage-extend.d.ts +16 -16
  234. package/dist/src/core/coverage-extend.js +16 -16
  235. package/dist/src/core/destructive.d.ts +14 -14
  236. package/dist/src/core/destructive.js +9 -9
  237. package/dist/src/core/diff-hunks.d.ts +2 -2
  238. package/dist/src/core/diff-hunks.js +7 -7
  239. package/dist/src/core/discard-baseline.d.ts +10 -10
  240. package/dist/src/core/discard-baseline.js +15 -16
  241. package/dist/src/core/display-state.d.ts +11 -11
  242. package/dist/src/core/display-state.js +12 -12
  243. package/dist/src/core/engine-changes.d.ts +2 -2
  244. package/dist/src/core/engine-changes.js +2 -2
  245. package/dist/src/core/engine-precondition.d.ts +4 -4
  246. package/dist/src/core/engine-precondition.js +2 -2
  247. package/dist/src/core/engine-session-lock.d.ts +18 -18
  248. package/dist/src/core/engine-session-lock.js +37 -37
  249. package/dist/src/core/export-moved-code-shape.d.ts +7 -7
  250. package/dist/src/core/export-moved-code-shape.js +8 -8
  251. package/dist/src/core/file-lock-owner.d.ts +11 -11
  252. package/dist/src/core/file-lock-owner.js +18 -18
  253. package/dist/src/core/file-lock.d.ts +12 -12
  254. package/dist/src/core/file-lock.js +52 -39
  255. package/dist/src/core/firefox-cache.d.ts +1 -1
  256. package/dist/src/core/firefox-cache.js +10 -10
  257. package/dist/src/core/firefox-download.d.ts +3 -3
  258. package/dist/src/core/firefox-download.js +6 -6
  259. package/dist/src/core/firefox-extract.d.ts +2 -2
  260. package/dist/src/core/firefox-extract.js +13 -13
  261. package/dist/src/core/firefox.d.ts +5 -5
  262. package/dist/src/core/firefox.js +8 -8
  263. package/dist/src/core/furnace-apply-dry-run.js +1 -1
  264. package/dist/src/core/furnace-apply-ftl.d.ts +5 -5
  265. package/dist/src/core/furnace-apply-ftl.js +8 -8
  266. package/dist/src/core/furnace-apply-helpers.d.ts +9 -9
  267. package/dist/src/core/furnace-apply-helpers.js +21 -21
  268. package/dist/src/core/furnace-apply-output.js +1 -1
  269. package/dist/src/core/furnace-apply-overwrite-warn.d.ts +9 -9
  270. package/dist/src/core/furnace-apply-overwrite-warn.js +9 -9
  271. package/dist/src/core/furnace-apply-undeploy-actions.d.ts +1 -1
  272. package/dist/src/core/furnace-apply-undeploy-actions.js +1 -1
  273. package/dist/src/core/furnace-apply.d.ts +3 -3
  274. package/dist/src/core/furnace-apply.js +22 -21
  275. package/dist/src/core/furnace-checksum-utils.d.ts +5 -5
  276. package/dist/src/core/furnace-checksum-utils.js +5 -5
  277. package/dist/src/core/furnace-config-custom.d.ts +1 -1
  278. package/dist/src/core/furnace-config-custom.js +2 -2
  279. package/dist/src/core/furnace-config-order.js +1 -1
  280. package/dist/src/core/furnace-config-tokens.d.ts +3 -3
  281. package/dist/src/core/furnace-config-tokens.js +3 -3
  282. package/dist/src/core/furnace-config-validate.js +2 -2
  283. package/dist/src/core/furnace-config.d.ts +4 -4
  284. package/dist/src/core/furnace-config.js +18 -18
  285. package/dist/src/core/furnace-constants.d.ts +6 -6
  286. package/dist/src/core/furnace-constants.js +6 -6
  287. package/dist/src/core/furnace-css-fragments.d.ts +6 -6
  288. package/dist/src/core/furnace-css-fragments.js +11 -11
  289. package/dist/src/core/furnace-dir-entry.d.ts +1 -1
  290. package/dist/src/core/furnace-dir-entry.js +1 -1
  291. package/dist/src/core/furnace-jsconfig.d.ts +7 -7
  292. package/dist/src/core/furnace-jsconfig.js +22 -20
  293. package/dist/src/core/furnace-operation.d.ts +21 -20
  294. package/dist/src/core/furnace-operation.js +36 -34
  295. package/dist/src/core/furnace-precondition.d.ts +10 -10
  296. package/dist/src/core/furnace-precondition.js +8 -8
  297. package/dist/src/core/furnace-refresh.js +2 -2
  298. package/dist/src/core/furnace-registration-ast.d.ts +2 -2
  299. package/dist/src/core/furnace-registration-ast.js +9 -9
  300. package/dist/src/core/furnace-registration-remove.d.ts +4 -4
  301. package/dist/src/core/furnace-registration-remove.js +6 -6
  302. package/dist/src/core/furnace-registration-validate.d.ts +2 -2
  303. package/dist/src/core/furnace-registration-validate.js +2 -2
  304. package/dist/src/core/furnace-registration.d.ts +5 -5
  305. package/dist/src/core/furnace-registration.js +7 -7
  306. package/dist/src/core/furnace-rollback.d.ts +1 -1
  307. package/dist/src/core/furnace-rollback.js +5 -5
  308. package/dist/src/core/furnace-stale-export.d.ts +17 -16
  309. package/dist/src/core/furnace-stale-export.js +16 -15
  310. package/dist/src/core/furnace-staleness.d.ts +2 -2
  311. package/dist/src/core/furnace-staleness.js +2 -2
  312. package/dist/src/core/furnace-state-persist.d.ts +10 -10
  313. package/dist/src/core/furnace-state-persist.js +10 -10
  314. package/dist/src/core/furnace-step-errors.d.ts +6 -6
  315. package/dist/src/core/furnace-step-errors.js +6 -6
  316. package/dist/src/core/furnace-validate-accessibility.js +14 -14
  317. package/dist/src/core/furnace-validate-compatibility.js +9 -9
  318. package/dist/src/core/furnace-validate-registration.d.ts +2 -2
  319. package/dist/src/core/furnace-validate-registration.js +13 -13
  320. package/dist/src/core/furnace-validate-structure.d.ts +1 -1
  321. package/dist/src/core/furnace-validate-structure.js +4 -4
  322. package/dist/src/core/furnace-validate.js +9 -9
  323. package/dist/src/core/furnace-version-drift.d.ts +5 -5
  324. package/dist/src/core/furnace-version-drift.js +5 -5
  325. package/dist/src/core/git-base.d.ts +4 -4
  326. package/dist/src/core/git-base.js +9 -9
  327. package/dist/src/core/git-diff-new-file.d.ts +4 -4
  328. package/dist/src/core/git-diff-new-file.js +8 -8
  329. package/dist/src/core/git-diff.d.ts +4 -4
  330. package/dist/src/core/git-diff.js +35 -34
  331. package/dist/src/core/git-file-ops.d.ts +6 -6
  332. package/dist/src/core/git-file-ops.js +7 -7
  333. package/dist/src/core/git-readonly-index.d.ts +12 -12
  334. package/dist/src/core/git-readonly-index.js +12 -12
  335. package/dist/src/core/git-status.d.ts +4 -4
  336. package/dist/src/core/git-status.js +4 -4
  337. package/dist/src/core/git.d.ts +3 -3
  338. package/dist/src/core/git.js +14 -14
  339. package/dist/src/core/harness-orphans.d.ts +17 -17
  340. package/dist/src/core/harness-orphans.js +20 -20
  341. package/dist/src/core/history-log.d.ts +3 -3
  342. package/dist/src/core/history-log.js +3 -3
  343. package/dist/src/core/license-headers.d.ts +19 -18
  344. package/dist/src/core/license-headers.js +29 -28
  345. package/dist/src/core/mach-build-artifacts.d.ts +21 -21
  346. package/dist/src/core/mach-build-artifacts.js +23 -23
  347. package/dist/src/core/mach-error-hints.d.ts +5 -5
  348. package/dist/src/core/mach-error-hints.js +13 -13
  349. package/dist/src/core/mach-known-noise-filter.d.ts +41 -38
  350. package/dist/src/core/mach-known-noise-filter.js +53 -50
  351. package/dist/src/core/mach-mozconfig.d.ts +6 -6
  352. package/dist/src/core/mach-mozconfig.js +15 -15
  353. package/dist/src/core/mach-python.d.ts +2 -1
  354. package/dist/src/core/mach-python.js +4 -3
  355. package/dist/src/core/mach-resource-shim.d.ts +12 -12
  356. package/dist/src/core/mach-resource-shim.js +20 -20
  357. package/dist/src/core/mach.d.ts +23 -23
  358. package/dist/src/core/mach.js +36 -36
  359. package/dist/src/core/marionette-port.d.ts +15 -13
  360. package/dist/src/core/marionette-port.js +34 -31
  361. package/dist/src/core/marionette-preflight.d.ts +6 -6
  362. package/dist/src/core/marionette-preflight.js +23 -23
  363. package/dist/src/core/markdown-table.d.ts +9 -9
  364. package/dist/src/core/markdown-table.js +14 -14
  365. package/dist/src/core/mochitest-server-port.d.ts +8 -8
  366. package/dist/src/core/mochitest-server-port.js +14 -14
  367. package/dist/src/core/module-resolution-preflight.d.ts +8 -8
  368. package/dist/src/core/module-resolution-preflight.js +11 -11
  369. package/dist/src/core/moz-manifest-helpers.d.ts +7 -7
  370. package/dist/src/core/moz-manifest-helpers.js +7 -7
  371. package/dist/src/core/moz-manifest-register.d.ts +1 -1
  372. package/dist/src/core/moz-manifest-register.js +2 -2
  373. package/dist/src/core/moz-manifest-rules.js +11 -11
  374. package/dist/src/core/moz-manifest-tokenizers.js +1 -1
  375. package/dist/src/core/ownership-table.d.ts +5 -5
  376. package/dist/src/core/ownership-table.js +7 -7
  377. package/dist/src/core/parser-fallback.d.ts +3 -3
  378. package/dist/src/core/parser-fallback.js +3 -3
  379. package/dist/src/core/patch-apply-fuzz.d.ts +5 -5
  380. package/dist/src/core/patch-apply-fuzz.js +9 -9
  381. package/dist/src/core/patch-apply.d.ts +9 -9
  382. package/dist/src/core/patch-apply.js +30 -30
  383. package/dist/src/core/patch-export-update.d.ts +4 -4
  384. package/dist/src/core/patch-export-update.js +3 -3
  385. package/dist/src/core/patch-export.d.ts +10 -10
  386. package/dist/src/core/patch-export.js +13 -13
  387. package/dist/src/core/patch-identifier-suggest.d.ts +1 -1
  388. package/dist/src/core/patch-identifier-suggest.js +4 -4
  389. package/dist/src/core/patch-lint-binary.d.ts +7 -7
  390. package/dist/src/core/patch-lint-cache.d.ts +2 -2
  391. package/dist/src/core/patch-lint-cache.js +13 -13
  392. package/dist/src/core/patch-lint-checkjs.d.ts +26 -26
  393. package/dist/src/core/patch-lint-checkjs.js +42 -41
  394. package/dist/src/core/patch-lint-chrome-jsdoc.d.ts +8 -9
  395. package/dist/src/core/patch-lint-chrome-jsdoc.js +10 -11
  396. package/dist/src/core/patch-lint-creators.d.ts +3 -3
  397. package/dist/src/core/patch-lint-creators.js +3 -3
  398. package/dist/src/core/patch-lint-cross.d.ts +13 -13
  399. package/dist/src/core/patch-lint-cross.js +21 -21
  400. package/dist/src/core/patch-lint-css.d.ts +1 -1
  401. package/dist/src/core/patch-lint-css.js +5 -5
  402. package/dist/src/core/patch-lint-diff-tag.d.ts +5 -5
  403. package/dist/src/core/patch-lint-diff-tag.js +5 -5
  404. package/dist/src/core/patch-lint-diff.d.ts +4 -4
  405. package/dist/src/core/patch-lint-diff.js +4 -4
  406. package/dist/src/core/patch-lint-file-size.d.ts +3 -3
  407. package/dist/src/core/patch-lint-file-size.js +3 -3
  408. package/dist/src/core/patch-lint-forward-registration.d.ts +4 -4
  409. package/dist/src/core/patch-lint-forward-registration.js +12 -12
  410. package/dist/src/core/patch-lint-jsdoc.d.ts +2 -2
  411. package/dist/src/core/patch-lint-jsdoc.js +11 -11
  412. package/dist/src/core/patch-lint-module-registration.d.ts +1 -1
  413. package/dist/src/core/patch-lint-module-registration.js +1 -1
  414. package/dist/src/core/patch-lint-mozbuild.d.ts +1 -1
  415. package/dist/src/core/patch-lint-mozbuild.js +10 -10
  416. package/dist/src/core/patch-lint-observer.d.ts +3 -3
  417. package/dist/src/core/patch-lint-observer.js +7 -7
  418. package/dist/src/core/patch-lint-ownership.d.ts +6 -6
  419. package/dist/src/core/patch-lint-ownership.js +6 -6
  420. package/dist/src/core/patch-lint-prettier.d.ts +6 -6
  421. package/dist/src/core/patch-lint-prettier.js +6 -6
  422. package/dist/src/core/patch-lint-queue-types.d.ts +1 -1
  423. package/dist/src/core/patch-lint-queue-types.js +1 -1
  424. package/dist/src/core/patch-lint-staged-registration.d.ts +2 -2
  425. package/dist/src/core/patch-lint-staged-registration.js +6 -6
  426. package/dist/src/core/patch-lint-unmanaged-companion.d.ts +23 -23
  427. package/dist/src/core/patch-lint-unmanaged-companion.js +26 -26
  428. package/dist/src/core/patch-lint.d.ts +27 -26
  429. package/dist/src/core/patch-lint.js +48 -46
  430. package/dist/src/core/patch-lock.d.ts +1 -1
  431. package/dist/src/core/patch-lock.js +8 -8
  432. package/dist/src/core/patch-manifest-consistency.d.ts +7 -7
  433. package/dist/src/core/patch-manifest-consistency.js +16 -17
  434. package/dist/src/core/patch-manifest-files-affected.d.ts +1 -1
  435. package/dist/src/core/patch-manifest-files-affected.js +3 -3
  436. package/dist/src/core/patch-manifest-io.d.ts +14 -14
  437. package/dist/src/core/patch-manifest-io.js +27 -27
  438. package/dist/src/core/patch-manifest-query.d.ts +1 -1
  439. package/dist/src/core/patch-manifest-query.js +4 -4
  440. package/dist/src/core/patch-manifest-resolve.d.ts +5 -5
  441. package/dist/src/core/patch-manifest-resolve.js +7 -7
  442. package/dist/src/core/patch-manifest-validate.js +3 -3
  443. package/dist/src/core/patch-manifest.d.ts +2 -2
  444. package/dist/src/core/patch-manifest.js +2 -2
  445. package/dist/src/core/patch-parse.d.ts +14 -14
  446. package/dist/src/core/patch-parse.js +16 -16
  447. package/dist/src/core/patch-registration-refs.d.ts +4 -4
  448. package/dist/src/core/patch-registration-refs.js +7 -7
  449. package/dist/src/core/patch-transform.d.ts +8 -8
  450. package/dist/src/core/patch-transform.js +13 -13
  451. package/dist/src/core/process-cpu-time.d.ts +1 -1
  452. package/dist/src/core/process-cpu-time.js +5 -5
  453. package/dist/src/core/rebase-session.d.ts +7 -7
  454. package/dist/src/core/rebase-session.js +8 -8
  455. package/dist/src/core/register-result.d.ts +1 -1
  456. package/dist/src/core/register-result.js +1 -1
  457. package/dist/src/core/register-scaffold.d.ts +2 -2
  458. package/dist/src/core/register-scaffold.js +3 -3
  459. package/dist/src/core/register-shared-css.d.ts +3 -3
  460. package/dist/src/core/register-shared-css.js +4 -4
  461. package/dist/src/core/register-xpcshell-test.d.ts +2 -2
  462. package/dist/src/core/register-xpcshell-test.js +2 -2
  463. package/dist/src/core/run-log-redact.d.ts +12 -12
  464. package/dist/src/core/run-log-redact.js +16 -16
  465. package/dist/src/core/run-log.d.ts +9 -9
  466. package/dist/src/core/run-log.js +14 -14
  467. package/dist/src/core/shared-ftl.d.ts +2 -2
  468. package/dist/src/core/shared-ftl.js +6 -6
  469. package/dist/src/core/signal-critical.d.ts +2 -2
  470. package/dist/src/core/signal-critical.js +2 -2
  471. package/dist/src/core/smoke-patterns.d.ts +5 -5
  472. package/dist/src/core/smoke-patterns.js +9 -9
  473. package/dist/src/core/state-file.d.ts +3 -3
  474. package/dist/src/core/status-binary.d.ts +8 -8
  475. package/dist/src/core/status-binary.js +12 -12
  476. package/dist/src/core/status-classify.d.ts +17 -17
  477. package/dist/src/core/status-classify.js +11 -11
  478. package/dist/src/core/test-changed-prefs.d.ts +12 -12
  479. package/dist/src/core/test-changed-prefs.js +15 -15
  480. package/dist/src/core/test-harness-crash.d.ts +39 -39
  481. package/dist/src/core/test-harness-crash.js +67 -67
  482. package/dist/src/core/test-harness-output.d.ts +7 -7
  483. package/dist/src/core/test-harness-output.js +7 -7
  484. package/dist/src/core/test-harness-verdict-notes.d.ts +13 -14
  485. package/dist/src/core/test-harness-verdict-notes.js +4 -4
  486. package/dist/src/core/test-path-scope.d.ts +8 -8
  487. package/dist/src/core/test-path-scope.js +11 -11
  488. package/dist/src/core/test-stale-check.d.ts +22 -21
  489. package/dist/src/core/test-stale-check.js +29 -28
  490. package/dist/src/core/test-stale-symlink.d.ts +1 -1
  491. package/dist/src/core/test-stale-symlink.js +1 -1
  492. package/dist/src/core/test-stall-triage.d.ts +9 -9
  493. package/dist/src/core/test-stall-triage.js +22 -22
  494. package/dist/src/core/token-category.d.ts +4 -4
  495. package/dist/src/core/token-category.js +13 -12
  496. package/dist/src/core/token-coverage.js +4 -5
  497. package/dist/src/core/token-dark-mode.d.ts +9 -9
  498. package/dist/src/core/token-dark-mode.js +11 -11
  499. package/dist/src/core/token-docs.d.ts +1 -1
  500. package/dist/src/core/token-inventory.d.ts +6 -6
  501. package/dist/src/core/token-inventory.js +7 -7
  502. package/dist/src/core/token-manager.d.ts +3 -3
  503. package/dist/src/core/token-manager.js +21 -21
  504. package/dist/src/core/token-scaffold.d.ts +4 -4
  505. package/dist/src/core/token-scaffold.js +4 -4
  506. package/dist/src/core/token-variant.d.ts +14 -14
  507. package/dist/src/core/token-variant.js +32 -32
  508. package/dist/src/core/toolchain-preflight.d.ts +15 -15
  509. package/dist/src/core/toolchain-preflight.js +22 -22
  510. package/dist/src/core/tree-cow.d.ts +3 -3
  511. package/dist/src/core/tree-cow.js +6 -6
  512. package/dist/src/core/tree-guard.d.ts +3 -3
  513. package/dist/src/core/tree-guard.js +23 -23
  514. package/dist/src/core/tree-store.d.ts +15 -15
  515. package/dist/src/core/tree-store.js +35 -33
  516. package/dist/src/core/typecheck-shim.d.ts +16 -15
  517. package/dist/src/core/typecheck-shim.js +26 -25
  518. package/dist/src/core/typecheck.d.ts +12 -12
  519. package/dist/src/core/typecheck.js +31 -31
  520. package/dist/src/core/wire-destroy.d.ts +2 -2
  521. package/dist/src/core/wire-destroy.js +5 -5
  522. package/dist/src/core/wire-dom-fragment.d.ts +3 -3
  523. package/dist/src/core/wire-dom-fragment.js +6 -6
  524. package/dist/src/core/wire-init.d.ts +2 -2
  525. package/dist/src/core/wire-init.js +7 -7
  526. package/dist/src/core/wire-subscript.d.ts +1 -1
  527. package/dist/src/core/wire-subscript.js +3 -3
  528. package/dist/src/core/wire-utils.d.ts +9 -9
  529. package/dist/src/core/wire-utils.js +11 -11
  530. package/dist/src/core/xpcshell-appdir.d.ts +20 -20
  531. package/dist/src/core/xpcshell-appdir.js +26 -26
  532. package/dist/src/core/xpcshell-profile-dir.d.ts +3 -3
  533. package/dist/src/core/xpcshell-profile-dir.js +7 -7
  534. package/dist/src/errors/base.d.ts +22 -21
  535. package/dist/src/errors/base.js +22 -21
  536. package/dist/src/errors/build.d.ts +6 -6
  537. package/dist/src/errors/build.js +6 -6
  538. package/dist/src/errors/codes.d.ts +10 -10
  539. package/dist/src/errors/codes.js +10 -10
  540. package/dist/src/errors/furnace.d.ts +2 -2
  541. package/dist/src/errors/git.d.ts +1 -1
  542. package/dist/src/errors/git.js +1 -1
  543. package/dist/src/errors/patch.d.ts +3 -3
  544. package/dist/src/errors/patch.js +3 -3
  545. package/dist/src/errors/rebase.d.ts +1 -1
  546. package/dist/src/errors/rebase.js +1 -1
  547. package/dist/src/errors/run.d.ts +1 -1
  548. package/dist/src/errors/run.js +1 -1
  549. package/dist/src/index.d.ts +4 -4
  550. package/dist/src/index.js +4 -4
  551. package/dist/src/types/commands/options.d.ts +86 -85
  552. package/dist/src/types/commands/patches.d.ts +19 -19
  553. package/dist/src/types/commands/project.d.ts +3 -3
  554. package/dist/src/types/config.d.ts +24 -23
  555. package/dist/src/types/furnace.d.ts +17 -17
  556. package/dist/src/types/json.d.ts +3 -3
  557. package/dist/src/types/json.js +2 -2
  558. package/dist/src/types/typecheck.d.ts +3 -3
  559. package/dist/src/utils/assert.d.ts +1 -1
  560. package/dist/src/utils/assert.js +6 -6
  561. package/dist/src/utils/build-info.d.ts +5 -5
  562. package/dist/src/utils/build-info.js +6 -6
  563. package/dist/src/utils/child-env.d.ts +5 -5
  564. package/dist/src/utils/child-env.js +5 -5
  565. package/dist/src/utils/concurrency.d.ts +2 -2
  566. package/dist/src/utils/concurrency.js +2 -2
  567. package/dist/src/utils/elapsed.js +1 -1
  568. package/dist/src/utils/errors.d.ts +8 -8
  569. package/dist/src/utils/errors.js +8 -8
  570. package/dist/src/utils/fs.d.ts +1 -1
  571. package/dist/src/utils/fs.js +8 -8
  572. package/dist/src/utils/line-dispatch.d.ts +3 -3
  573. package/dist/src/utils/line-dispatch.js +5 -5
  574. package/dist/src/utils/logger.d.ts +4 -4
  575. package/dist/src/utils/logger.js +11 -11
  576. package/dist/src/utils/machine-output.js +2 -2
  577. package/dist/src/utils/options.d.ts +13 -13
  578. package/dist/src/utils/options.js +20 -20
  579. package/dist/src/utils/package-root.js +2 -2
  580. package/dist/src/utils/paths.d.ts +4 -4
  581. package/dist/src/utils/paths.js +4 -4
  582. package/dist/src/utils/process-group.d.ts +8 -8
  583. package/dist/src/utils/process-group.js +19 -19
  584. package/dist/src/utils/process.d.ts +34 -33
  585. package/dist/src/utils/process.js +20 -19
  586. package/dist/src/utils/ps-duration.d.ts +4 -4
  587. package/dist/src/utils/ps-duration.js +6 -6
  588. package/dist/src/utils/regex.d.ts +4 -4
  589. package/dist/src/utils/regex.js +7 -7
  590. package/dist/src/utils/sleep.d.ts +7 -7
  591. package/dist/src/utils/sleep.js +7 -7
  592. package/dist/src/utils/stdio-drain.d.ts +7 -7
  593. package/dist/src/utils/stdio-drain.js +8 -8
  594. package/dist/src/utils/validation.d.ts +11 -12
  595. package/dist/src/utils/validation.js +20 -21
  596. package/docs/README.md +2 -2
  597. package/docs/configuration.md +120 -114
  598. package/docs/exit-codes.md +63 -58
  599. package/docs/furnace.md +20 -19
  600. package/docs/lifecycle-invariants.md +412 -251
  601. package/docs/machine-output.md +33 -32
  602. package/docs/patch-workflow.md +48 -45
  603. package/docs/run-logs.md +62 -58
  604. package/docs/testing.md +101 -101
  605. package/docs/verification-trees.md +23 -22
  606. package/package.json +2 -2
@@ -4,19 +4,19 @@
4
4
  * escalate from `mach build faster` to a full `mach build`.
5
5
  *
6
6
  * The 0.41.0 rule was `any changed jar.mn ⇒ full build`, which costs ~10
7
- * minutes against ~20 s for a chrome-only slice and is paid TWICE per
7
+ * minutes against ~20 s for a chrome-only slice and is paid twice per
8
8
  * green/no-change pair on a Furnace-touching slice. A downstream experiment
9
9
  * (two clean runs, 2026-08-29, against 0.44.4) showed the rule is over-broad
10
- * for the common case: a jar-only registration of a NEW content file added
11
- * to an EXISTING `dist/bin` manifest was installed by a plain
12
- * `fireforge build --ui` both times — `faster/install_dist_bin_browser` named
10
+ * for the common case: a jar-only registration of a new content file added
11
+ * to an existing `dist/bin` manifest was installed by a plain
12
+ * `fireforge build --ui` both times: `faster/install_dist_bin_browser` named
13
13
  * the destination, the file landed in `dist/bin/…/content/browser/` and in
14
14
  * the `.app` bundle, and a plain `fireforge test` fetched it over
15
15
  * `chrome://` at runtime. Neither run escalated, and neither needed to.
16
16
  *
17
- * What the experiment did NOT exercise, and what therefore still escalates:
17
+ * What the experiment did not exercise, and what therefore still escalates:
18
18
  *
19
- * - a NEW `jar.mn` file. The install manifest for a manifest the backend
19
+ * - a new `jar.mn` file. The install manifest for a manifest the backend
20
20
  * has never seen does not exist yet, and `mach build faster` consumes
21
21
  * install manifests rather than regenerating the backend that writes
22
22
  * them.
@@ -38,7 +38,7 @@ import { getUntrackedFilesInDir } from './git-status.js';
38
38
  /**
39
39
  * A jar declaration line: an optional bracketed base-directory prefix, then
40
40
  * the jar name. Matched at column zero because entry lines inside a section
41
- * are indented — an indented `foo.jar:` is content, not a declaration.
41
+ * are indented. An indented `foo.jar:` is content, not a declaration.
42
42
  */
43
43
  const JAR_DECLARATION_PATTERN = /^(\[[^\]]*\]\s*)?[^\s[\]]+\.jar:\s*$/;
44
44
  /** True when the jar declaration redirects the install base directory. */
@@ -49,14 +49,14 @@ function declaresNonDefaultBase(line) {
49
49
  return match[1] !== undefined;
50
50
  }
51
51
  /**
52
- * True when a changed `jar.mn` is NEW to the last successful build.
52
+ * True when a changed `jar.mn` is new to the last successful build.
53
53
  *
54
- * Untracked in the engine repo is the reliable tell: a fork's engine tree is
55
- * a checkout of upstream with patches applied to the WORKTREE, so a manifest
56
- * a patch created is untracked and one that shipped upstream is tracked. The
57
- * baseline's fingerprints cannot answer this on their own — they record only
58
- * the paths that were DIRTY at the last build, so a clean pre-existing
59
- * manifest has no entry either.
54
+ * Untracked in the engine repo is the reliable signal: a fork's engine tree
55
+ * is a checkout of upstream with patches applied to the worktree, so a
56
+ * manifest a patch created is untracked and one that shipped upstream is
57
+ * tracked. The baseline's fingerprints cannot answer this on their own: they
58
+ * record only the paths that were dirty at the last build, so a clean
59
+ * pre-existing manifest has no entry either.
60
60
  */
61
61
  async function isNewJarManifest(engineDir, path) {
62
62
  const untracked = await getUntrackedFilesInDir(engineDir, path);
@@ -116,7 +116,7 @@ export async function evaluateJarManifestEscalation(engineDir, changedPaths, bas
116
116
  return { escalate: causes.length > 0, causes, cleared };
117
117
  }
118
118
  /**
119
- * Renders the operator-facing escalation notice. Names the manifest AND the
119
+ * Renders the operator-facing escalation notice. Names the manifest and the
120
120
  * reason: "a jar.mn changed" is the sentence that made the previous rule
121
121
  * impossible to argue with from outside.
122
122
  */
@@ -1,15 +1,15 @@
1
1
  /**
2
- * Loud guard against silently reverting UNEXPORTED engine drift.
2
+ * Loud guard against silently reverting unexported engine drift.
3
3
  *
4
4
  * `build-prepare` rewrites engine files from FireForge-owned sources before
5
5
  * every build: the branding tree, every Furnace-managed component, and
6
6
  * `mozconfig`. On a multi-session checkout that is a silent destructive
7
- * write — one session edits a file in `engine/` while another holds the
7
+ * write: one session edits a file in `engine/` while another holds the
8
8
  * engine lock, the lock-holder's build rewrites it back to its patch
9
9
  * baseline, and the editing session's later `re-export --wait-lock`
10
- * captures a HYBRID file that every gate then passes.
10
+ * captures a hybrid file that every gate then passes.
11
11
  *
12
- * This guard runs BEFORE the writes, classifies the engine's dirty files
12
+ * This guard runs before the writes, classifies the engine's dirty files
13
13
  * with the same classifier `fireforge status` uses, and reports the ones
14
14
  * whose content is explained by neither a patch body nor the pristine
15
15
  * baseline. Advisory by default (a warning naming every file), refusing
@@ -1,16 +1,16 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * Loud guard against silently reverting UNEXPORTED engine drift.
3
+ * Loud guard against silently reverting unexported engine drift.
4
4
  *
5
5
  * `build-prepare` rewrites engine files from FireForge-owned sources before
6
6
  * every build: the branding tree, every Furnace-managed component, and
7
7
  * `mozconfig`. On a multi-session checkout that is a silent destructive
8
- * write — one session edits a file in `engine/` while another holds the
8
+ * write: one session edits a file in `engine/` while another holds the
9
9
  * engine lock, the lock-holder's build rewrites it back to its patch
10
10
  * baseline, and the editing session's later `re-export --wait-lock`
11
- * captures a HYBRID file that every gate then passes.
11
+ * captures a hybrid file that every gate then passes.
12
12
  *
13
- * This guard runs BEFORE the writes, classifies the engine's dirty files
13
+ * This guard runs before the writes, classifies the engine's dirty files
14
14
  * with the same classifier `fireforge status` uses, and reports the ones
15
15
  * whose content is explained by neither a patch body nor the pristine
16
16
  * baseline. Advisory by default (a warning naming every file), refusing
@@ -23,12 +23,12 @@ import { collectFurnaceManagedPrefixes } from './furnace-config.js';
23
23
  import { expandUntrackedDirectoryEntries, getWorkingTreeStatus } from './git-status.js';
24
24
  import { classifyFiles } from './status-classify.js';
25
25
  /**
26
- * Classifications whose on-disk content is explained by NEITHER a patch
27
- * body nor the pristine baseline — exactly the content a build-prepare
26
+ * Classifications whose on-disk content is explained by neither a patch
27
+ * body nor the pristine baseline, which is the content a build-prepare
28
28
  * overwrite would destroy without a record anywhere.
29
29
  *
30
- * `patch-backed` and `furnace` are excluded because their content IS the
31
- * recorded state; `branding` is excluded because the branding writer
30
+ * `patch-backed` and `furnace` are excluded because their content is the
31
+ * recorded state. `branding` is excluded because the branding writer
32
32
  * preserves unmanaged lines rather than overwriting them.
33
33
  */
34
34
  const AT_RISK_CLASSIFICATIONS = new Set(['unmanaged', 'patch-owned-drift', 'conflict']);
@@ -58,15 +58,15 @@ function isOverwrittenByBuildPrepare(file, binaryName, furnacePrefixes) {
58
58
  * Narrows the status entries to the ones build-prepare can overwrite,
59
59
  * expanding collapsed untracked directories on the way.
60
60
  *
61
- * Git reports a WHOLLY untracked directory as a single `?? dir/` entry
61
+ * Git reports a wholly untracked directory as a single `?? dir/` entry
62
62
  * rather than listing the files under it. A directory entry has no content
63
63
  * to compare, so `classifyFiles` matches it against neither a patch body nor
64
- * the pristine baseline and buckets it `unmanaged` — an at-risk
65
- * classification. Expanding here is what keeps this guard and
66
- * `status --unmanaged`, which expands, agreeing by construction.
64
+ * the pristine baseline and buckets it `unmanaged`, an at-risk
65
+ * classification. Expanding here keeps this guard in agreement with
66
+ * `status --unmanaged`, which also expands.
67
67
  *
68
68
  * Expansion is scoped to build-prepare-owned prefixes on both sides of the
69
- * walk: a collapsed directory that merely CONTAINS an owned prefix
69
+ * walk: a collapsed directory that merely contains an owned prefix
70
70
  * (`components/` when `components/custom/` is Furnace-managed) is rewritten
71
71
  * to the owned prefixes beneath it, so the enumeration never walks an
72
72
  * unrelated subtree and never trips the per-directory expansion cap.
@@ -26,20 +26,20 @@ export interface PrepareBuildOptions {
26
26
  * Previous successful-build baseline, used to detect `moz.build` /
27
27
  * `moz.configure` / `Makefile.in` changes that require a fresh
28
28
  * `mach configure` before the build. When undefined, the auto-configure
29
- * step is skipped — there's no reference point for what "changed since"
30
- * means.
29
+ * step is skipped, since there's no reference point for what "changed
30
+ * since" means.
31
31
  */
32
32
  previousBaseline?: BuildBaseline | undefined;
33
33
  /**
34
34
  * Turn the unexported-drift warning into a hard refusal.
35
- * Scripted gates want the stop; an interactive build wants the warning.
35
+ * Scripted gates want the stop. An interactive build wants the warning.
36
36
  */
37
37
  refuseUnexportedDrift?: boolean | undefined;
38
38
  }
39
39
  /**
40
40
  * Describes an exit code in the shell's 128+N signal convention. Truncated
41
41
  * configure/build logs with a signal-shaped exit (e.g. 144 = 128+16, SIGURG
42
- * on macOS) are environmental interruptions, not compiler failures — naming
42
+ * on macOS) are environmental interruptions, not compiler failures. Naming
43
43
  * that in the failure text saves the operator a fruitless log hunt.
44
44
  * Returns undefined for codes <= 128 (regular failures) and
45
45
  * for codes past the conventional signal range, so callers append nothing.
@@ -25,7 +25,7 @@ import { explainMachError } from './mach-error-hints.js';
25
25
  /** Path fragments of files whose edits invalidate the recursive-make backend. */
26
26
  const BACKEND_INVALIDATING_SUFFIXES = ['moz.build', 'moz.configure', 'Makefile.in'];
27
27
  /**
28
- * Build-input manifests changed since the last SUCCESSFUL build — not
28
+ * Build-input manifests changed since the last successful build, not
29
29
  * merely dirty against HEAD. `collectChangedEnginePaths` unions the
30
30
  * baseline-to-HEAD diff with every worktree modification, and a fork's
31
31
  * worktree is permanently dirty (imported patches, Furnace-applied
@@ -33,8 +33,8 @@ const BACKEND_INVALIDATING_SUFFIXES = ['moz.build', 'moz.configure', 'Makefile.i
33
33
  * `moz.build` as changed on every run: `mach configure` re-ran and the
34
34
  * pre-test build escalated to a full `mach build` after each full build
35
35
  * that had already consumed exactly this content. The baseline's
36
- * `buildInputFingerprints` say what the last successful build saw;
37
- * anything byte-identical to that is dropped here. A baseline without the
36
+ * `buildInputFingerprints` say what the last successful build saw.
37
+ * Anything byte-identical to that is dropped here. A baseline without the
38
38
  * field (written before it existed) keeps every dirty input, which is the
39
39
  * old behaviour.
40
40
  *
@@ -56,8 +56,9 @@ async function collectChangedBuildInputs(engineDir, baseline) {
56
56
  * Extracts the tail of captured `mach configure` output so the underlying
57
57
  * mozbuild failure (e.g. `mozbuild.util.UnsortedError: ... is not in sorted
58
58
  * order`) is carried into the thrown `BuildError` instead of being reduced to
59
- * a bare exit code. mozbuild writes the error and its traceback to stderr;
60
- * stdout is included as a fallback for shells that interleave the streams.
59
+ * a bare exit code. mozbuild writes the error and its traceback to stderr,
60
+ * and stdout is included as a fallback for shells that interleave the
61
+ * streams.
61
62
  * Returns an empty string when nothing useful was captured.
62
63
  */
63
64
  function extractMachConfigureError(result) {
@@ -69,7 +70,7 @@ function extractMachConfigureError(result) {
69
70
  /**
70
71
  * Describes an exit code in the shell's 128+N signal convention. Truncated
71
72
  * configure/build logs with a signal-shaped exit (e.g. 144 = 128+16, SIGURG
72
- * on macOS) are environmental interruptions, not compiler failures — naming
73
+ * on macOS) are environmental interruptions, not compiler failures. Naming
73
74
  * that in the failure text saves the operator a fruitless log hunt.
74
75
  * Returns undefined for codes <= 128 (regular failures) and
75
76
  * for codes past the conventional signal range, so callers append nothing.
@@ -91,7 +92,7 @@ export function describeSignalShapedExit(exitCode) {
91
92
  * Builds the `BuildError` for a non-zero auto-configure exit: the output
92
93
  * tail (so the underlying mozbuild failure survives), any matched
93
94
  * mach-error hints (so e.g. a toolchain minimum that moved with a source
94
- * hop names `fireforge bootstrap` on this path too, exactly like the
95
+ * hop names `fireforge bootstrap` on this path too, just like the
95
96
  * protected build dispatch), and the stop rationale.
96
97
  */
97
98
  function buildConfigureFailureError(captured) {
@@ -116,7 +117,7 @@ function buildConfigureFailureError(captured) {
116
117
  * @param baseline - Last successful build's baseline
117
118
  */
118
119
  async function decideJarEscalation(engineDir, changed, baseline) {
119
- // Packaging manifests whose graph/destination directories MAY need a full
120
+ // Packaging manifests whose graph/destination directories may need a full
120
121
  // build. Path-shape only: `evaluateJarManifestEscalation` decides whether a
121
122
  // given changed manifest actually forces one (a new manifest, or one that
122
123
  // redirects its install base directory), so an entry added to an existing
@@ -139,10 +140,10 @@ export function isBackendInvalidatingFile(path) {
139
140
  return false;
140
141
  }
141
142
  /**
142
- * Loud before the overwrite, not silent after it.
143
+ * Warns before the overwrite rather than after it.
143
144
  *
144
- * Every write `prepareBuildEnvironment` performs — branding, Furnace
145
- * components, `mozconfig` — rewrites engine files from a FireForge-owned
145
+ * Every write `prepareBuildEnvironment` performs (branding, Furnace
146
+ * components, `mozconfig`) rewrites engine files from a FireForge-owned
146
147
  * source. Content recorded in neither a patch body nor the pristine baseline
147
148
  * is destroyed by that, and on a multi-session checkout the destruction is
148
149
  * what lets a later re-export capture a half-reverted hybrid that every gate
@@ -215,9 +216,9 @@ export async function prepareBuildEnvironment(projectRoot, paths, config, option
215
216
  const exitCode = captured.exitCode;
216
217
  if (exitCode !== 0) {
217
218
  configureSpinner.error(`mach configure failed with exit code ${exitCode}`);
218
- // Surface the underlying mozbuild error (e.g. UnsortedError) instead
219
- // of a bare exit code — the generic message hid the actual cause —
220
- // plus any matched mach-error hints (see the helper).
219
+ // Surface the underlying mozbuild error (e.g. UnsortedError)
220
+ // instead of a bare exit code, since the generic message hid the
221
+ // actual cause, plus any matched mach-error hints (see the helper).
221
222
  throw buildConfigureFailureError(captured);
222
223
  }
223
224
  else {
@@ -241,7 +242,7 @@ export async function prepareBuildEnvironment(projectRoot, paths, config, option
241
242
  // Set up custom branding directory and patch moz.configure. Thread the
242
243
  // project license through so `buildConfigureScriptContent` /
243
244
  // `buildBrandPropertiesContent` / `buildBrandFtlContent` stamp the
244
- // generated files with a matching SPDX header — otherwise `patch-lint`
245
+ // generated files with a matching SPDX header. Otherwise `patch-lint`
245
246
  // flags them with `missing-license-header` on every subsequent export when
246
247
  // the project is not MPL-2.0.
247
248
  const brandingConfig = {
@@ -18,10 +18,10 @@ function cloneConfigDocument(config) {
18
18
  return cloned;
19
19
  }
20
20
  /**
21
- * The error every sentinel-segment refusal raises. Only the MESSAGE lives
21
+ * The error every sentinel-segment refusal raises. Only the message lives
22
22
  * here: the comparison itself is spelled inline at each write site, because
23
23
  * that is what both a reader and CodeQL's `js/prototype-pollution-utility`
24
- * barrier detection need — the latter is not interprocedural, so a check
24
+ * barrier detection need. That detection is not interprocedural, so a check
25
25
  * hidden behind a helper leaves the descent below looking unguarded.
26
26
  */
27
27
  function sentinelSegmentError(key, part) {
@@ -41,8 +41,8 @@ function getOrCreateChildRecord(parent, key) {
41
41
  export function mutateConfig(config, key, value, skipValidation = false) {
42
42
  const parts = key.split('.');
43
43
  const raw = cloneConfigDocument(config);
44
- // Every segment is checked at the point it is USED as a property name —
45
- // the descent below and the leaf assignment — rather than once up front,
44
+ // Every segment is checked at the point it is used as a property name
45
+ // (the descent below and the leaf assignment) rather than once up front,
46
46
  // so `--force` cannot be used to mutate Object.prototype and neither write
47
47
  // can drift out from behind the guard. `raw` is a private clone, so a
48
48
  // refusal here has mutated nothing the caller can observe.
@@ -35,9 +35,9 @@ function sanitizeProjectState(data) {
35
35
  continue;
36
36
  }
37
37
  if (key === 'buildMode') {
38
- // Validate and assign in ONE block so the predicate's narrowing reaches
38
+ // Validate and assign in one block so the predicate's narrowing reaches
39
39
  // the assignment. Split across two `key === 'buildMode'` guards,
40
- // TypeScript cannot correlate them and the assignment needed a cast —
40
+ // TypeScript cannot correlate them and the assignment needed a cast,
41
41
  // which is what let the untyped allowlist drift from the union.
42
42
  if (!isBuildMode(value)) {
43
43
  issues.push(`field "buildMode" must be one of: ${BUILD_MODES.join(', ')}`);
@@ -5,8 +5,8 @@
5
5
  * Split out of `config-validate.ts`, which is at its per-file line budget,
6
6
  * following the `config-validate-file-size.ts` precedent.
7
7
  *
8
- * The rules here are stricter than the schema strictly needs, and
9
- * deliberately so: every entry is a standing suppression of a warning the
8
+ * The rules here are stricter than the schema strictly needs, on purpose:
9
+ * every entry is a standing suppression of a warning the
10
10
  * audit would otherwise raise. A malformed one must fail loudly at config
11
11
  * load rather than quietly admit nothing (leaving the operator believing a
12
12
  * path is carved out) or quietly admit everything.
@@ -40,7 +40,7 @@ function parseUnpackagedEntry(raw, field) {
40
40
  const reason = raw['reason'];
41
41
  if (typeof reason !== 'string' || reason.trim().length === 0) {
42
42
  // Required on purpose: this is the one audit class FireForge cannot
43
- // derive from the tree, so the declaration IS the evidence.
43
+ // derive from the tree, so the declaration is the evidence.
44
44
  throw new ConfigError(`Config field "${field}.reason" must be a non-empty string explaining why the file is never packaged`);
45
45
  }
46
46
  return { path, reason };
@@ -6,7 +6,7 @@
6
6
  import type { PatchLintFileSizeThresholds } from '../types/config.js';
7
7
  /**
8
8
  * Parses the `patchLint.fileSizeThresholds` block. Ordering is validated
9
- * against the MERGED triple (overrides on top of the defaults), so setting
9
+ * against the merged triple (overrides on top of the defaults), so setting
10
10
  * only `warning` cannot land below the default `notice`.
11
11
  */
12
12
  export declare function parsePatchLintFileSizeThresholds(raw: unknown): PatchLintFileSizeThresholds;
@@ -9,7 +9,7 @@ import { isObject } from '../utils/validation.js';
9
9
  import { DEFAULT_FILE_SIZE_THRESHOLDS } from './patch-lint-file-size.js';
10
10
  /**
11
11
  * Parses one `patchLint.fileSizeThresholds.<tier>` triple. Every field is
12
- * optional and merges over the built-in default; values must be positive
12
+ * optional and merges over the built-in default. Values must be positive
13
13
  * integers and stay ordered `notice <= warning <= error`, because an
14
14
  * out-of-order triple would silently disable a band instead of failing.
15
15
  */
@@ -36,7 +36,7 @@ function parseFileSizeTier(raw, field) {
36
36
  }
37
37
  /**
38
38
  * Parses the `patchLint.fileSizeThresholds` block. Ordering is validated
39
- * against the MERGED triple (overrides on top of the defaults), so setting
39
+ * against the merged triple (overrides on top of the defaults), so setting
40
40
  * only `warning` cannot land below the default `notice`.
41
41
  */
42
42
  export function parsePatchLintFileSizeThresholds(raw) {
@@ -21,7 +21,7 @@ import { parseExternalToolchainsBlock, parseTestBlock } from './config-validate-
21
21
  function parseIdentityFields(rec) {
22
22
  // Empty strings would technically pass the
23
23
  // typeof-check below but are never valid for any of these identifier
24
- // fields — rejecting them here prevents downstream code (Firefox build,
24
+ // fields. Rejecting them here prevents downstream code (Firefox build,
25
25
  // launcher binary lookup, AppID assertions) from failing with confusing
26
26
  // errors much later.
27
27
  const name = requireConfigString(rec, 'name');
@@ -72,7 +72,7 @@ function parseFirefoxBlock(rec) {
72
72
  }
73
73
  const firefoxProduct = requireConfigString(firefoxRec, 'product', 'firefox.product');
74
74
  // Uses the shared guard rather than a fourth copy of the member list. This
75
- // is the fireforge.json READ path: a product added to the union but not to
75
+ // is the fireforge.json read path: a product added to the union but not to
76
76
  // the copy that used to live here would have been silently rejected from
77
77
  // every project config.
78
78
  if (!isValidFirefoxProduct(firefoxProduct)) {
@@ -170,7 +170,7 @@ export function validateConfig(data) {
170
170
  parseExternalToolchainsBlock(rec, config);
171
171
  parseWireBlock(rec, config);
172
172
  parseLicenseField(rec, config);
173
- // Marker comment — appended to lines FireForge writes into upstream files.
173
+ // Marker comment, appended to lines FireForge writes into upstream files.
174
174
  const markerComment = parseMarkerComment(rec.raw('markerComment'));
175
175
  if (markerComment !== undefined) {
176
176
  config.markerComment = markerComment;
@@ -185,7 +185,7 @@ export function validateConfig(data) {
185
185
  if (patchPolicyRec) {
186
186
  config.patchPolicy = parsePatchPolicyBlock(patchPolicyRec);
187
187
  }
188
- // Typecheck (top-level, distinct from patchLint — see TypecheckConfig docs).
188
+ // Typecheck (top-level, distinct from patchLint). See TypecheckConfig docs.
189
189
  const typecheckRec = optionalConfigObject(rec, 'typecheck');
190
190
  if (typecheckRec) {
191
191
  config.typecheck = parseTypecheckBlock(typecheckRec);
@@ -400,10 +400,9 @@ function parsePatchLintBlock(rec) {
400
400
  * file. Shared between `patchLint.checkJsExtraShim` and
401
401
  * `typecheck.extraShim` so both fields reject the same absolute-path /
402
402
  * traversal / empty-string inputs with consistent error messages. The
403
- * file's existence is intentionally not checked here — that lives at
404
- * the engine layer where a missing file produces a typed runtime error
405
- * pointing at the actual command, rather than blocking config reads
406
- * for unrelated commands.
403
+ * file's existence is not checked here. That lives at the engine layer,
404
+ * where a missing file produces a typed runtime error pointing at the
405
+ * actual command, rather than blocking config reads for unrelated commands.
407
406
  */
408
407
  function parseShimPath(raw, label) {
409
408
  if (typeof raw !== 'string' || raw.trim() === '') {
@@ -417,7 +416,7 @@ function parseShimPath(raw, label) {
417
416
  /**
418
417
  * Validates the optional top-level `typecheck` block. Empty `projects`
419
418
  * is rejected because a silent no-op for `fireforge typecheck` is a
420
- * footgun — operators set the block expecting it to do something. Each
419
+ * footgun, since operators set the block expecting it to do something. Each
421
420
  * project path must be a contained relative path so `--project` / CLI
422
421
  * scripts can't escape the project root.
423
422
  */
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Project configuration — barrel module.
2
+ * Project configuration barrel module.
3
3
  *
4
4
  * Re-exports from focused sub-modules:
5
- * config-paths.ts — constants and project path derivation
6
- * config-validate.ts — fireforge.json schema validation
7
- * config-mutate.ts — immutable config mutation
8
- * config-state.ts — state file management
5
+ * config-paths.ts: constants and project path derivation
6
+ * config-validate.ts: fireforge.json schema validation
7
+ * config-mutate.ts: immutable config mutation
8
+ * config-state.ts: state file management
9
9
  */
10
10
  import type { FireForgeConfig } from '../types/config.js';
11
11
  import type { JsonObject } from '../types/json.js';
@@ -28,12 +28,12 @@ export declare function configExists(root: string): Promise<boolean>;
28
28
  export declare function loadConfig(root: string): Promise<FireForgeConfig>;
29
29
  /**
30
30
  * Reads the raw `fireforge.json` document without running it through
31
- * {@link validateConfig}. Returns every persisted key — including keys
31
+ * {@link validateConfig}. Returns every persisted key, including keys
32
32
  * written via `fireforge config <key> --force` that `validateConfig`
33
33
  * would strip from the typed result.
34
34
  *
35
35
  * Callers that need the validated, typed shape must still use
36
- * {@link loadConfig}; this helper exists specifically for the `config`
36
+ * {@link loadConfig}. This helper exists specifically for the `config`
37
37
  * read path so `fireforge config <key>` can surface keys the write path
38
38
  * accepted under `--force`.
39
39
  *
@@ -67,9 +67,9 @@ export declare function writeConfigDocument(root: string, config: FireForgeConfi
67
67
  * Runs an operation while holding a sidecar lock on `fireforge.json`.
68
68
  *
69
69
  * Two concurrent `fireforge config <key> <value>` invocations each run
70
- * load → mutate → writeJson against the same document; without this lock the
71
- * second rename lands after the first and silently drops the first writer's
72
- * key, with both commands exiting 0.
70
+ * load → mutate → writeJson against the same document. Without this lock
71
+ * the second rename lands after the first and silently drops the first
72
+ * writer's key, with both commands exiting 0.
73
73
  *
74
74
  * Reads (`loadConfig`, `loadRawConfigDocument`) stay lock-free: writers
75
75
  * always use `writeJson`'s atomic temp-file + rename, so a reader observes
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: EUPL-1.2
2
2
  /**
3
- * Project configuration — barrel module.
3
+ * Project configuration barrel module.
4
4
  *
5
5
  * Re-exports from focused sub-modules:
6
- * config-paths.ts — constants and project path derivation
7
- * config-validate.ts — fireforge.json schema validation
8
- * config-mutate.ts — immutable config mutation
9
- * config-state.ts — state file management
6
+ * config-paths.ts: constants and project path derivation
7
+ * config-validate.ts: fireforge.json schema validation
8
+ * config-mutate.ts: immutable config mutation
9
+ * config-state.ts: state file management
10
10
  */
11
11
  import { basename } from 'node:path';
12
12
  import { ConfigError, ConfigNotFoundError } from '../errors/config.js';
@@ -59,12 +59,12 @@ export async function loadConfig(root) {
59
59
  }
60
60
  /**
61
61
  * Reads the raw `fireforge.json` document without running it through
62
- * {@link validateConfig}. Returns every persisted key — including keys
62
+ * {@link validateConfig}. Returns every persisted key, including keys
63
63
  * written via `fireforge config <key> --force` that `validateConfig`
64
64
  * would strip from the typed result.
65
65
  *
66
66
  * Callers that need the validated, typed shape must still use
67
- * {@link loadConfig}; this helper exists specifically for the `config`
67
+ * {@link loadConfig}. This helper exists specifically for the `config`
68
68
  * read path so `fireforge config <key>` can surface keys the write path
69
69
  * accepted under `--force`.
70
70
  *
@@ -125,9 +125,9 @@ export async function writeConfigDocument(root, config) {
125
125
  * Runs an operation while holding a sidecar lock on `fireforge.json`.
126
126
  *
127
127
  * Two concurrent `fireforge config <key> <value>` invocations each run
128
- * load → mutate → writeJson against the same document; without this lock the
129
- * second rename lands after the first and silently drops the first writer's
130
- * key, with both commands exiting 0.
128
+ * load → mutate → writeJson against the same document. Without this lock
129
+ * the second rename lands after the first and silently drops the first
130
+ * writer's key, with both commands exiting 0.
131
131
  *
132
132
  * Reads (`loadConfig`, `loadRawConfigDocument`) stay lock-free: writers
133
133
  * always use `writeJson`'s atomic temp-file + rename, so a reader observes
@@ -3,34 +3,34 @@
3
3
  * into the recorded `testPackagingCoverage` instead of replacing it, under
4
4
  * an anchor guard.
5
5
  *
6
- * Coverage REPLACES by default for a reason documented in
6
+ * Coverage replaces by default for a reason documented in
7
7
  * `build-baseline-types.ts`: every baseline write refreshes
8
- * `packageableFingerprints` for ALL dirty packageable paths, so a blind
8
+ * `packageableFingerprints` for all dirty packageable paths, so a blind
9
9
  * union would whitewash an earlier scope's edited fixtures while
10
10
  * `obj-*`/`_tests/` still holds that scope's stale staging. Extending is
11
- * honest only while everything the PREVIOUS record vouched for is still
11
+ * honest only while everything the previous record vouched for is still
12
12
  * true, which is what {@link checkExtendCoverageAnchor} and
13
13
  * {@link checkExtendMozconfigAnchor} verify:
14
14
  *
15
- * 1. engine HEAD is unchanged — every committed edit is excluded;
15
+ * 1. engine HEAD is unchanged, so every committed edit is excluded.
16
16
  * 2. every path the previous baseline fingerprinted still hashes to the
17
17
  * recorded digest, so the earlier scope's staging inputs are
18
- * byte-identical. Files that became dirty SINCE that build are fine:
18
+ * byte-identical. Files that became dirty since that build are fine:
19
19
  * the current whole-tree `mach build faster` repackages `dist/` and
20
- * vouches for them;
20
+ * vouches for them.
21
21
  * 3. the generated `engine/mozconfig` is unchanged. Engine HEAD does not
22
- * cover this — the mozconfig is regenerated from project-side
22
+ * cover this: the mozconfig is regenerated from project-side
23
23
  * `configs/*.mozconfig` templates plus `fireforge.json` on every build,
24
24
  * so two builds at the same engine SHA can configure differently.
25
25
  *
26
- * Every failure refuses fail-closed; the operator's remedy is always a plain
26
+ * Every failure refuses fail-closed. The operator's remedy is always a plain
27
27
  * scoped build, which resets the claim to the paths it actually vouches for.
28
28
  *
29
- * Known boundary, documented rather than closed: dirty NON-packageable
29
+ * Known boundary, documented rather than closed: dirty non-packageable
30
30
  * fixtures under previously covered paths (plain test files, manifests
31
31
  * `isPackageablePath` rejects) are invisible to check 2. Editing one
32
32
  * uncommitted between two builds leaves the earlier scope's `_tests/`
33
- * staging stale while extend still vouches for it. Plain REPLACE has no such
33
+ * staging stale while extend still vouches for it. Plain replacement has no such
34
34
  * window, because the earlier scope simply stops being covered.
35
35
  */
36
36
  import { type BuildBaseline, type TestPackagingCoverage } from './build-baseline-types.js';
@@ -54,17 +54,17 @@ export type ExtendAnchorResult = {
54
54
  export declare function checkExtendCoverageAnchor(engineDir: string, previousBaseline: BuildBaseline | undefined): Promise<ExtendAnchorResult>;
55
55
  /**
56
56
  * Verifies the mozconfig half of the anchor. Split from
57
- * {@link checkExtendCoverageAnchor} because it can only run AFTER
58
- * `prepareBuildEnvironment` regenerates `engine/mozconfig` — that file is
59
- * the one this build will configure with — and must still run BEFORE mach,
60
- * so a refusal costs no build time.
57
+ * {@link checkExtendCoverageAnchor} because it can only run after
58
+ * `prepareBuildEnvironment` regenerates `engine/mozconfig` (the file this
59
+ * build will configure with), and must still run before mach, so a refusal
60
+ * costs no build time.
61
61
  * @param engineDir - Path to the engine directory
62
62
  * @param previousBaseline - Baseline recorded by the previous build
63
63
  */
64
64
  export declare function checkExtendMozconfigAnchor(engineDir: string, previousBaseline: BuildBaseline | undefined): Promise<ExtendAnchorResult>;
65
65
  /**
66
66
  * Unions the newly built paths onto the recorded claim. A `'full'` claim, or
67
- * an absent one (which means full), stays `'full'` — it already covers
67
+ * an absent one (which means full), stays `'full'`, since it already covers
68
68
  * everything.
69
69
  *
70
70
  * @param previous - Coverage recorded by the previous build
@@ -84,7 +84,7 @@ export declare function formatExtendCoverageRefusal(result: {
84
84
  /**
85
85
  * Hex-encoded SHA-256 of an engine-relative file, matching the digest the
86
86
  * baseline writer produces. `undefined` on any IO error, which every caller
87
- * treats as "cannot prove unchanged" — i.e. a refusal.
87
+ * treats as "cannot prove unchanged", i.e. a refusal.
88
88
  * @param engineDir - Path to the engine directory
89
89
  * @param relPath - Engine-relative POSIX path
90
90
  */