fix(notices): let the 4.0.0 release modal cover the whole 4.x line

The version window already said 4.0.0 to 5.0.0, and the test above it is even
called "covers the whole 4.x line", but that was only half the story: without
`recurring: 'per-version'` a notice falls back to a one-time dismissal, so
everyone who closed the modal on 4.0.0 never saw it again. It did not come back
on 4.1, 4.2 or 4.2.1, which is the opposite of what the window says.

The mechanism was already there and in use one entry below, on thank-you-support.
The dismissal path records the app version it was closed at, so the notice
re-surfaces on the next upgrade and stays down within the same version. Rows
dismissed before that column existed read as 0.0.0 and simply come back once.
This commit is contained in:
Maurice
2026-09-06 16:27:00 +02:00
committed by Maurice
parent 755e9f1ca4
commit 2572132117
2 changed files with 13 additions and 2 deletions
@@ -82,6 +82,14 @@ describe('registry integrity', () => {
expect(isNoticeVersionActive(release!, '5.0.0')).toBe(false);
});
it('the 4.0.0 release notice comes back on each upgrade inside that line', () => {
const release = SYSTEM_NOTICES.find(n => n.id === 'release-4-0-0')!;
// The version window above is only half of "covers the whole 4.x line". Without
// this, the default one-time dismissal retired the notice for everyone who
// closed it on 4.0.0, so none of them saw it again on 4.1, 4.2 or later.
expect(release.recurring).toBe('per-version');
});
it('the thank-you notice hands over to the release modal at 4.0.0', () => {
const thankYou = SYSTEM_NOTICES.find(n => n.id === 'thank-you-support');
expect(thankYou).toBeDefined();