<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>thunderbird-patch-review, branch HEAD</title>
<subtitle>Easy-to-use patch review interface for Thunderbird
</subtitle>
<entry>
<id>17193d1dc33d652e8ed1502aab3ad48178199a4a</id>
<published>2026-07-18T20:42:02Z</published>
<updated>2026-07-18T20:42:02Z</updated>
<title>review: shorten Apply&#39;s no-repo error to &quot;Choose a git repository&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/17193d1dc33d652e8ed1502aab3ad48178199a4a.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 17193d1dc33d652e8ed1502aab3ad48178199a4a
parent b5b3f807e5f4cb857c8bcd1bcb9bbaabfd0d4aff
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:42:02 +0200

review: shorten Apply&#39;s no-repo error to &quot;Choose a git repository&quot;

</content>
</entry>
<entry>
<id>b5b3f807e5f4cb857c8bcd1bcb9bbaabfd0d4aff</id>
<published>2026-07-18T20:40:22Z</published>
<updated>2026-07-18T20:40:22Z</updated>
<title>review: send button and confirm dialog always say &quot;Send review&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/b5b3f807e5f4cb857c8bcd1bcb9bbaabfd0d4aff.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit b5b3f807e5f4cb857c8bcd1bcb9bbaabfd0d4aff
parent 3fb59dbcbd1bc4c5b9287e276cad3a050c5b9c55
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:40:22 +0200

review: send button and confirm dialog always say &quot;Send review&quot;

Drop the singular/plural send-review(s) wording now that the title carries\nthe total patch count and comment count; the button label is just &quot;Send\nreview&quot; in both toolbar and confirm dialog, regardless of how many patches\nare commented.

</content>
</entry>
<entry>
<id>3fb59dbcbd1bc4c5b9287e276cad3a050c5b9c55</id>
<published>2026-07-18T20:39:57Z</published>
<updated>2026-07-18T20:39:57Z</updated>
<title>review: refresh the title before button-pluralization in updateCount</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/3fb59dbcbd1bc4c5b9287e276cad3a050c5b9c55.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 3fb59dbcbd1bc4c5b9287e276cad3a050c5b9c55
parent ca7e115497a69d92921b760c41ae4f6dbe332f94
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:39:57 +0200

review: refresh the title before button-pluralization in updateCount

Reorder updateCount so renderSeriesTitle() runs first, independently of the
Send review button-text line; if the latter ever threw (e.g. a sparse
state.comments making Object.keys(state.comments[i]) fail), the title
counter would stay stale until a patch switch. Guard both the array access
and the firstChild text-node write.

</content>
</entry>
<entry>
<id>ca7e115497a69d92921b760c41ae4f6dbe332f94</id>
<published>2026-07-18T20:37:19Z</published>
<updated>2026-07-18T20:37:19Z</updated>
<title>review: title format Review Patchset (N); M comment(s)</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/ca7e115497a69d92921b760c41ae4f6dbe332f94.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit ca7e115497a69d92921b760c41ae4f6dbe332f94
parent edb20d9c39202c895ebebb7fc5a8900cd1d95b81
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:37:19 +0200

review: title format Review Patchset (N); M comment(s)

</content>
</entry>
<entry>
<id>edb20d9c39202c895ebebb7fc5a8900cd1d95b81</id>
<published>2026-07-18T20:35:49Z</published>
<updated>2026-07-18T20:35:49Z</updated>
<title>review: chip placeholder reads &quot;Choose a repository…&quot; instead of &quot;no repository chosen&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/edb20d9c39202c895ebebb7fc5a8900cd1d95b81.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit edb20d9c39202c895ebebb7fc5a8900cd1d95b81
parent 90b463f83ae1a41f65c4061f109c495be16193d2
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:35:49 +0200

review: chip placeholder reads &quot;Choose a repository…&quot; instead of &quot;no repository chosen&quot;

</content>
</entry>
<entry>
<id>90b463f83ae1a41f65c4061f109c495be16193d2</id>
<published>2026-07-18T20:35:25Z</published>
<updated>2026-07-18T20:35:25Z</updated>
<title>review: fix dropped comment line that shadowed renderSeriesTitle</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/90b463f83ae1a41f65c4061f109c495be16193d2.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 90b463f83ae1a41f65c4061f109c495be16193d2
parent 7c437ccaa58123c9eee1c2a6027953db6cce34cd
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:35:25 +0200

review: fix dropped comment line that shadowed renderSeriesTitle

A line of the doc comment had lost its leading //, so the stray text was
parsed as top-level statements outside renderSeriesTitle; the title never
rendered and the top bar stayed at &quot;Review&quot;. Restore the comment marker.

</content>
</entry>
<entry>
<id>7c437ccaa58123c9eee1c2a6027953db6cce34cd</id>
<published>2026-07-18T20:33:33Z</published>
<updated>2026-07-18T20:33:33Z</updated>
<title>review: reword the title to summarize the patchset and comments</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/7c437ccaa58123c9eee1c2a6027953db6cce34cd.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 7c437ccaa58123c9eee1c2a6027953db6cce34cd
parent bce9576f90902b376174f9d4bbadce2299cd401c
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:33:33 +0200

review: reword the title to summarize the patchset and comments

</content>
</entry>
<entry>
<id>bce9576f90902b376174f9d4bbadce2299cd401c</id>
<published>2026-07-18T20:30:39Z</published>
<updated>2026-07-18T20:30:39Z</updated>
<title>review: restore the bold top-left title; pills stay under the top bar</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/bce9576f90902b376174f9d4bbadce2299cd401c.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit bce9576f90902b376174f9d4bbadce2299cd401c
parent ddb4bee763b8210aa161971f35336a06b771988f
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:30:39 +0200

review: restore the bold top-left title; pills stay under the top bar

