Say the Archive folder needs the role, not the name #220

Closed
opened 2026-09-02 15:00:55 +00:00 by jcoffey-dev · 0 comments
Owner

Fixes #217.

Archiving looks the folder up by its special-use role and by nothing else — roleId("archive"), falling back to roleId("all") — and then, finding neither, told you:

No Archive folder found. Create one named “Archive” first.

Naming a folder does not give it a role, and ihasmail has no way to assign one: Folders settings shows a folder's role beside it and offers no control to set it. So the advice sent someone round a loop that could not end — they make the folder, it still does not work, and the message says the same thing again.

It now says what is actually required and where it lives:

No Archive folder is set. A folder needs the Archive role on the server; naming it “Archive” is not enough.

Both call sites — archive and archiveByDate — used the same string and both change.

All nine catalogues carry the correction rather than falling back to visible English. They need the same native review the rest of the catalogue does; the correction they carry is the same one the English makes.

The existing test asserted only that archiving complained. It now checks what the complaint says, since the words were the whole bug.

npm run typecheck, npm test (897 web + 122 server), npm run build, npm run i18n:check (no new stale or missing keys) all pass.

Not in this PR

Letting ihasmail assign the role itself — a "make this the Archive folder" control in Folders settings — would remove the need for the message entirely. JMAP allows role on Mailbox/set, but whether Stalwart accepts it is not something I've confirmed against a live server, so it isn't built on the assumption.

Merged 2026-09-02 as coffey-labs/ihasmail@8e9259638d

Rebuilt from: git history, session transcript.

Fixes #217. Archiving looks the folder up by its special-use role and by nothing else — `roleId("archive")`, falling back to `roleId("all")` — and then, finding neither, told you: > No Archive folder found. Create one named “Archive” first. Naming a folder does not give it a role, and ihasmail has no way to assign one: Folders settings shows a folder's role beside it and offers no control to set it. So the advice sent someone round a loop that could not end — they make the folder, it still does not work, and the message says the same thing again. It now says what is actually required and where it lives: > No Archive folder is set. A folder needs the Archive role on the server; naming it “Archive” is not enough. Both call sites — `archive` and `archiveByDate` — used the same string and both change. All nine catalogues carry the correction rather than falling back to visible English. They need the same native review the rest of the catalogue does; the correction they carry is the same one the English makes. The existing test asserted only that archiving complained. It now checks what the complaint says, since the words were the whole bug. `npm run typecheck`, `npm test` (897 web + 122 server), `npm run build`, `npm run i18n:check` (no new stale or missing keys) all pass. ## Not in this PR Letting ihasmail assign the role itself — a "make this the Archive folder" control in Folders settings — would remove the need for the message entirely. JMAP allows `role` on `Mailbox/set`, but whether Stalwart accepts it is not something I've confirmed against a live server, so it isn't built on the assumption. **Merged** 2026-09-02 as coffey-labs/ihasmail@8e9259638d91 <sub>Rebuilt from: git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.