thunderbird-patch-review

Simple email patch review tool for Thunderbird

git clone git://mccd.space/thunderbird-patch-review
commit 316273f6eedde47669f8037e09ba7115f34832ac
parent 5989a166b6193b155296f099cc7d829a21339100
Author: Pi Agent <agent@pi.local>
Date:   Sun, 19 Jul 2026 10:42:40 +0200

review: stop printing apply-check errors twice; use ✖ for conflict

The conflict output concatenated the forward and reverse git apply
--check outputs, which printed the same 'patch failed' lines twice.
The reverse run only confirms the failure; keep the forward output,
which is the one that says which file and hunk.

Also swap the conflict button glyph from ✗ (U+2717 BALLOT X) to ✖
(U+2716 HEAVY MULTIPLICATION X) for a heavier mark.

Diffstat:
Mextension/api/patchHost/implementation.js | 5++++-
Mextension/review/review.js | 2+-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/extension/api/patchHost/implementation.js b/extension/api/patchHost/implementation.js
@@ -172,7 +172,10 @@ async function check(repo, strategy, patches) {
     if (rev.exitCode === 0) {
       return { ok: true, status: "applied", output: fwd.output };
     }
-    return { ok: true, status: "conflict", output: fwd.output + rev.output };
+    // Only the forward run's output carries the useful 'why' (which file,
+    // which hunk). The reverse run repeats the same failure as it also
+    // can't apply; including it would just print every line twice.
+    return { ok: true, status: "conflict", output: fwd.output };
   } finally {
     IOUtils.remove(work, { recursive: true }).catch(() => {});
   }
diff --git a/extension/review/review.js b/extension/review/review.js
@@ -661,7 +661,7 @@ async function refreshApplyState() {
   } else if (state.applyStatus === "conflict") {
     apply.classList.add("state-conflict");
     apply.disabled = true;
-    apply.textContent = "Apply ✗";
+    apply.textContent = "Apply ✖";
     apply.title =
       "This series does not apply cleanly to the repository.\n\n" +
       (response.output || "(no detail)");