From 166a04f578d31b70ddd70a9a9f40245d67e84cd6 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Mon, 7 Sep 2026 18:05:16 -0700 Subject: [PATCH] Say who owns settings.json, not just where it lives The bullet asserted that ihasmail stays stateless without saying what that is scoped to, which reads as a claim about the file rather than about the process. Name both halves: the format is ihasmail's, the file is the account's. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b340e2c..531aa3c 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ More, including the mobile layout, on [ihasmail.org](https://ihasmail.org/#scree - **Contacts** — JMAP Contacts / JSContact: address books, groups, full editor, vCard import/export - **Files** — JMAP FileNode: browse, upload, download, rename, move, delete - **Signature checking** — S/MIME signed mail is verified as you read it, and the signer is remembered: a later message from the same address signed by somebody else is called out loudly. No certificate authority is involved and none is bundled, so ihasmail never claims more than it can show — see [Checking a signature](FEATURES.md#checking-a-signature) -- **Settings that follow the account**, not the browser — kept in a `settings.json` in the account's own JMAP Files, so ihasmail itself stays stateless +- **Settings that follow the account**, not the browser — kept in a `settings.json` in the account's own JMAP Files. The format is ihasmail's; the file is the account's, under its quota, and outlives any container that read it. ihasmail holds none of it - **Runs read-only** — one optional write path, and with it switched off the container needs no volume and no writable root. `IMMUTABLE=1` is checked at startup rather than trusted, so a half-applied switch refuses to boot instead of failing quietly. See [Running immutably](#running-immutably) - **Nine new interface languages** — German, Spanish, French, Dutch, Portuguese (Brazil), Russian, Ukrainian, Simplified Chinese and Japanese, alongside English and separate from the date-and-time locale. Every one is marked **Beta**: they were made by AI and no native speaker has read them yet, which Settings says plainly, with a link for reporting anything wrong - **Twelve themes** — Classic and ihasmail's own, plus Catppuccin, Dracula, Gruvbox, Rosé Pine, Tokyo Night, Solarized, Ayu, Kanagawa, Everforest and Primer, each with the light and dark half its own project publishes. Palette and light-or-dark are separate choices, and the accent colour still sits on top of any of them. Only published colour values are used, taken from each project's own repository; the shades between them are derived and every text colour is measured against the surface it sits on, so a palette that would not meet the contrast this app claims is not written at all — see [Themes](FEATURES.md#themes)