@hominis/fireforge 0.46.0 → 0.46.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 (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 +17 -9
  498. package/dist/src/core/token-dark-mode.js +41 -28
  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,11 +4,11 @@
4
4
  *
5
5
  * Partitions engine-tree dirtiness into `branding`, `patch-backed`,
6
6
  * `furnace`, `conflict`, and `unmanaged` buckets, and only warns on the
7
- * last two — everything else is tool-managed state that the operator
7
+ * last two. Everything else is tool-managed state that the operator
8
8
  * did not author directly.
9
9
  *
10
10
  * Split out of `doctor.ts` so that file stays under the per-file LOC
11
- * budget; see the call site in `runEngineGitChecks`.
11
+ * budget. See the call site in `runEngineGitChecks`.
12
12
  */
13
13
  import { collectFurnaceManagedPrefixes } from '../core/furnace-config.js';
14
14
  import { expandUntrackedDirectoryEntries, getWorkingTreeStatus } from '../core/git-status.js';
@@ -30,7 +30,7 @@ function formatManagedDetail(counts) {
30
30
  /**
31
31
  * Inspects the engine working tree and returns a single `DoctorCheck`.
32
32
  * Ownership-aware: patch-backed / branding / furnace rows are reported as OK
33
- * with an ownership summary; unmanaged drift warns; cross-patch conflicts
33
+ * with an ownership summary. Unmanaged drift warns. Cross-patch conflicts
34
34
  * warn loudly with a pointer at `fireforge status --ownership` +
35
35
  * `fireforge verify`.
36
36
  *
@@ -10,7 +10,7 @@ import type { DoctorCheckDefinition } from './doctor-check-core.js';
10
10
  * context-population bug at runtime.
11
11
  *
12
12
  * Exported so tests can exercise the forward-only invariant against
13
- * fixtures — the real DOCTOR_CHECKS list is also validated at import
13
+ * fixtures. The real DOCTOR_CHECKS list is also validated at import
14
14
  * time, but a targeted unit test makes the contract explicit and
15
15
  * prevents regressions if the validator is ever relaxed.
16
16
  */
@@ -22,7 +22,7 @@ export declare function validateCheckDependencies(checks: readonly DoctorCheckDe
22
22
  * also update this list, which gives us a single place to notice and
23
23
  * think through the consequences.
24
24
  *
25
- * @internal Exported only so tests can reach it; not part of the public surface.
25
+ * @internal Exported only so tests can reach it. Not part of the public surface.
26
26
  */
27
27
  export declare const DOCTOR_CHECK_ORDER: readonly string[];
28
28
  /**
@@ -90,8 +90,8 @@ async function runEngineGitChecks(ctx) {
90
90
  branch === undefined &&
91
91
  currentHead === undefined &&
92
92
  !state.baseCommit) {
93
- // Unborn repository with no recorded baseline — the earlier failure row
94
- // explains recovery; avoid adding a second near-identical row.
93
+ // Unborn repository with no recorded baseline. The earlier failure row
94
+ // explains recovery. Avoid adding a second near-identical row.
95
95
  }
96
96
  else if (!canValidateBranch) {
97
97
  rows.push(warning('Engine branch', 'Skipped branch validation because the baseline commit is missing.', 'Finish recreating the engine baseline with "fireforge download --force".'));
@@ -114,7 +114,7 @@ async function runEngineGitChecks(ctx) {
114
114
  * context-population bug at runtime.
115
115
  *
116
116
  * Exported so tests can exercise the forward-only invariant against
117
- * fixtures — the real DOCTOR_CHECKS list is also validated at import
117
+ * fixtures. The real DOCTOR_CHECKS list is also validated at import
118
118
  * time, but a targeted unit test makes the contract explicit and
119
119
  * prevents regressions if the validator is ever relaxed.
120
120
  */
@@ -136,7 +136,7 @@ export function validateCheckDependencies(checks) {
136
136
  /**
137
137
  * The declarative doctor check registry. The order of entries here is the
138
138
  * order checks appear in the report. Adding a new check is a one-entry
139
- * edit; each check only contains its own inspection logic.
139
+ * edit. Each check only contains its own inspection logic.
140
140
  *
141
141
  * ## Ordering dependency chain
142
142
  *
@@ -214,7 +214,7 @@ const DOCTOR_CHECKS = [
214
214
  name: 'Engine is git repository',
215
215
  skipIf: (ctx) => !ctx.engineExists,
216
216
  // runEngineGitChecks consults ctx.config for ownership-aware
217
- // working-tree classification; declare the dependency so a future
217
+ // working-tree classification. Declare the dependency so a future
218
218
  // reorder doesn't silently regress the doctor back to the
219
219
  // count-only fallback.
220
220
  dependsOn: ['fireforge.json is valid'],
@@ -248,7 +248,7 @@ const DOCTOR_CHECKS = [
248
248
  // Resolve the absolute path so the OK row names what doctor actually
249
249
  // found. A PATH-export discrepancy between the operator's interactive
250
250
  // shell and the spawned subprocess otherwise reads as doctor printing
251
- // "OK" for a binary `which watchman` cannot find; surfacing the
251
+ // "OK" for a binary `which watchman` cannot find. Surfacing the
252
252
  // resolved path makes the discrepancy visible without a verbose flag.
253
253
  const path = await findExecutable('watchman');
254
254
  if (path) {
@@ -295,7 +295,7 @@ const DOCTOR_CHECKS = [
295
295
  POST_REBASE_AUDIT_CHECK,
296
296
  // Furnace checks live in a sibling module so this file stays under the
297
297
  // max-lines threshold. Splicing them in as an array preserves the
298
- // declarative registry contract — each entry remains a single
298
+ // declarative registry contract: each entry remains a single
299
299
  // `DoctorCheckDefinition` with its own skipIf/run/fix, and the order
300
300
  // here is the order they appear in the report.
301
301
  ...FURNACE_DOCTOR_CHECKS,
@@ -320,7 +320,7 @@ validateCheckDependencies(DOCTOR_CHECKS);
320
320
  * also update this list, which gives us a single place to notice and
321
321
  * think through the consequences.
322
322
  *
323
- * @internal Exported only so tests can reach it; not part of the public surface.
323
+ * @internal Exported only so tests can reach it. Not part of the public surface.
324
324
  */
325
325
  export const DOCTOR_CHECK_ORDER = DOCTOR_CHECKS.map((check) => check.name);
326
326
  /**
@@ -382,7 +382,7 @@ export function reportDoctorResults(checks, mutations = []) {
382
382
  * Rejects repair-flag combinations that cannot mean what they say.
383
383
  *
384
384
  * The two manifest repairs are different operations on the same file, and
385
- * `--dry-run` with nothing to project is a flag that silently does nothing —
385
+ * `--dry-run` with nothing to project is a flag that silently does nothing,
386
386
  * the shape most likely to be mistaken for a preview that reported "no
387
387
  * changes".
388
388
  */
@@ -78,7 +78,7 @@ async function cleanPatchTouchedFiles(engineDir, patchesDir, preExistingDirty) {
78
78
  * Prints a one-line nudge pointing at `fireforge import` when the project
79
79
  * carries a non-empty patch queue but the just-downloaded engine has not yet
80
80
  * had any patches applied. The post-download spinner closes with
81
- * "Patch-touched files already match baseline" because a fresh tree IS at
81
+ * "Patch-touched files already match baseline" because a fresh tree is at
82
82
  * baseline, which reads as "patches are restored" and invites skipping the
83
83
  * import step. Suppressed when patches/ is missing or the manifest is empty
84
84
  * so unconfigured projects stay quiet.
@@ -94,10 +94,11 @@ async function noteUnappliedPatches(patchesDir) {
94
94
  }
95
95
  /**
96
96
  * Stops `restoreSpinner` with a message that reflects what actually
97
- * happened. Three branches: empty queue → explicit no-op; queue present but
98
- * nothing dirty → "already clean"; queue with dirty files → the usual
99
- * "Patch-touched files restored" success line. Always closing with the third
100
- * claims restore work that did not happen on a project with zero patches.
97
+ * happened. Three branches. An empty queue gives an explicit no-op. A queue
98
+ * that is present but has nothing dirty gives "already clean". A queue with
99
+ * dirty files gives the usual "Patch-touched files restored" success line.
100
+ * Always closing with the third claims restore work that did not happen on a
101
+ * project with zero patches.
101
102
  */
102
103
  function closeRestoreSpinner(restoreSpinner, result) {
103
104
  if (!result.hadQueue) {
@@ -194,7 +195,7 @@ async function downloadAndExtractFirefox(args) {
194
195
  }
195
196
  /**
196
197
  * Prints the major-version-hop toolchain nudge when this download moved the
197
- * engine across a Firefox MAJOR version — the first post-hop build otherwise
198
+ * engine across a Firefox major version. The first post-hop build otherwise
198
199
  * dies in `mach configure` on a moved cbindgen minimum with nothing in the
199
200
  * download output suggesting `fireforge bootstrap`. Quiet on first downloads
200
201
  * and same-major re-downloads.
@@ -276,7 +277,7 @@ export async function downloadCommand(projectRoot, options) {
276
277
  intro('FireForge Download');
277
278
  const config = await loadConfig(projectRoot), version = config.firefox.version;
278
279
  const paths = getProjectPaths(projectRoot);
279
- // Captured BEFORE any state update so the post-download major-hop
280
+ // Captured before any state update so the post-download major-hop
280
281
  // notice compares against what was actually on disk until now.
281
282
  const previousVersion = (await loadState(projectRoot)).downloadedVersion;
282
283
  info(`Firefox version: ${version}`);
@@ -284,7 +285,7 @@ export async function downloadCommand(projectRoot, options) {
284
285
  // A legitimate holder of this lock runs for 10+ minutes (download +
285
286
  // extract + git indexing). A 30 s timeout fails the second invocation with
286
287
  // "remove the lock directory if it is stale" advice while the lock is
287
- // actively held — dangerous guidance mid-extraction. Wait generously
288
+ // actively held, which is dangerous guidance mid-extraction. Wait generously
288
289
  // instead: a dead holder is reaped within seconds by the PID-based stale
289
290
  // probe, so a long timeout only ever waits on real work.
290
291
  const downloadLockOptions = {
@@ -297,7 +298,7 @@ export async function downloadCommand(projectRoot, options) {
297
298
  // Reclaim multi-GB partial trees left behind by interrupted runs.
298
299
  // Safe under the download lock: any `.tmp-*`/`.replacement-*` dir
299
300
  // present now is orphaned, since live ones only exist while a
300
- // download holds this lock. `.backup-*` dirs are NOT swept — a
301
+ // download holds this lock. `.backup-*` dirs are not swept: a
301
302
  // backup can hold the previous engine after a failed forced
302
303
  // replacement and is the operator's recovery copy.
303
304
  const sweptDirs = await sweepOrphanedEngineWorkDirs(paths.engine);
@@ -317,7 +318,8 @@ export async function downloadCommand(projectRoot, options) {
317
318
  }
318
319
  catch (error) {
319
320
  if (isMissingHeadError(error)) {
320
- // Partial init detected — attempt to resume instead of requiring --force
321
+ // Partial init detected. Attempt to resume instead of
322
+ // requiring --force.
321
323
  info('Detected partially initialized engine. Attempting to resume...');
322
324
  // Snapshot patch-touched files that are already dirty so we
323
325
  // can preserve them after the resume commit.
@@ -340,7 +342,7 @@ export async function downloadCommand(projectRoot, options) {
340
342
  });
341
343
  const baseCommit = await getHead(paths.engine);
342
344
  resumeSpinner.stop('Git repository resumed successfully');
343
- // Restore patch-touched files BEFORE stamping state. If this
345
+ // Restore patch-touched files before stamping state. If this
344
346
  // step fails (disk full, permission denied, git object issue),
345
347
  // state.json keeps the previous downloadedVersion so the
346
348
  // invariant "state.downloadedVersion matches a clean engine"
@@ -359,7 +361,7 @@ export async function downloadCommand(projectRoot, options) {
359
361
  }
360
362
  catch (error) {
361
363
  resumeSpinner.error('Resume failed');
362
- // Preserve the underlying cause so the operator sees *why*
364
+ // Preserve the underlying cause so the operator sees why
363
365
  // the resume failed (timeout, permission denied, corrupted
364
366
  // object, disk full) instead of only the generic "partial
365
367
  // engine exists" story. The cause reaches them through the
@@ -372,7 +374,7 @@ export async function downloadCommand(projectRoot, options) {
372
374
  // Re-throw unexpected git errors (corrupted objects, permission
373
375
  // denied, …) wrapped in PartialEngineExistsError so the user sees
374
376
  // both narratives: "we detected a partial engine and attempted
375
- // resume" AND the underlying git failure. Without the wrap the
377
+ // resume" and the underlying git failure. Without the wrap the
376
378
  // raw git error loses the context that resume was in flight.
377
379
  throw new PartialEngineExistsError(paths.engine, toError(error));
378
380
  }
@@ -56,7 +56,7 @@ async function resolveFurnaceExclusionPolicy(paths, projectRoot, excludeFurnace)
56
56
  if (prefixes.size === 0)
57
57
  return new Set();
58
58
  // Expand collapsed `?? dir/` entries before matching against Furnace
59
- // prefixes — otherwise a Furnace-introduced directory slips past the
59
+ // prefixes, otherwise a Furnace-introduced directory slips past the
60
60
  // filter and later lands in the non-Furnace path list that feeds the
61
61
  // aggregate diff, where `getDiffForFilesAgainstHead` crashes with EISDIR.
62
62
  const rawStatus = await getWorkingTreeStatus(paths.engine);
@@ -81,7 +81,7 @@ async function resolveFurnaceExclusionPolicy(paths, projectRoot, excludeFurnace)
81
81
  * `export-all --exclude-furnace` after `furnace create --localized
82
82
  * --with-tests` otherwise produces a patch that adds
83
83
  * `toolkit/content/widgets/<tag>/*` via jar.mn / customElements.js / locale
84
- * jar.mn while excluding the component source files themselves — a
84
+ * jar.mn while excluding the component source files themselves, a
85
85
  * structurally broken queue that `fireforge verify` stays silent about. The
86
86
  * operator is asked to either include the component sources (skip
87
87
  * `--exclude-furnace`) or revert the furnace changes before exporting.
@@ -134,7 +134,7 @@ async function checkDanglingFurnaceRegistrations(projectRoot, diff, furnaceExclu
134
134
  * path that some existing patch in the queue already creates. `verify`
135
135
  * detects this post-hoc via `collectNewFileCreatorsByPath`, but by the time
136
136
  * `verify` runs the operator has already landed a patch that irreversibly
137
- * sits atop the queue — resolving the conflict from there requires a
137
+ * sits atop the queue, and resolving the conflict from there requires a
138
138
  * `patch delete` or hand-surgery on `re-export --files`. Catching it here,
139
139
  * pre-write, keeps the queue clean and gives the operator a specific path
140
140
  * to narrow with `export` + explicit file scoping (which lets them drop
@@ -232,12 +232,12 @@ export async function exportAllCommand(projectRoot, options = {}) {
232
232
  await checkDuplicateNewFileCreations(paths, diff);
233
233
  // Dangling-furnace-registration preflight. Runs after the diff is
234
234
  // assembled so it can inspect the exact hunks the operator is about to
235
- // land, and BEFORE any write so a refusal leaves the patches directory
235
+ // land, and before any write so a refusal leaves the patches directory
236
236
  // untouched.
237
237
  await checkDanglingFurnaceRegistrations(projectRoot, diff, furnaceExcluded);
238
238
  // Check for non-interactive mode
239
239
  const isInteractive = stdioIsInteractive();
240
- // Auto-fix missing license headers on new files (interactive only;
240
+ // Auto-fix missing license headers on new files (interactive only, and
241
241
  // report-only under --dry-run so the preview never mutates engine/)
242
242
  const headersAdded = await autoFixLicenseHeaders(paths.engine, diff, config, isInteractive, isDryRun);
243
243
  if (headersAdded) {
@@ -251,7 +251,7 @@ export async function exportAllCommand(projectRoot, options = {}) {
251
251
  return;
252
252
  const { patchName, selectedCategory, description } = metadata;
253
253
  // Ensure patches directory exists. Skip during a dry-run so the command
254
- // is purely read-only — `--dry-run` callers should be safe to invoke
254
+ // is purely read-only. `--dry-run` callers should be safe to invoke
255
255
  // against a project that has never exported a patch without leaving the
256
256
  // empty `patches/` directory behind.
257
257
  if (!isDryRun) {
@@ -275,8 +275,8 @@ export async function exportAllCommand(projectRoot, options = {}) {
275
275
  // Dry-run: enumerate filename, metadata, and supersede coverage without
276
276
  // writing. Mirrors `fireforge export --dry-run` so the same preview
277
277
  // surface is available for both targeted and aggregate exports. Runs
278
- // AFTER lint so the operator sees the same lint output they would on
279
- // a real run; runs BEFORE the supersede confirmation prompt because
278
+ // after lint so the operator sees the same lint output they would on
279
+ // a real run. It runs before the supersede confirmation prompt because
280
280
  // confirming a dry-run is meaningless.
281
281
  if (isDryRun) {
282
282
  s.stop('Plan ready');
@@ -20,7 +20,7 @@ export interface PlacementPlan {
20
20
  renameMap: Map<string, PatchRenameEntry>;
21
21
  }
22
22
  /**
23
- * Structural equality for placement plans — used by placement-mode export
23
+ * Structural equality for placement plans. Used by placement-mode export
24
24
  * and `patch split` to verify the queue did not change between the
25
25
  * confirmed preview and the under-lock commit.
26
26
  */
@@ -40,14 +40,14 @@ export declare function computeExactPlacementPlan(manifestPatches: PatchMetadata
40
40
  /**
41
41
  * Resolves a placement plan from CLI flags against the current manifest.
42
42
  * When `config` is provided, positional plans (`--before`/`--after`) are
43
- * refused up front if their renumber would touch a reserved range — one
44
- * error for the whole shift instead of per-patch policy findings. The
43
+ * refused up front if their renumber would touch a reserved range, giving
44
+ * one error for the whole shift instead of per-patch policy findings. The
45
45
  * exact `--order` branch never renames, so it bypasses that gate.
46
46
  */
47
47
  export declare function resolvePlacementPlan(patchesDir: string, options: ExportOptions, category: PatchCategory, name: string, config?: FireForgeConfig): Promise<PlacementPlan>;
48
48
  /**
49
49
  * Projects the placement through cross-patch lint to detect forward-imports
50
- * the renumber would introduce *or* that the new patch itself would
50
+ * the renumber would introduce, or that the new patch itself would
51
51
  * introduce by landing earlier than one of its dependencies. Returns null
52
52
  * when the projection is clean.
53
53
  */
@@ -79,7 +79,7 @@ export interface CommitPlacementExportInput {
79
79
  * Optional post-commit hook that runs inside the patch directory lock,
80
80
  * after the mutation has succeeded but before the lock is released.
81
81
  * Intended for the caller's history-log append so the audit record
82
- * lands atomically with the mutation — a crash between mutation and
82
+ * lands atomically with the mutation. A crash between mutation and
83
83
  * hook leaves no room for another process's history record to sneak
84
84
  * in first.
85
85
  *
@@ -36,7 +36,7 @@ function prefixWidthForPatches(manifestPatches, requestedOrder) {
36
36
  }, 3);
37
37
  }
38
38
  /**
39
- * Structural equality for placement plans — used by placement-mode export
39
+ * Structural equality for placement plans. Used by placement-mode export
40
40
  * and `patch split` to verify the queue did not change between the
41
41
  * confirmed preview and the under-lock commit.
42
42
  */
@@ -62,7 +62,7 @@ export function computePlacementPlan(manifestPatches, newPatchCategory, newPatch
62
62
  const renameMap = new Map();
63
63
  const prefixWidth = prefixWidthForPatches(sorted, requestedOrder);
64
64
  // Patches at requestedOrder or later shift up by one, but only until the
65
- // cascade reaches a free ordinal — a gap absorbs the insert, so the tail
65
+ // cascade reaches a free ordinal. A gap absorbs the insert, so the tail
66
66
  // beyond it (including any reserved block) keeps its numbering.
67
67
  let cursor = requestedOrder;
68
68
  for (const patch of sorted) {
@@ -109,18 +109,18 @@ export function computeExactPlacementPlan(manifestPatches, newPatchCategory, new
109
109
  /**
110
110
  * Resolves a placement plan from CLI flags against the current manifest.
111
111
  * When `config` is provided, positional plans (`--before`/`--after`) are
112
- * refused up front if their renumber would touch a reserved range — one
113
- * error for the whole shift instead of per-patch policy findings. The
112
+ * refused up front if their renumber would touch a reserved range, giving
113
+ * one error for the whole shift instead of per-patch policy findings. The
114
114
  * exact `--order` branch never renames, so it bypasses that gate.
115
115
  */
116
116
  export async function resolvePlacementPlan(patchesDir, options, category, name, config) {
117
- // ForWrite: placement planning feeds a manifest rewrite; a corrupt
117
+ // ForWrite: placement planning feeds a manifest rewrite. A corrupt
118
118
  // manifest read as empty would allocate colliding orders.
119
119
  const manifest = await loadPatchesManifestForWrite(patchesDir);
120
120
  const existingPatches = manifest?.patches ?? [];
121
121
  let targetOrder;
122
122
  if (options.order !== undefined) {
123
- // Defense-in-depth — argParser covers the CLI path, but this
123
+ // Defense-in-depth: argParser covers the CLI path, but this
124
124
  // function is called directly from the command body which could
125
125
  // reach here with a NaN/0/negative value passed in via test harness.
126
126
  if (!Number.isInteger(options.order) || options.order <= 0) {
@@ -152,7 +152,7 @@ export async function resolvePlacementPlan(patchesDir, options, category, name,
152
152
  }
153
153
  /**
154
154
  * Projects the placement through cross-patch lint to detect forward-imports
155
- * the renumber would introduce *or* that the new patch itself would
155
+ * the renumber would introduce, or that the new patch itself would
156
156
  * introduce by landing earlier than one of its dependencies. Returns null
157
157
  * when the projection is clean.
158
158
  */
@@ -165,8 +165,8 @@ export async function projectPlacementForLint(patchesDir, plan, diff, config) {
165
165
  return { ...entry, filename: rename.newFilename, order: rename.newOrder };
166
166
  });
167
167
  // Synthetic entry for the pending patch, populated with both its new-file
168
- // content AND its added-line content for files it modifies, so the
169
- // forward-import rule can inspect imports the patch *itself* authors —
168
+ // content and its added-line content for files it modifies, so the
169
+ // forward-import rule can inspect imports the patch itself authors,
170
170
  // whether they live in a brand-new file or are added to an existing one.
171
171
  // Leaving either map empty lets a patch land before one of its own
172
172
  // dependencies and still pass the gate.
@@ -184,9 +184,9 @@ export async function projectPlacementForLint(patchesDir, plan, diff, config) {
184
184
  }).filter((i) => i.severity === 'error');
185
185
  if (projectedIssues.length === 0)
186
186
  return null;
187
- // Baseline lint over the UN-renumbered queue: an error present here is
188
- // pre-existing breakage, not a consequence of this placement — calling
189
- // it one would misattribute. Entries are already in memory,
187
+ // Baseline lint over the un-renumbered queue: an error present here is
188
+ // pre-existing breakage rather than a consequence of this placement, and
189
+ // calling it one would misattribute. Entries are already in memory,
190
190
  // so this second pass costs no additional IO.
191
191
  const baselineIssues = lintPatchQueue({
192
192
  entries: baseCtx.entries,
@@ -274,7 +274,7 @@ export async function commitPlacementExport(input) {
274
274
  await renumberPatchesInManifest(input.patchesDir, currentPlan.renameMap);
275
275
  renumberApplied = true;
276
276
  }
277
- // Normalize identically to commitExportedPatch — the two export
277
+ // Normalize identically to commitExportedPatch: the two export
278
278
  // paths must produce one artifact contract for the same diff.
279
279
  await writeText(patchPath, input.diff);
280
280
  await addPatchToManifest(input.patchesDir, {
@@ -289,7 +289,7 @@ export async function commitPlacementExport(input) {
289
289
  catch (hookError) {
290
290
  // Mutation has already committed and is not reversible. Warn
291
291
  // so operators know the audit trail has a gap, but do not
292
- // re-throw — that would look like the export itself failed.
292
+ // re-throw, which would look like the export itself failed.
293
293
  warn(`History log append failed after export committed (export-order, ${currentPlan.newFilename}): ` +
294
294
  toError(hookError).message);
295
295
  }
@@ -7,9 +7,9 @@ export interface PlacementAttributionPlan {
7
7
  renameMap: Map<string, PatchRenameEntry>;
8
8
  }
9
9
  /**
10
- * Partitions the projected placement errors into three labeled groups —
11
- * defects in the exported content, consequences of the renumbering, and
12
- * errors the queue already had — rendered as indented detail lines for
10
+ * Partitions the projected placement errors into three labeled groups
11
+ * (defects in the exported content, consequences of the renumbering, and
12
+ * errors the queue already had), rendered as indented detail lines for
13
13
  * {@link ConflictReport.details}. Grouping travels through the plain
14
14
  * `details: string[]`, so both refusal sites and confirmDestructive's
15
15
  * conflict printer show it without changes.
@@ -3,31 +3,31 @@
3
3
  * Attribution of projected placement lint errors, split out of
4
4
  * export-flow.ts for the line budget.
5
5
  *
6
- * A placement projection lints one merged queue — the renumbered existing
7
- * patches plus a synthetic entry for the pending patch — so a flat error
8
- * list reads as though the NEW patch caused every one of them. A renumbering
6
+ * A placement projection lints one merged queue (the renumbered existing
7
+ * patches plus a synthetic entry for the pending patch), so a flat error
8
+ * list reads as though the new patch caused every one of them. A renumbering
9
9
  * that re-evaluates pre-existing staged relationships (patch 455 importing a
10
10
  * module created by 456, legal only at their current ordinals) then sends
11
11
  * the operator auditing a perfectly fine export.
12
12
  *
13
- * Consumed by export-flow.ts; no top-level registrar is exported and none is
13
+ * Consumed by export-flow.ts. No top-level registrar is exported and none is
14
14
  * wanted.
15
15
  */
16
16
  import { formatPatchLintIssue } from '../core/patch-lint.js';
17
17
  /**
18
18
  * Identity for baseline comparison: check + site file + implicated
19
- * patches, with projected filenames mapped BACK through the rename map so
19
+ * patches, with projected filenames mapped back through the rename map so
20
20
  * a pre-existing error keeps its identity across the renumber. Never
21
- * parses the fingerprint — it is documented rename-sensitive.
21
+ * parses the fingerprint. It is documented rename-sensitive.
22
22
  */
23
23
  function issueKey(issue, mapBackToOldName) {
24
24
  const patches = (issue.patches ?? []).map(mapBackToOldName).sort((a, b) => a.localeCompare(b));
25
25
  return `${issue.check}|${issue.file}|${patches.join(',')}`;
26
26
  }
27
27
  /**
28
- * Partitions the projected placement errors into three labeled groups —
29
- * defects in the exported content, consequences of the renumbering, and
30
- * errors the queue already had — rendered as indented detail lines for
28
+ * Partitions the projected placement errors into three labeled groups
29
+ * (defects in the exported content, consequences of the renumbering, and
30
+ * errors the queue already had), rendered as indented detail lines for
31
31
  * {@link ConflictReport.details}. Grouping travels through the plain
32
32
  * `details: string[]`, so both refusal sites and confirmDestructive's
33
33
  * conflict printer show it without changes.
@@ -11,7 +11,7 @@ import { type PlacementPlan } from './export-flow.js';
11
11
  /**
12
12
  * Spreadable optional metadata (`tier`, `lintIgnore`) derived from the
13
13
  * export flags. Every manifest-row construction site in this command
14
- * shares this shape; with exactOptionalPropertyTypes the keys must be
14
+ * shares this shape. With exactOptionalPropertyTypes the keys must be
15
15
  * omitted entirely (not set to undefined) when the flags are absent.
16
16
  */
17
17
  export declare function patchMetadataExtras(options: ExportOptions): Partial<Pick<PatchMetadata, 'tier' | 'lintIgnore'>>;
@@ -22,7 +22,7 @@ export declare function patchMetadataExtras(options: ExportOptions): Partial<Pic
22
22
  * projected manifest, and routes destructive renumbers (or dry-runs)
23
23
  * through `confirmDestructive`. Returns the plan to commit, or `'stop'`
24
24
  * when the command should end here (dry-run rendered or operator
25
- * cancelled — the corresponding outro has already been printed).
25
+ * cancelled, and the corresponding outro has already been printed).
26
26
  */
27
27
  export declare function gatePlacementPlan(args: {
28
28
  patchesDir: string;
@@ -15,7 +15,7 @@ import { placementSummary, projectPlacementForLint, resolvePlacementPlan, } from
15
15
  /**
16
16
  * Spreadable optional metadata (`tier`, `lintIgnore`) derived from the
17
17
  * export flags. Every manifest-row construction site in this command
18
- * shares this shape; with exactOptionalPropertyTypes the keys must be
18
+ * shares this shape. With exactOptionalPropertyTypes the keys must be
19
19
  * omitted entirely (not set to undefined) when the flags are absent.
20
20
  */
21
21
  export function patchMetadataExtras(options) {
@@ -33,7 +33,7 @@ export function patchMetadataExtras(options) {
33
33
  * projected manifest, and routes destructive renumbers (or dry-runs)
34
34
  * through `confirmDestructive`. Returns the plan to commit, or `'stop'`
35
35
  * when the command should end here (dry-run rendered or operator
36
- * cancelled — the corresponding outro has already been printed).
36
+ * cancelled, and the corresponding outro has already been printed).
37
37
  */
38
38
  export async function gatePlacementPlan(args) {
39
39
  const { patchesDir, options, selectedCategory, patchName, description, filesAffected, diff, config, isDryRun, s, } = args;
@@ -41,7 +41,7 @@ export async function gatePlacementPlan(args) {
41
41
  throw new InvalidArgumentError('Placement flags (--order/--before/--after) cannot be combined with --supersede.', 'export placement');
42
42
  }
43
43
  // resolvePlacementPlan runs the reserved-range gate itself when config
44
- // is passed — one up-front error per run instead of per-patch findings.
44
+ // is passed: one up-front error per run instead of per-patch findings.
45
45
  const placementPlan = await resolvePlacementPlan(patchesDir, options, selectedCategory, patchName, config);
46
46
  const currentManifest = await loadPatchesManifest(patchesDir);
47
47
  const conflicts = await projectPlacementForLint(patchesDir, placementPlan, diff, config);
@@ -70,9 +70,9 @@ export async function gatePlacementPlan(args) {
70
70
  const summary = placementSummary(placementPlan);
71
71
  const renameCount = placementPlan.renameMap.size;
72
72
  // Route through confirmDestructive when the operation is destructive
73
- // enough to warrant a prompt (more than one rename) OR when the user asked
73
+ // enough to warrant a prompt (more than one rename) or when the user asked
74
74
  // for a dry-run. The dry-run branch must always print the placement
75
- // summary; otherwise single-rename and no-rename dry-runs exit silently
75
+ // summary. Otherwise single-rename and no-rename dry-runs exit silently
76
76
  // with no filename or projected layout.
77
77
  if (renameCount > 1 || isDryRun) {
78
78
  s.stop();
@@ -12,7 +12,7 @@ export interface PlacementPolicyPlan {
12
12
  }
13
13
  /**
14
14
  * Refuses positional placement plans whose renumber would touch a
15
- * `patchPolicy.reservedRanges` block — either by moving a patch INTO a
15
+ * `patchPolicy.reservedRanges` block, either by moving a patch into a
16
16
  * reserved range or by moving a patch that currently sits inside one.
17
17
  * Throws a single up-front error for the first reserved range hit (the
18
18
  * per-patch alternative surfaced one confusing finding per shifted
@@ -23,7 +23,7 @@ function firstFreeOrderBelowReservedRange(patches, range) {
23
23
  }
24
24
  /**
25
25
  * Refuses positional placement plans whose renumber would touch a
26
- * `patchPolicy.reservedRanges` block — either by moving a patch INTO a
26
+ * `patchPolicy.reservedRanges` block, either by moving a patch into a
27
27
  * reserved range or by moving a patch that currently sits inside one.
28
28
  * Throws a single up-front error for the first reserved range hit (the
29
29
  * per-patch alternative surfaced one confusing finding per shifted
@@ -18,7 +18,7 @@ export interface RunPatchLintOptions {
18
18
  /**
19
19
  * Optional per-patch set of `check` IDs to suppress (threaded from
20
20
  * `PatchMetadata.lintIgnore`). Surgical alternative to `--skip-lint` when
21
- * exactly one advisory rule does not apply to a specific patch — e.g.
21
+ * exactly one advisory rule does not apply to a specific patch, e.g.
22
22
  * `large-patch-lines` on a cohesive branding bundle that genuinely cannot
23
23
  * be split.
24
24
  */
@@ -75,14 +75,14 @@ export declare function confirmSupersedePatches(patchesDir: string, filesAffecte
75
75
  * Detects new files missing license headers and offers to add them.
76
76
  *
77
77
  * In interactive mode the user is prompted before any files are modified. In
78
- * non-interactive mode the function is a no-op — the existing lint error
78
+ * non-interactive mode the function is a no-op. The existing lint error
79
79
  * blocks the export instead.
80
80
  *
81
81
  * @param engineDir - Absolute path to engine directory
82
82
  * @param diffContent - Current unified diff
83
83
  * @param config - Project configuration
84
84
  * @param isInteractive - Whether interactive prompts are available
85
- * @param dryRun - When true, only REPORT missing headers, never prompt or
85
+ * @param dryRun - When true, only report missing headers, never prompt or
86
86
  * write. Dry-run must stay read-only: without this flag an interactive
87
87
  * `export --dry-run` prompts (default Yes), writes license headers into
88
88
  * engine/ files, and then closes with "no changes made".
@@ -96,23 +96,23 @@ export declare function autoFixLicenseHeaders(engineDir: string, diffContent: st
96
96
  *
97
97
  * Returns an empty map when no overlap exists. Used by the overlap gate in
98
98
  * `export` and `export-all` to refuse a default-mode export that would
99
- * silently create cross-patch ownership conflicts — the same class of
99
+ * silently create cross-patch ownership conflicts, the same class of
100
100
  * conflict `verify` immediately fails with.
101
101
  */
102
102
  export declare function findPartialOwnershipOverlap(manifest: PatchesManifest, filesAffected: string[], excludeFilenames: ReadonlySet<string>): Map<string, string[]>;
103
103
  /**
104
104
  * Gate that refuses the default export path when the new patch would
105
105
  * silently claim files already tracked by other non-superseded patches.
106
- * `findAllPatchesForFiles` catches the full-coverage supersede case; this
107
- * fills the gap for PARTIAL overlap — two patches both claiming e.g.
106
+ * `findAllPatchesForFiles` catches the full-coverage supersede case. This
107
+ * fills the gap for partial overlap: two patches both claiming e.g.
108
108
  * `browser/themes/shared/jar.inc.mn` after a second export with `--before`.
109
109
  *
110
110
  * Proceeds silently when there is no overlap, or when the caller passed
111
111
  * `--allow-overlap`. In interactive mode the caller is prompted to
112
112
  * acknowledge the overlap (the proper fix path is `re-export --files` to
113
113
  * repartition ownership, so the prompt surfaces that pointer). In
114
- * non-interactive mode it throws — better to fail fast than let the queue
115
- * fall out of sync with verify.
114
+ * non-interactive mode it throws, since failing fast beats letting the
115
+ * queue fall out of sync with verify.
116
116
  */
117
117
  export declare function guardOwnershipOverlap(args: {
118
118
  patchesDir: string;
@@ -127,7 +127,7 @@ export declare function guardOwnershipOverlap(args: {
127
127
  * order: the supersede confirmation, then the cross-patch ownership overlap
128
128
  * guard. The overlap guard receives the filenames of the patches the export
129
129
  * would fully supersede so it does not flag a file claimed by a patch that
130
- * is about to be removed. Catching only FULL-coverage supersedes leaves a
130
+ * is about to be removed. Catching only full-coverage supersedes leaves a
131
131
  * second export targeting a shared file creating a queue where two patches
132
132
  * both claim it and `verify` fails immediately.
133
133
  *
@@ -138,7 +138,7 @@ export declare function guardOwnershipOverlap(args: {
138
138
  * @param args.allowOverlap - The command's `--allow-overlap` flag
139
139
  * @param args.isInteractive - Whether prompting the operator is possible
140
140
  * @param args.s - Active spinner, stopped before any prompt
141
- * @returns `true` when both gates passed; `false` when the operator declined
141
+ * @returns `true` when both gates passed, `false` when the operator declined
142
142
  * (the caller returns without committing)
143
143
  */
144
144
  export declare function runSupersedeAndOverlapGates(args: {