Describe the tab page, switching tabs off and their order in the handbook

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Paul LütznerandClaude Opus 5.5 committed 2026-10-14 11:53:59 +02:00
1 parent ab15ccc762
commit bdffac32e4
5 files changed
+94 -48

No files matched your search

+21 -17
View File
@@ -42,6 +42,27 @@ for the calendar, a "facture" with its "net à payer" becomes an invoice card, a
vérification" a login-code card. A slashed date such as 04/08/2026 is read day first for a French
reader. No migration.
**Inbox tabs are yours to arrange: switch the built-in ones off, make your own, and put them in
any order.** The new Settings → Categories, in the Mail group, holds everything about the tabs: what
sorts mail into them (the card that used to sit under General), which of the five built-in tabs are
on, the tabs you make yourself, and the order of all of them — dragged, or moved with buttons from a
keyboard or a phone. Primary is always first and always on. A tab you switch off takes no mail: the
header rules, Google's labels and the assistant all file what would have gone there under Primary,
and switching it back on re-sorts and brings it back. A tab of your own is filled by a filter whose
action is **File in category**; mail filed there leaves the built-in tab it would otherwise be in,
and the tab shows while it holds mail, takes drag-and-drop, and counts and badges like the others. A
filter files Gmail mail too, whatever you chose about Google's own sorting. Only mail whose sender
passes authentication is filed, so a forged "your parcel is waiting" never lands in a tab named after
the real carrier; on a mailbox where plMail cannot tell which server vouches for the mail such a
filter files nothing, and the filters page says so. Mail stays in a tab when the filter that put it
there is changed or deleted. The Android app and other JMAP clients can draw the same tabs and move
mail between them (`urn:plmail:params:jmap:inboxtabs`), and a re-sort that moves conversations
between tabs now tells them — a phone used to keep showing a conversation where it had been. Re-sorting
also reads only the mailbox being re-sorted, where it used to sort every user's mail once per account.
**Migration:** one new table, a nullable column each on messages and conversations and two settings
columns on users, added without rewriting any mail. With tabs on, every inbox page and sidebar-counts
poll makes one more indexed read. [#87](https://github.com/karatektus/pl_mail/pull/87), by @Flouss.
## v0.3.5 — 2026-10-13
**Browsers and password managers kept offering your logins in client-secret fields.** Opening
@@ -274,23 +295,6 @@ icon in the app but not in the tab, which kept showing the wax seal. Every page
fixed 192px wax-seal PNG as a second tab icon, and Firefox prefers that to the SVG for a tab. The
PNG is gone from the tab icons; the home-screen and install icons are unchanged. No migration.
[#74](https://github.com/karatektus/pl_mail/pull/74), by @Flouss.
**You can make inbox tabs of your own and have filters fill them.** The five tabs are what plMail
can recognise; a parcel carrier's notices, one client's mail or your receipts are not among them.
Make a tab under Settings → General → Your own tabs, then add a filter whose action is **File in
category**. Mail filed there leaves the built-in tab it would otherwise have been in, and the tab
shows while it holds mail, takes drag-and-drop, and counts and badges like the others. Keeping a
sender's marketing out of the tab is a **None of** group in the filter. Only mail whose sender
passes authentication is filed, so a forged "your parcel is waiting" is not filed into a tab named
after the real carrier; on a mailbox where plMail cannot tell which server vouches for the mail, a
filter like this files nothing, and a filter that does not name the sender files any sender that
authenticates for its own domain — the filters page spells both out. On Gmail accounts it applies only when
you have asked plMail to sort over Google's categories. Nobody's inbox changes until they make a
tab and a filter for it, and other mail apps over JMAP keep seeing the five categories — a
conversation in one of your tabs appears to them in the built-in tab it would otherwise be in.
Migration: one new table and two nullable columns, added without rewriting any mail. Anyone with
tabs switched on now pays one more (indexed, once-per-request) read on each inbox render and each
sidebar-counts poll, even before making a category, and the inbox's own two query-budget ceilings
move by one; the other lists' ceilings are untouched.
**A message with a stray non-UTF-8 byte in the wrong place was never stored.** Over IMAP, a mail
whose text was labelled `us-ascii` but written in Latin-1 — "Grüße" from a mailer nobody configured
+6 -7
View File
@@ -1,4 +1,4 @@
<!-- translated-from: features/filters.md sha1:b4f7b78a3ddcd2f435e6401e64d1a052d6c75036 -->
<!-- translated-from: features/filters.md sha1:446ac513f7e197133acae2b0794ff92ec911c1d4 -->
# Filter
@@ -190,13 +190,12 @@ Was die Aktion ablegt und was nicht:
echten in deinem Sendungen-Tab zu sitzen. Mail, die die Prüfung nicht besteht, wird nicht
abgelegt, und Mail, die plMail nicht prüfen kann, ebenso wenig; siehe „Fallstricke“ dafür, was das
zusichert und was nicht.
- **Bei einem Gmail-Konto nur, wenn du plMail gesagt hast, es solle Google überstimmen.** Sonst
entscheidet Gmails eigene Kategorie, wie überall sonst — der Schalter steht unter **Einstellungen
→ Allgemein → Kategorien → Bei Gmail-Konten**.
- **Auch bei Gmail-Konten.** Googles Kategorien haben Vorrang vor plMails eigener Sortierung,
solange du nichts anderes sagst, aber ein Filter ist eine Anweisung, die du geschrieben hast, und
hat Vorrang vor beiden.
- **Nichts außer einem Tab.** Die Aktion fasst keine Labels an, archiviert nicht, verschiebt nichts
in Spam und markiert nichts als gelesen. Andere Mail-Apps, die sich per JMAP verbinden, sehen
weiterhin die fünf Kategorien, die sie immer gesehen haben: Eine Konversation in deinem
Sendungen-Tab erscheint ihnen in dem eingebauten Tab, in dem sie sonst läge.
in Spam und markiert nichts als gelesen. Die Android-App zeigt deine Tabs; andere Mail-Apps, die
sich per JMAP verbinden, sehen weiterhin die fünf eingebauten Kategorien.
Eine Konversation steckt in **einem** Tab. Sie steckt in deinem, wenn ihre neueste Nachricht dort
abgelegt wurde; eine neuere Nachricht, die kein Filter beansprucht, nimmt sie also wieder heraus,
+34 -9
View File
@@ -1,4 +1,4 @@
<!-- translated-from: features/mail.md sha1:0d798c1e796a2cedb420e231d33fc731bb677977 -->
<!-- translated-from: features/mail.md sha1:d26edbd72da2119a0ed71b4b68fa46ed01e1bcfa -->
# Mail
@@ -94,7 +94,7 @@ Synchronisierung.
### Ein Posteingang ohne Tabs
Wenn dir eine einzige Liste lieber ist, stelle **Tabs im Posteingang** unter **Einstellungen →
Allgemein → Kategorien** auf **Eine Liste**. Der Posteingang zeigt dann alles, was
Kategorien** auf **Eine Liste**. Der Posteingang zeigt dann alles, was
darin liegt, das Neueste zuerst, und die Tabs sind weg — samt allem, was zu ihnen gehört: die
„Neu“-Marken, das Ziehen einer Unterhaltung auf einen Tab und die Erklärung, warum eine Nachricht
dort einsortiert wurde, wo sie ist.
@@ -106,7 +106,7 @@ sagt das, wenn beides zutrifft, und mit **Regeln** hört es auf.
### Auswählen, was deine Mail einsortiert
Beide Voreinstellungen kannst du ändern, unter **Einstellungen → Allgemein → Kategorien**.
Beide Voreinstellungen kannst du ändern, unter **Einstellungen → Kategorien**.
**Sortiert nach** legt fest, wer entscheidet. **Regeln** liest Header — einen Mailinglisten-Header,
einen Abmeldelink, einen Absender, dem du schon geschrieben hast — und antwortet bei derselben
@@ -153,13 +153,37 @@ Es ist begrenzt, weil es pro Nachricht einen Modell-Aufruf kostet — ein paar h
auf einem warmen Host, ein ganzes Postfach Stunden. Und bei der neuesten Mail fällt ein falscher Tab
ohnehin zuerst auf. Von allein fragt nichts noch einmal nach, und das ist auch richtig so.
### Die Tabs anordnen
Die Karte **Tabs** auf derselben Seite listet jeden Tab in der Reihenfolge, in der der Posteingang
sie zeigt. Zieh einen, um ihn zu verschieben, oder nimm die Pfeile daneben, per Tastatur oder am
Handy. **Allgemein** steht immer vorn und ist immer an: Dort öffnet sich der Posteingang, und dort
landet die Mail eines Tabs, den du ausschaltest.
Jeden der anderen vier eingebauten Tabs kannst du **Aus**schalten. Foren ist der übliche Kandidat —
selbst Gmail legt dort kaum etwas ab. Ein ausgeschalteter Tab ist nicht nur versteckt: Es wird nichts
mehr hineinsortiert, weder von den Regeln noch von Googles Labels noch vom Assistenten, und die Mail,
die dort gelandet wäre, liegt in Allgemein. Der Bereich **Details** sagt das bei so einer Nachricht
(„es wäre Foren, und das hast du ausgeschaltet“). Einen Tab aus- oder wieder einzuschalten sortiert
deine vorhandene Mail im Hintergrund neu, genau wie eine Änderung daran, was deine Mail einsortiert;
schaltest du ihn wieder ein, ist seine Mail zurück, weil die Kategorie aus dem neu berechnet wird, was
an jeder Nachricht gespeichert ist. Eine Konversation, die du in einen Tab gezogen hattest, den du
ausschaltest, wird danach wieder einsortiert wie jede andere.
### Eigene Tabs
Die fünf sind das, was plMail zu erkennen weiß. Willst du einen Tab für etwas, das es nicht
erkennen kann — Pakete, Belege, die Mail eines Kunden —, lege ihn unter **Einstellungen →
Allgemein → Deine eigenen Tabs** an: ein Name, sonst nichts. Ein eigener Tab enthält nichts, bis ein
erkennen kann — Pakete, Belege, die Mail eines Kunden —, leg ihn unten auf der Karte **Tabs** unter
**Einstellungen → Kategorien** an: ein Name, sonst nichts. Er steht am Ende der Leiste, bis du ihn
verschiebst. Ein eigener Tab enthält nichts, bis ein
[Filter](filters.md#in-eigene-tabs-ablegen), dessen Aktion **In Kategorie ablegen** ist, Mail
hineinlegt, und wie die anderen erscheint er im Posteingang nur, solange er Mail enthält.
hineinlegt, und wie die anderen erscheint er im Posteingang nur, solange er Mail enthält. Ein Filter
legt auch Gmail-Mail ab: Googles Kategorien haben Vorrang vor plMails eigener Sortierung, solange du
nichts anderes sagst, aber einen Filter hast du selbst geschrieben, und er hat Vorrang vor beiden.
Mail bleibt in deinem Tab, wenn der Filter, der sie dort abgelegt hat, geändert oder gelöscht wird —
so wie ein Label an der Mail bleibt, wenn sein Filter geht. Herausziehen oder den Tab löschen ist der
Weg hinaus.
Eine Konversation steckt in genau einem Tab; Mail, die in einem deiner Tabs abgelegt wird,
verlässt also den eingebauten Tab, in dem sie sonst gelegen hätte — die Benachrichtigung eines
@@ -173,9 +197,10 @@ sagt, dass sie von einem deiner Filter dort abgelegt wurde (oder, nach einem Dra
verschoben hast). Einen Tab umzubenennen benennt ihn überall zugleich um. Einen **zu löschen** legt
seine Mail in den Tab zurück, in dem sie sonst läge; gelöscht wird nichts.
Deine Tabs leben in plMail. Andere Mail-Apps, die sich per JMAP verbinden, und Gmail selbst wissen
nichts von ihnen: Eine Konversation in deinem Sendungen-Tab erscheint ihnen in dem eingebauten Tab,
in dem sie sonst läge.
Die Android-App zeigt deine Tabs wie der Browser — in deiner Reihenfolge, ohne die ausgeschalteten —
und verschiebt Mail zwischen ihnen. Andere Mail-Apps, die sich per JMAP verbinden, sehen, was sie
immer gesehen haben: die fünf eingebauten Kategorien, eine Konversation aus deinem Sendungen-Tab in
dem eingebauten Tab, in dem sie sonst läge. Gmail selbst weiß nichts von deinen Tabs.
### plMail sagen, dass es danebenlag
+4 -6
View File
@@ -168,13 +168,11 @@ What the action will and will not file:
ordinary rules put it, instead of sitting in your Shipping tab beside the real ones. Mail that
fails the check is not filed, and neither is mail plMail cannot check; see "Things that bite" for
what this does and does not guarantee.
- **On a Gmail account, only if you have told plMail to sort over Google.** Otherwise Gmail's own
category decides, as it does everywhere else — the switch is **Settings → General → Categories →
On Gmail accounts**.
- **On Gmail accounts too.** Google's categories outrank plMail's own sorting unless you say
otherwise, but a filter is an instruction you wrote, and it outranks both.
- **Nothing but a tab.** The action does not touch labels, does not archive, does not move anything
to Spam and does not mark anything read. Other mail apps that connect over JMAP keep seeing the
five categories they have always seen: a conversation in your Shipping tab appears to them in the
built-in tab it would otherwise be in.
to Spam and does not mark anything read. The Android app shows your tabs; other mail apps that
connect over JMAP keep seeing the five built-in categories.
A conversation is in **one** tab. It is in yours when its newest message was filed there, so a
newer message no filter claims takes it back out, the way a newer Promotions message takes a
+29 -9
View File
@@ -81,8 +81,8 @@ re-categorisation never needs a resync.
### An inbox without tabs
If you would rather have one list, switch **Inbox tabs** to **One list** under **Settings → General
→ Categories**. The inbox then shows everything in it, newest first, and the tabs are
If you would rather have one list, switch **Inbox tabs** to **One list** under **Settings →
Categories**. The inbox then shows everything in it, newest first, and the tabs are
gone along with what belongs to them: the "new" pills, dragging a conversation onto a tab, and the
panel that explains why a message was filed where it was.
@@ -93,7 +93,7 @@ choosing **Rules** stops it.
### Choosing what sorts your mail
Both of those defaults are yours to change, under **Settings → General → Categories**.
Both of those defaults are yours to change, under **Settings → Categories**.
**Sorted by** picks what decides. **Rules** reads headers — a mailing-list header, an unsubscribe
link, a sender you have written to before — and answers the same way every time for the same
@@ -138,13 +138,32 @@ It is bounded because it costs a model call each — a few hundred is minutes on
mailbox is hours. Recent mail is where a wrong tab gets noticed anyway. Nothing asks again on its
own, and nothing should.
### Arranging the tabs
The **Tabs** card on the same page lists every tab in the order the inbox shows them. Drag one to
move it, or use the arrows beside it from a keyboard or on a phone. **Primary** is always first and
always on: it is where the inbox opens and where mail from a tab you switch off goes.
Any of the other four built-in tabs can be switched **Off**. Forums is the usual candidate — Gmail
itself rarely puts anything there. A tab that is off is not just hidden: nothing sorts into it any
more, not the rules, not Google's labels and not the assistant, and the mail that would have gone
there is in Primary. The **Details** panel says so on such a message ("it would be Forums, which you
switched off"). Switching a tab off or back on re-files the mail you already have, in the
background, the same way changing what sorts your mail does; switching it back on brings its mail
back, because the category is worked out again from what is stored on each message. A conversation
you had dragged into a tab you switch off goes back to being sorted like any other.
### Tabs of your own
The five are what plMail knows how to recognise. If you want a tab for something it cannot — parcels,
receipts, one client's mail — make it under **Settings → General → Your own tabs**: a name, and
nothing else. A tab of your own holds nothing until a [filter](filters.md#filing-into-your-own-tabs)
receipts, one client's mail — add it at the bottom of the **Tabs** card under **Settings →
Categories**: a name, and nothing else. It goes to the end of the strip until you move it. A tab of your own holds nothing until a [filter](filters.md#filing-into-your-own-tabs)
whose action is **File in category** puts mail into it, and like the others it only shows in the
inbox while it holds mail.
inbox while it holds mail. A filter files Gmail mail too: Google's categories outrank plMail's own
sorting unless you say otherwise, but a filter is something you wrote, and it outranks both.
Mail stays in your tab when the filter that put it there is changed or deleted, as a label stays on
mail when its filter goes. Dragging the conversation out, or deleting the tab, is how it leaves.
A conversation is in exactly one tab, so mail filed into yours leaves the built-in tab it would
otherwise have been in — a carrier's notice that used to sit in Promotions is in Shipping now, and
@@ -157,9 +176,10 @@ was filed there by one of your filters (or, after a drag, that you moved it). Re
it everywhere at once. **Deleting** one puts its mail back in the tab it would otherwise be in;
nothing is deleted.
Your tabs live in plMail. Other mail apps that connect over JMAP, and Gmail itself, know nothing of
them: a conversation in your Shipping tab appears to them in the built-in tab it would otherwise be
in.
The Android app shows your tabs as the browser does — in your order, without the ones you switched
off — and moves mail between them. Other mail apps that connect over JMAP see what they always did:
the five built-in categories, with a conversation in your Shipping tab under the built-in tab it
would otherwise be in. Gmail itself knows nothing of your tabs.
### Telling plMail it got one wrong