Return &quot;Reviewing patch N&quot; / &quot;Reviewing cover&quot; to a bold #series-title\nelement in the top bar (top left, as it was), driven by a new\nrenderSeriesTitle() called on init and on patch switch. The pills remain\nwhere the last change put them — in #content above the subject — and the\nin-nav title span is removed.

</content>
</entry>
<entry>
<id>ddb4bee763b8210aa161971f35336a06b771988f</id>
<published>2026-07-18T20:29:22Z</published>
<updated>2026-07-18T20:29:22Z</updated>
<title>review: pluralize Send review -&gt; Send reviews when more than one patch has a comment</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/ddb4bee763b8210aa161971f35336a06b771988f.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit ddb4bee763b8210aa161971f35336a06b771988f
parent 27552a85b1df73487f327ccc9da214dadacdf224
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:29:22 +0200

review: pluralize Send review -&gt; Send reviews when more than one patch has a comment

</content>
</entry>
<entry>
<id>27552a85b1df73487f327ccc9da214dadacdf224</id>
<published>2026-07-18T20:28:51Z</published>
<updated>2026-07-18T20:28:51Z</updated>
<title>review: move the patch pills below the top bar, above the subject</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/27552a85b1df73487f327ccc9da214dadacdf224.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 27552a85b1df73487f327ccc9da214dadacdf224
parent 7e7527f2aa32b3bbea1c218a9b6ded0376b13fe5
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:28:51 +0200

review: move the patch pills below the top bar, above the subject

Move #series-nav out of the toolbar and into #content as its first child\n(sitting above the patch box). Pills are left-aligned at the same\nhorizontal edge as the subject and hunks. renderPatch now clears #patch,\na dedicated child below the nav, so the nav persists across re-renders.

</content>
</entry>
<entry>
<id>7e7527f2aa32b3bbea1c218a9b6ded0376b13fe5</id>
<published>2026-07-18T20:26:25Z</published>
<updated>2026-07-18T20:26:25Z</updated>
<title>review: re-render nav on click; prepend bold &quot;Reviewing patch N&quot; title</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/7e7527f2aa32b3bbea1c218a9b6ded0376b13fe5.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 7e7527f2aa32b3bbea1c218a9b6ded0376b13fe5
parent a23ea54eb255049183779f8e4bcf828a9a4103ba
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:26:25 +0200

review: re-render nav on click; prepend bold &quot;Reviewing patch N&quot; title

The pill click handler updated state.current and the patch box but skipped\nrenderNav, so the .active pill never moved. Re-render nav on each click.\nWhile here, add a bold &quot;Reviewing patch N&quot; (or &quot;Reviewing cover&quot;) label\nbefore the pills in the top bar, replacing the old static series title.

</content>
</entry>
<entry>
<id>a23ea54eb255049183779f8e4bcf828a9a4103ba</id>
<published>2026-07-18T20:23:56Z</published>
<updated>2026-07-18T20:23:56Z</updated>
<title>review: put the patch selector (1/2 etc.) in the top bar, drop the title</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/a23ea54eb255049183779f8e4bcf828a9a4103ba.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit a23ea54eb255049183779f8e4bcf828a9a4103ba
parent 515034fc73b1427f171e18c30be1703088172a85
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:23:56 +0200

review: put the patch selector (1/2 etc.) in the top bar, drop the title

Replace the top-left &quot;series title&quot; text with the #series-nav pill row:\nthe per-patch tabs (cover, 1/2, 2/2, badge counts) now live in the top\nbar instead of inside the patch box. Drop the in-box nav, so the patch\nbox is just the commit message + comments + file diffs; patch selection\nis global, across the whole series, and belongs with the toolbar.

</content>
</entry>
<entry>
<id>515034fc73b1427f171e18c30be1703088172a85</id>
<published>2026-07-18T20:22:40Z</published>
<updated>2026-07-18T20:22:40Z</updated>
<title>Revert &quot;review: drop the commit-message bottom border to avoid a double divider&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/515034fc73b1427f171e18c30be1703088172a85.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 515034fc73b1427f171e18c30be1703088172a85
parent 8258ea86e73871e69ce8285ee9245a53882355d4
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:22:40 +0200

Revert &quot;review: drop the commit-message bottom border to avoid a double divider&quot;

This reverts commit 7c75d5416db368f6060479bf1107e60505390eb6.

</content>
</entry>
<entry>
<id>8258ea86e73871e69ce8285ee9245a53882355d4</id>
<published>2026-07-18T20:22:40Z</published>
<updated>2026-07-18T20:22:40Z</updated>
<title>Revert &quot;review: fold each file&#39;s diff into the patch box, separated by borders&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/8258ea86e73871e69ce8285ee9245a53882355d4.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 8258ea86e73871e69ce8285ee9245a53882355d4
parent 7c75d5416db368f6060479bf1107e60505390eb6
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:22:40 +0200

Revert &quot;review: fold each file&#39;s diff into the patch box, separated by borders&quot;

This reverts commit 690db80a5947ee75bf9278979797682e9af9081e.

</content>
</entry>
<entry>
<id>7c75d5416db368f6060479bf1107e60505390eb6</id>
<published>2026-07-18T20:20:01Z</published>
<updated>2026-07-18T20:20:01Z</updated>
<title>review: drop the commit-message bottom border to avoid a double divider</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/7c75d5416db368f6060479bf1107e60505390eb6.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 7c75d5416db368f6060479bf1107e60505390eb6
parent 690db80a5947ee75bf9278979797682e9af9081e
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:20:01 +0200

review: drop the commit-message bottom border to avoid a double divider

