fix(publish): a release sends exactly the tag names the sheet showed (ADR 0019)

The final reading of 22 Oct found that the names were worked out again
after the sync that comes before publishing, so a link to a private tag
the instance merged in during that sync sent a name nobody saw going. The
sheet now hands what it showed to Publish, and the device refuses before
anything goes out when the names worked out then differ
(PublishProblem.tagNamesChanged), reading them again for the person to
look at.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-22 11:30:17 +02:00
commit 92ff7616a4
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -191,6 +191,7 @@ void main() {
root,
slug: 'japanese',
notes: 'The first release.',
tagNamesShown: null,
);
expect(first.latest?.version, 1);
expect(first.latest?.cards, 3);
@ -243,6 +244,7 @@ void main() {
root,
slug: 'japanese',
notes: 'An inu, and a bird.',
tagNamesShown: null,
);
expect(second.latest?.version, 2);
@ -269,7 +271,12 @@ void main() {
// holds the second, is offered nothing.
await laptop.cards.create(root, card('魚', 'fish'));
await laptop.sync();
await publishing.publish(root, slug: 'japanese', notes: 'A fish.');
await publishing.publish(
root,
slug: 'japanese',
notes: 'A fish.',
tagNamesShown: null,
);
expect((await explore.updateOf(copy))?.version, 3);
final withdrawn = await publishing.withdraw(root);
expect(withdrawn.withdrawn, isTrue);