The next section (the general comment card or the first file&#39;s diff) already\nopens with its own top border, so the commit-message bottom border stacked\ninto a 2px divider. Remove it.

</content>
</entry>
<entry>
<id>690db80a5947ee75bf9278979797682e9af9081e</id>
<published>2026-07-18T20:18:30Z</published>
<updated>2026-07-18T20:18:30Z</updated>
<title>review: fold each file&#39;s diff into the patch box, separated by borders</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/690db80a5947ee75bf9278979797682e9af9081e.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 690db80a5947ee75bf9278979797682e9af9081e
parent 28d27e979bbd73f374f5fb4e9544954ea34a0aa2
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:18:30 +0200

review: fold each file&#39;s diff into the patch box, separated by borders

Move the per-file diff (and the no-diff note) inside the .patch-box so the\nseries nav, commit message, general comment, and every file&#39;s diff render\nas one card. Sections are separated by top borders instead of separate\ncards: the commit message gains a bottom border, each .file drops its own\nborder/radius and gets a single top border, and the general comment card\nsits flush as a section rather than indented like an inline card.

</content>
</entry>
<entry>
<id>28d27e979bbd73f374f5fb4e9544954ea34a0aa2</id>
<published>2026-07-18T20:13:31Z</published>
<updated>2026-07-18T20:13:31Z</updated>
<title>review: dim the branch portion of the repo chip to muted gray</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/28d27e979bbd73f374f5fb4e9544954ea34a0aa2.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 28d27e979bbd73f374f5fb4e9544954ea34a0aa2
parent 7b8f45dede3805cc8716494e710d0834e454e721
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:13:31 +0200

review: dim the branch portion of the repo chip to muted gray

</content>
</entry>
<entry>
<id>7b8f45dede3805cc8716494e710d0834e454e721</id>
<published>2026-07-18T20:12:32Z</published>
<updated>2026-07-18T20:12:32Z</updated>
<title>review: keep disabled primary buttons from going white-on-white on hover</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/7b8f45dede3805cc8716494e710d0834e454e721.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 7b8f45dede3805cc8716494e710d0834e454e721
parent 5d296c484fc578c9b083d83e578460d1c2f941b3
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:12:32 +0200

review: keep disabled primary buttons from going white-on-white on hover

The Send review button is .primary (accent bg, white text). On hover while\ndisabled, the generic primary-hover rule lifted opacity, leaving faint\nwhite text on a near-white hover tint. Pin disabled primary buttons to the\naccent background with a stable 0.5 opacity so the disabled state holds on\nhover.

</content>
</entry>
<entry>
<id>5d296c484fc578c9b083d83e578460d1c2f941b3</id>
<published>2026-07-18T20:11:33Z</published>
<updated>2026-07-18T20:11:33Z</updated>
<title>review: shrink the repo chip (cap at 18rem, fit content)</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/5d296c484fc578c9b083d83e578460d1c2f941b3.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 5d296c484fc578c9b083d83e578460d1c2f941b3
parent 0eb1fe7204f85ab25d50c6198eeec3a54ba489e8
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:11:33 +0200

review: shrink the repo chip (cap at 18rem, fit content)

</content>
</entry>
<entry>
<id>0eb1fe7204f85ab25d50c6198eeec3a54ba489e8</id>
<published>2026-07-18T20:10:28Z</published>
<updated>2026-07-18T20:10:28Z</updated>
<title>AGENTS: note to always rezip patch-review.xpi after extension changes</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/0eb1fe7204f85ab25d50c6198eeec3a54ba489e8.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 0eb1fe7204f85ab25d50c6198eeec3a54ba489e8
parent fbcd1f445775750aa7d75cfc64fed4783eb738f2
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:10:28 +0200

AGENTS: note to always rezip patch-review.xpi after extension changes

</content>
</entry>
<entry>
<id>fbcd1f445775750aa7d75cfc64fed4783eb738f2</id>
<published>2026-07-18T20:09:17Z</published>
<updated>2026-07-18T20:09:17Z</updated>
<title>review: make the repo chip the Browse target</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/fbcd1f445775750aa7d75cfc64fed4783eb738f2.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit fbcd1f445775750aa7d75cfc64fed4783eb738f2
parent 97e85837b70f6030cdaaff46eff49420a69222a2
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:09:17 +0200

review: make the repo chip the Browse target

Drop the separate Browse button and make the repo-name chip itself the\npicker trigger: clicking it opens the directory chooser, so choosing\nand displaying the target repository are one control. The chip keeps its\nname · branch text and red-error state and joins the Apply split in the\nsame cluster.

</content>
</entry>
<entry>
<id>97e85837b70f6030cdaaff46eff49420a69222a2</id>
<published>2026-07-18T20:06:07Z</published>
<updated>2026-07-18T20:06:07Z</updated>
<title>review: check the branch is still the one shown before Apply</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/97e85837b70f6030cdaaff46eff49420a69222a2.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 97e85837b70f6030cdaaff46eff49420a69222a2
parent a56cd849f169464a1a47182decefb2841ecf54e4
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:06:07 +0200

review: check the branch is still the one shown before Apply

Before running git am, re-resolve the repository and compare its current
branch with the one shown in the chip. If the branch moved between the
Browse pick and the Apply click (another checkout, rebase, ...), refresh
the chip to the new branch and ask the user to click Apply again to
confirm, rather than silently writing onto an unexpected branch. If the
repo is no longer reachable, refresh the chip into its error state and
report.

</content>
</entry>
<entry>
<id>a56cd849f169464a1a47182decefb2841ecf54e4</id>
<published>2026-07-18T20:05:40Z</published>
<updated>2026-07-18T20:05:40Z</updated>
<title>review: display the chosen repo&#39;s name and branch instead of a path</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/a56cd849f169464a1a47182decefb2841ecf54e4.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit a56cd849f169464a1a47182decefb2841ecf54e4
parent b74938caa712b4665d2f3479481c0c0ff3e7f079
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 22:05:40 +0200

review: display the chosen repo&#39;s name and branch instead of a path

Replace the editable repository path field with a read-only chip that
shows the repository&#39;s name and current branch (e.g. &quot;thunderbird-review-ui
· main&quot;). Browse is now the only way to pick a repo, and the chip turns red
with the git error if the chosen directory is not a git worktree; Apply
refuses while the chip is in the error state.

Backed by a new patchHost.describe(repo) experiment function that resolves
a path to {ok, repo, name, branch}, surfaced through a describe-repo
background message; the previous requireRepo check is folded into it.

</content>
</entry>
<entry>
<id>b74938caa712b4665d2f3479481c0c0ff3e7f079</id>
<published>2026-07-18T15:33:06Z</published>
<updated>2026-07-18T15:33:06Z</updated>
<title>docs: trim the INSTALLATION section to just the install steps</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/b74938caa712b4665d2f3479481c0c0ff3e7f079.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit b74938caa712b4665d2f3479481c0c0ff3e7f079
parent 3d9a1dfa357025f749fb06649ae62622c7db211b
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 17:33:06 +0200

docs: trim the INSTALLATION section to just the install steps

Replace the explanatory prose and the numbered temporary/permanent steps
with a brief paragraph: package the .xpi, install it from file; note that
git(1) is a dependency (for Apply), and the Load Temporary Add-on path
for development. Mirrored in README and patch-review.1.

</content>
</entry>
<entry>
<id>3d9a1dfa357025f749fb06649ae62622c7db211b</id>
<published>2026-07-18T15:29:35Z</published>
<updated>2026-07-18T15:29:35Z</updated>
<title>Add introductory post to README</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/3d9a1dfa357025f749fb06649ae62622c7db211b.html" />
<author>
<name>Marc</name>
<email>marc@coquand.email</email>
</author>
<content>commit 3d9a1dfa357025f749fb06649ae62622c7db211b
parent 1df01a0be4b4c9db7731b7190b57bd22d197ad57
Author: Marc &lt;marc@coquand.email&gt;
Date:   Sat, 18 Jul 2026 17:29:35 +0200

Add introductory post to README

</content>
</entry>
<entry>
<id>1df01a0be4b4c9db7731b7190b57bd22d197ad57</id>
<published>2026-07-18T15:19:28Z</published>
<updated>2026-07-18T15:19:28Z</updated>
<title>review: reword the Apply button tooltip</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/1df01a0be4b4c9db7731b7190b57bd22d197ad57.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 1df01a0be4b4c9db7731b7190b57bd22d197ad57
parent e8bb1e18ae937df4e758b752066586b4d464c38f
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 17:19:28 +0200

review: reword the Apply button tooltip

</content>
</entry>
<entry>
<id>e8bb1e18ae937df4e758b752066586b4d464c38f</id>
<published>2026-07-18T15:18:37Z</published>
<updated>2026-07-18T15:18:37Z</updated>
<title>docs: add a PERMISSIONS section explaining each requested permission</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/e8bb1e18ae937df4e758b752066586b4d464c38f.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit e8bb1e18ae937df4e758b752066586b4d464c38f
parent e393a93c0b8e95be43077f7087ee151a924234b7
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 17:18:37 +0200

docs: add a PERMISSIONS section explaining each requested permission

List the seven permissions in the manifest and what each is actually used
for (messagesRead/accountsRead/strore/compose/compose.send/downloads/tabs),
and note that the privileged Apply/Browse.../Open editor code is not a
Mozilla permission but a WebExtension Experiment shipped in the XPI.
Added to both the README and patch-review.1.

</content>
</entry>
<entry>
<id>e393a93c0b8e95be43077f7087ee151a924234b7</id>
<published>2026-07-18T15:14:58Z</published>
<updated>2026-07-18T15:14:58Z</updated>
<title>review: reword the send-review confirm summary</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/e393a93c0b8e95be43077f7087ee151a924234b7.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit e393a93c0b8e95be43077f7087ee151a924234b7
parent aabd7fedef54b88917a05e15363bac261f69a664
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 17:14:58 +0200

review: reword the send-review confirm summary

&quot;X of Y patch has a comment; click send review to continue.&quot; reads better
than the old draft/confirm wording. The preview mode uses the same shape
with &quot;open in compose&quot; in place of &quot;send review&quot;.

</content>
</entry>
<entry>
<id>aabd7fedef54b88917a05e15363bac261f69a664</id>
<published>2026-07-18T15:13:56Z</published>
<updated>2026-07-18T15:13:56Z</updated>
<title>host: replace the installed native messaging host with a WebExtension Experiment</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/aabd7fedef54b88917a05e15363bac261f69a664.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit aabd7fedef54b88917a05e15363bac261f69a664
parent 7897796e5d0450d869d899b7e272be10d3a7ccfc
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 17:13:56 +0200

host: replace the installed native messaging host with a WebExtension Experiment

The native host was a separate install (host/install-host.sh +
$HOME/.mozilla/.../native-messaging-hosts/*.json) gating Apply, Browse...,
and Open editor, which read like a mandatory prerequisite and made the
eventual one-file install awkward to bake in.

Fold that privileged code into the XPI itself as a WebExtension Experiment
(&quot;patchHost&quot;) declared via experiment_apis in the manifest. Remove the

  - nativeMessaging permission,
  - extension/modules/native.js bridge,
  - host/ directory and its POSIX-sh host + installer,
  - tests/host-test.sh,

and route background.js through messenger.patchHost.* (ping/apply/
pickDir/openEditor) instead of sendNativeMessage. The experiment&#39;s
schema + implementation live under extension/api/patchHost/, the only
chrome-privileged code in the add-on; everything else stays sandboxed.

Update README, patch-review.1, AGENTS.md to drop the native-host install
step, and add manifest/experiment wiring checks to tests/run.mjs so the
privileged glue is regression-tested headlessly.

</content>
</entry>
<entry>
<id>7897796e5d0450d869d899b7e272be10d3a7ccfc</id>
<published>2026-07-18T13:38:23Z</published>
<updated>2026-07-18T13:38:23Z</updated>
<title>docs: clarify the native host install is optional</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/7897796e5d0450d869d899b7e272be10d3a7ccfc.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 7897796e5d0450d869d899b7e272be10d3a7ccfc
parent c47dfc73eea5d8c26ceffa52053c59a46db23c64
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 15:38:23 +0200

docs: clarify the native host install is optional

The README/man page listed the native host as step 1, which read as
if you must run it before installing the extension from the Add-ons
Manager. Reorder so the extension steps come first and the native host
is step 3 (optional): detection, the review tab, commenting, and Send
review work with the extension alone; the host is only needed for Apply
(git am), the Browse... repo chooser, and Open editor after an apply.

</content>
</entry>
<entry>
<id>c47dfc73eea5d8c26ceffa52053c59a46db23c64</id>
<published>2026-07-18T13:29:40Z</published>
<updated>2026-07-18T13:29:40Z</updated>
<title>review: disable Send review when there&#39;s nothing to send</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/c47dfc73eea5d8c26ceffa52053c59a46db23c64.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit c47dfc73eea5d8c26ceffa52053c59a46db23c64
parent 8833e293294ae6d4ba413f866b4fd78db21d706d
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 15:29:40 +0200

review: disable Send review when there&#39;s nothing to send

Send review needs at least one draft comment, or — for a sourcehut\nseries — a patchset-status update that can go out as a stand-alone reply.\nWith neither, disable the Send review button and its drop-down toggle so\nthe confirmation modal cannot be opened with nothing to do; add a\ndisabled-button style so the state reads visually.

</content>
</entry>
<entry>
<id>8833e293294ae6d4ba413f866b4fd78db21d706d</id>
<published>2026-07-18T13:13:41Z</published>
<updated>2026-07-18T13:13:41Z</updated>
<title>docs: show the zip command to package the extension as an .xpi</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/8833e293294ae6d4ba413f866b4fd78db21d706d.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 8833e293294ae6d4ba413f866b4fd78db21d706d
parent ce0c7cd7483d28dd4fefbab83681337a2fa667ab
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 15:13:41 +0200

docs: show the zip command to package the extension as an .xpi

Spell out the one-liner used to build patch-review.xpi (run zip from inside
extension/ so manifest.json lands at the archive root) in both the README
and the patch-review.1 INSTALLATION section.

</content>
</entry>
<entry>
<id>ce0c7cd7483d28dd4fefbab83681337a2fa667ab</id>
<published>2026-07-18T13:11:20Z</published>
<updated>2026-07-18T13:11:20Z</updated>
<title>review: shorten the Apply series button label to &quot;Apply&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/ce0c7cd7483d28dd4fefbab83681337a2fa667ab.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit ce0c7cd7483d28dd4fefbab83681337a2fa667ab
parent 925c4989a84cca93f168268a14fbac66863b27f0
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 15:11:20 +0200

review: shorten the Apply series button label to &quot;Apply&quot;

</content>
</entry>
<entry>
<id>925c4989a84cca93f168268a14fbac66863b27f0</id>
<published>2026-07-18T12:25:06Z</published>
<updated>2026-07-18T12:25:06Z</updated>
<title>git: ignore the packaged .xpi build artifact</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/925c4989a84cca93f168268a14fbac66863b27f0.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 925c4989a84cca93f168268a14fbac66863b27f0
parent 05e4b488143c700a176f2f7582ddc3f824c354e6
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 14:25:06 +0200

git: ignore the packaged .xpi build artifact

</content>
</entry>
<entry>
<id>05e4b488143c700a176f2f7582ddc3f824c354e6</id>
<published>2026-07-18T11:58:42Z</published>
<updated>2026-07-18T11:58:42Z</updated>
<title>review: hover secondary buttons with a background tint, not a border recolor</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/05e4b488143c700a176f2f7582ddc3f824c354e6.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 05e4b488143c700a176f2f7582ddc3f824c354e6
parent 8466dad0a12a90b6d82e41339242628cdcffe059
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:58:42 +0200

review: hover secondary buttons with a background tint, not a border recolor

Recoloring the border on hover looked jarring on bordered (secondary)
buttons that share their border in the repo/Browse/Apply cluster, since
only the recolored edge jumped color. Hover now lifts the background to
the existing light accent-tint (--hunk-bg), matching the split-menu
hover treatment, and leaves the border alone so the joined outline stays
stable.

</content>
</entry>
<entry>
<id>8466dad0a12a90b6d82e41339242628cdcffe059</id>
<published>2026-07-18T11:57:23Z</published>
<updated>2026-07-18T11:57:23Z</updated>
<title>review: join repo path, Browse, and Apply series into one cluster</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/8466dad0a12a90b6d82e41339242628cdcffe059.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 8466dad0a12a90b6d82e41339242628cdcffe059
parent 09bb59858258802de64d8000468cc2ea4b7ec52a
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:57:23 +0200

review: join repo path, Browse, and Apply series into one cluster

Wrap the repository input, the Browse button, and the Apply-series split
in a .cluster so they sit flush in a single bordered control, mirroring
the joined look already used for the split-button menus: inner gaps and
inner borders are removed, and inner corner radii flatten so the merged
outline stays rounded only at the cluster&#39;s outer corners.

</content>
</entry>
<entry>
<id>09bb59858258802de64d8000468cc2ea4b7ec52a</id>
<published>2026-07-18T11:55:34Z</published>
<updated>2026-07-18T11:55:34Z</updated>
<title>review: drop the comment count from the top bar</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/09bb59858258802de64d8000468cc2ea4b7ec52a.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 09bb59858258802de64d8000468cc2ea4b7ec52a
parent d0bfbc768602369cfb77be7be3bd752baac64fd9
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:55:34 +0200

review: drop the comment count from the top bar

</content>
</entry>
<entry>
<id>d0bfbc768602369cfb77be7be3bd752baac64fd9</id>
<published>2026-07-18T11:53:40Z</published>
<updated>2026-07-18T11:53:40Z</updated>
<title>review: only hide the clicked line&#39;s own readonly comment</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/d0bfbc768602369cfb77be7be3bd752baac64fd9.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit d0bfbc768602369cfb77be7be3bd752baac64fd9
parent 710660cf500e3f3b67d8e218f1d429e33b450ee9
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:53:40 +0200

review: only hide the clicked line&#39;s own readonly comment

findReadonly walked every following sibling and returned the first
.readonly, so opening a new editor on a line with no comment grabbed
some later line&#39;s saved comment and hid it for the duration of the
editor. A line&#39;s comment row is always its immediate next sibling
(renderFileTable appends it right after the line row), so only check
that one.

</content>
</entry>
<entry>
<id>710660cf500e3f3b67d8e218f1d429e33b450ee9</id>
<published>2026-07-18T11:49:41Z</published>
<updated>2026-07-18T11:49:41Z</updated>
<title>review: rename patch-level comment button to &quot;Add Comment&quot;</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/710660cf500e3f3b67d8e218f1d429e33b450ee9.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 710660cf500e3f3b67d8e218f1d429e33b450ee9
parent 48efe4915803a3bb208bc3284745f3d434ea3ab3
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:49:41 +0200

review: rename patch-level comment button to &quot;Add Comment&quot;

</content>
</entry>
<entry>
<id>48efe4915803a3bb208bc3284745f3d434ea3ab3</id>
<published>2026-07-18T11:49:18Z</published>
<updated>2026-07-18T11:49:18Z</updated>
<title>review: de-emphasize Apply series to a secondary button</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/48efe4915803a3bb208bc3284745f3d434ea3ab3.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 48efe4915803a3bb208bc3284745f3d434ea3ab3
parent 0280f8ffaa21e93d514b04a3cb29bade12bb28a3
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:49:18 +0200

review: de-emphasize Apply series to a secondary button

Drop the primary class on the Apply series button and its menu toggle so
Send review stays the lone primary action and git-am into the repository
defaults to the secondary (bordered) treatment.

</content>
</entry>
<entry>
<id>0280f8ffaa21e93d514b04a3cb29bade12bb28a3</id>
<published>2026-07-18T11:46:03Z</published>
<updated>2026-07-18T11:46:03Z</updated>
<title>review: confirm before Send review; fold sourcehut status into the confirm dialog</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/0280f8ffaa21e93d514b04a3cb29bade12bb28a3.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 0280f8ffaa21e93d514b04a3cb29bade12bb28a3
parent 96828e747f84883fa26d6320ace855eb047be15d
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:46:03 +0200

review: confirm before Send review; fold sourcehut status into the confirm dialog

Send review and its drop-down options (Send now / Preview in compose) now\nopen a confirmation modal summarizing how many patches have a draft\ncomment and what will happen on confirm. The sourcehut set-status\ncheckbox and dropdown move out of the top bar into that dialog, so the\nreviewer picks the patchset status only when actually committing to send.

</content>
</entry>
<entry>
<id>96828e747f84883fa26d6320ace855eb047be15d</id>
<published>2026-07-18T11:41:20Z</published>
<updated>2026-07-18T11:41:20Z</updated>
<title>review: move Discard drafts into the Send review dropdown</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/96828e747f84883fa26d6320ace855eb047be15d.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 96828e747f84883fa26d6320ace855eb047be15d
parent 8de066f9af393dd265ee29e5237821432ba3b49d
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:41:20 +0200

review: move Discard drafts into the Send review dropdown

The Discard drafts button was a prominent red control in the toolbar;
move it under the Send review split button&#39;s menu as a borderline item
instead, keeping the confirmation dialog. setupSplit now skips menu
buttons marked data-bypass so the discard action does not get routed
through sendReview.

</content>
</entry>
<entry>
<id>8de066f9af393dd265ee29e5237821432ba3b49d</id>
<published>2026-07-18T11:30:05Z</published>
<updated>2026-07-18T11:30:11Z</updated>
<title>series: prefer the diff-bearing message when an index collides</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/8de066f9af393dd265ee29e5237821432ba3b49d.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 8de066f9af393dd265ee29e5237821432ba3b49d
parent 9f6dc91cab6f837c81fe27f7a04acad9d22bc35c
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:30:05 +0200

series: prefer the diff-bearing message when an index collides

A reply that shares the patch subject sometimes loses its Re: prefix on
the way through a mailing list, so isReplySubject does not catch it and
sameSeries pulls it in. The per-index dedup then kept the later message
by date, so the reply (no diff) displaced the real patch and the review
tab showed &quot;No diff found in this message&quot; for a slot that does have a
patch.

Fetch bodies before dedup and, for n &gt; 0, prefer the entry whose body
has a diff; only tiebreak on date. Extracted as dedupByIndex so the
choice is unit-testable.

</content>
</entry>
<entry>
<id>9f6dc91cab6f837c81fe27f7a04acad9d22bc35c</id>
<published>2026-07-18T11:21:43Z</published>
<updated>2026-07-18T11:21:43Z</updated>
<title>series: strip replies out of the patch series</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/9f6dc91cab6f837c81fe27f7a04acad9d22bc35c.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 9f6dc91cab6f837c81fe27f7a04acad9d22bc35c
parent 862ef5015181b3f592de86497aa40745e3ad784e
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:21:43 +0200

series: strip replies out of the patch series

Re:/Aw:/Fwd: replies to a patch shared the same subject tag as the\noriginal (parseSubject deliberately strips those prefixes), so they were\nswept into the series by sameSeries and rendered as if they were patches.\n\nAdd isReplySubject and skip both the anchor and every folder candidate\nthat carries a reply prefix. Real patches (including a cover letter)\nstill match. Detection of the Review button is unchanged, so opening the\nreview from a reply still finds the original patches in the folder.

</content>
</entry>
<entry>
<id>862ef5015181b3f592de86497aa40745e3ad784e</id>
<published>2026-07-18T11:12:37Z</published>
<updated>2026-07-18T11:12:37Z</updated>
<title>review: drop duplicate From header, keep only Subject</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/862ef5015181b3f592de86497aa40745e3ad784e.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 862ef5015181b3f592de86497aa40745e3ad784e
parent a50534bb5d2f55be7d2f3112fe979aad4e0d81a1
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:12:37 +0200

review: drop duplicate From header, keep only Subject

The parsed commit message no longer carries the format-patch From: line,
so the per-patch metadata header only needs the Subject now. Render it at
the same size and black color as the surrounding commit message body
(13px / var(--fg)).

</content>
</entry>
<entry>
<id>a50534bb5d2f55be7d2f3112fe979aad4e0d81a1</id>
<published>2026-07-18T11:11:52Z</published>
<updated>2026-07-18T11:11:52Z</updated>
<title>review: hide Comment-on-patch button while editing; add Discard drafts</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/a50534bb5d2f55be7d2f3112fe979aad4e0d81a1.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit a50534bb5d2f55be7d2f3112fe979aad4e0d81a1
parent 661802884b46373d88e7e52ee3806a87248a5813
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:11:52 +0200

review: hide Comment-on-patch button while editing; add Discard drafts

When the patch-level comment editor opens, hide the trigger button until
the editor is cancelled (post re-renders, dropping it anyway once a draft
exists). The button is no longer offered as &quot;Edit comment&quot; when a draft
is present — the readonly card (double-click / click to edit) is the only
entry point, so there is no redundant modify button after posting.

Add a red &quot;Discard drafts…&quot; button in the toolbar, to the left of the
comment count and repo path. It asks for confirmation, then clears every
draft comment in the series (per-patch Message-ID storage) and re-renders.

</content>
</entry>
<entry>
<id>661802884b46373d88e7e52ee3806a87248a5813</id>
<published>2026-07-18T11:08:24Z</published>
<updated>2026-07-18T11:08:24Z</updated>
<title>review: align Comment on patch button below the commit message</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/661802884b46373d88e7e52ee3806a87248a5813.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 661802884b46373d88e7e52ee3806a87248a5813
parent 2e04f24a83c7b232aabf9fdd13df28711357d6b2
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:08:24 +0200

review: align Comment on patch button below the commit message

Drop the absolute top-right positioning of the patch-level comment button
and render it as a left-aligned block beneath the commit message body,
which is where it now belongs given the From/Subject header sits at the top.

</content>
</entry>
<entry>
<id>2e04f24a83c7b232aabf9fdd13df28711357d6b2</id>
<published>2026-07-18T11:07:44Z</published>
<updated>2026-07-18T11:07:44Z</updated>
<title>review: render patch From/Subject header labels in monospace too</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/2e04f24a83c7b232aabf9fdd13df28711357d6b2.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 2e04f24a83c7b232aabf9fdd13df28711357d6b2
parent b8ab32ae75bafc8224bcd1317f468a16d1103467
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:07:44 +0200

review: render patch From/Subject header labels in monospace too

</content>
</entry>
<entry>
<id>b8ab32ae75bafc8224bcd1317f468a16d1103467</id>
<published>2026-07-18T11:06:49Z</published>
<updated>2026-07-18T11:06:49Z</updated>
<title>diff-parse: strip git format-patch mbox header block from commit message</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/b8ab32ae75bafc8224bcd1317f468a16d1103467.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit b8ab32ae75bafc8224bcd1317f468a16d1103467
parent ac9de41f8a07dfe3a659abfc604305ba4c9f3281
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:06:49 +0200

diff-parse: strip git format-patch mbox header block from commit message

git format-patch prepends an mbox-style header to the body (the
&#39;From &lt;sha&gt; Mon Sep 17 00:00:00 2001&#39; From_ line followed by From:,
Date:, Subject:, then a blank). The review UI now renders author and
subject in its own header, so keeping that block in the parsed
commitMessage duplicated the From:/Subject: lines above the real
message text.

Detect the mbox From_ line by its fixed &#39;Mon Sep 17 00:00:00 2001&#39;
timestamp and drop the header block up to the first blank line, leaving
only the real commit message. formatReview does not use commitMessage,
so stripping is safe.

</content>
</entry>
<entry>
<id>ac9de41f8a07dfe3a659abfc604305ba4c9f3281</id>
<published>2026-07-18T11:02:59Z</published>
<updated>2026-07-18T11:04:01Z</updated>
<title>review: show From and Subject at the top of each patch</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/ac9de41f8a07dfe3a659abfc604305ba4c9f3281.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit ac9de41f8a07dfe3a659abfc604305ba4c9f3281
parent 893f427859dd63ba8ee6f2caf092e675617bde35
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 13:02:59 +0200

review: show From and Subject at the top of each patch

Add a small metadata header at the top of every commit-message block —\nFrom (the patch author) and the email Subject line — with the values in\na monospace face, mirroring the top of a git-format-patch message. The\ncommit message body continues below as before.

</content>
</entry>
<entry>
<id>893f427859dd63ba8ee6f2caf092e675617bde35</id>
<published>2026-07-18T10:52:45Z</published>
<updated>2026-07-18T10:52:45Z</updated>
<title>review: auto-dismiss non-error status notices after 5s</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/893f427859dd63ba8ee6f2caf092e675617bde35.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 893f427859dd63ba8ee6f2caf092e675617bde35
parent 3834c1b43d97c6b354146ea71f61a59f8cf4bc72
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:52:45 +0200

review: auto-dismiss non-error status notices after 5s

showStatus starts a 5s timer for non-error notices and clears it on
hideStatus or a subsequent showStatus; errors stay until manually closed
so they are not lost.

</content>
</entry>
<entry>
<id>3834c1b43d97c6b354146ea71f61a59f8cf4bc72</id>
<published>2026-07-18T10:52:41Z</published>
<updated>2026-07-18T10:52:41Z</updated>
<title>review: use the surface background for the comment editor action row</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/3834c1b43d97c6b354146ea71f61a59f8cf4bc72.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 3834c1b43d97c6b354146ea71f61a59f8cf4bc72
parent c14e5e0e45b927dd4dbacabc06ba8b670b2b75d5
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:52:41 +0200

review: use the surface background for the comment editor action row

The editor box inherits the yellow comment color; the Save/Cancel/Delete
footer should read as a distinct bar rather than blend into the yellow.
Give .comment-actions the surface panel color and round its bottom
corners to the box.

</content>
</entry>
<entry>
<id>c14e5e0e45b927dd4dbacabc06ba8b670b2b75d5</id>
<published>2026-07-18T10:52:35Z</published>
<updated>2026-07-18T10:52:35Z</updated>
<title>review: warn on binary patches with optional raw display</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/c14e5e0e45b927dd4dbacabc06ba8b670b2b75d5.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit c14e5e0e45b927dd4dbacabc06ba8b670b2b75d5
parent f801ebecd98f909249acb24c219cf1e5bed57e13
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:52:35 +0200

review: warn on binary patches with optional raw display

Replace the bare &#39;Binary file — not reviewable inline.&#39; note with a
binaryBlock that flags binary changes prominently (red left border) and
offers a Display/Hide raw patch toggle showing the verbatim diff text
sliced from the parsed body lines for that file.

</content>
</entry>
<entry>
<id>f801ebecd98f909249acb24c219cf1e5bed57e13</id>
<published>2026-07-18T10:52:25Z</published>
<updated>2026-07-18T10:52:25Z</updated>
<title>review: hide the readonly comment while editing it</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/f801ebecd98f909249acb24c219cf1e5bed57e13.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit f801ebecd98f909249acb24c219cf1e5bed57e13
parent 893b7a0be9f0f09f676f66ca9a3d530f17291e75
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:52:25 +0200

review: hide the readonly comment while editing it

When the inline or &quot;Comment on patch&quot; editor opens, hide the existing
readonly comment card beneath it so the editor is not duplicated by the
saved view. closeEditors() centralizes tearing down any open editor and
restoring whichever .readonly card was hidden; toggleEditor and
openGeneralEditor track the specific readonly element to restore on
cancel/save. Comment cards/rows are tagged .readonly for the lookup.

</content>
</entry>
<entry>
<id>893b7a0be9f0f09f676f66ca9a3d530f17291e75</id>
<published>2026-07-18T10:52:11Z</published>
<updated>2026-07-18T10:52:11Z</updated>
<title>review: group the patch list and commit message into one box</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/893b7a0be9f0f09f676f66ca9a3d530f17291e75.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 893b7a0be9f0f09f676f66ca9a3d530f17291e75
parent 0a3e906c666337b0a51a6b16f1391c300e41a127
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:52:11 +0200

review: group the patch list and commit message into one box

Merge the series selector and the commit-message block into a single
bordered box: &lt;nav id=&quot;series-nav&quot;&gt; is removed from the page and
rendered inside renderPatch, with the commit message (and any general
patch comment) as siblings beneath it. The pills now live in a
.series-nav footer-row inside the shared .patch-box, and the commit
message drops its own border/background since the box provides them.

</content>
</entry>
<entry>
<id>0a3e906c666337b0a51a6b16f1391c300e41a127</id>
<published>2026-07-18T10:49:18Z</published>
<updated>2026-07-18T10:51:03Z</updated>
<title>feat: move Review to the toolbar button, support thread selection, add Download patchset</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/0a3e906c666337b0a51a6b16f1391c300e41a127.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit 0a3e906c666337b0a51a6b16f1391c300e41a127
parent b56adf51c3e0a5e448f59bcbfbf6b04509439982
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:49:18 +0200

feat: move Review to the toolbar button, support thread selection, add Download patchset

Switch from message_display_action (per-message header) to browser_action
(main toolbar) so multi-message and thread selections are covered. The
Review button lights up on the current mail-tab selection (with a fallback
to the displayed message in standalone message tabs).

Add an Apply-series drop-down with &#39;Modify and apply&#39; (apply then open the
touched files in the editor) and &#39;Download patchset&#39; (save the raw series
as an mbox), implemented via a generic .split button component and a new
download-series background handler using the downloads permission.

</content>
</entry>
<entry>
<id>b56adf51c3e0a5e448f59bcbfbf6b04509439982</id>
<published>2026-07-18T10:48:19Z</published>
<updated>2026-07-18T10:48:19Z</updated>
<title>docs: add AGENTS.md with atomic-commit policy and repo layout</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/b56adf51c3e0a5e448f59bcbfbf6b04509439982.html" />
<author>
<name>Pi Agent</name>
<email>agent@pi.local</email>
</author>
<content>commit b56adf51c3e0a5e448f59bcbfbf6b04509439982
parent af77b22e578a1acf65a8e967b81760c7f14181f6
Author: Pi Agent &lt;agent@pi.local&gt;
Date:   Sat, 18 Jul 2026 12:48:19 +0200

docs: add AGENTS.md with atomic-commit policy and repo layout

</content>
</entry>
<entry>
<id>af77b22e578a1acf65a8e967b81760c7f14181f6</id>
<published>2026-07-18T09:42:35Z</published>
<updated>2026-07-18T09:42:35Z</updated>
<title>Initial commit</title>
<link rel="alternate" type="text/html" href="https://mccd.space/git/thunderbird-patch-review/commit/af77b22e578a1acf65a8e967b81760c7f14181f6.html" />
<author>
<name>Marc</name>
<email>marc@coquand.email</email>
</author>
<content>commit af77b22e578a1acf65a8e967b81760c7f14181f6
Author: Marc &lt;marc@coquand.email&gt;
Date:   Sat, 18 Jul 2026 11:42:35 +0200

Initial commit

</content>
</entry>
</feed>
