Files
mesh-catalog/modules/mesh-mail-web
jochen af89a69670 issue 1859: the page shown after an act records nothing, so each act leaves one line
Review round 1 F1 (ADR 0517 §3, §5): a form act went back to the list or the pane, which recorded page
opened or opened again, and the script's refresh did too, so last looked became the last act and opened
counts grew. The redirect after an act carries acted=1 and the refresh an X-Mail-Refresh header; that page
records nothing. The 1860 test now follows each redirect and counts every line, and reminds the task (F2,
1858/AC9), which the store's own integration test also reads back as a date.
2026-10-22 20:26:54 +02:00
..

mesh-mail-web — the mail page

The mail web client (novox/hq ADR 0440), built from mesh-mail's own source. It claims mail-webclient and serves the mail page on its internal name, behind Keycloak sign-in. Since design 63 milestone 1 (issue 1859, ADR 0515) the page opens on the operator's list — today, this week, later, the promises, good to know, read later, handled today and the scam warnings — from mail reading (mail-reading.list and its acts), with the modes Work, Personal and Everything (the trusted setting modes) and a reading pane for one mail and its corrections. The classical list (accounts, folders, search, one mail, write) stays at /all, as All mail. One script and one stylesheet, /static/app.js and /static/app.css, come from the page's own origin.

The code is the package internal/web; cmd/mesh-mail-web is the module's program, the one its manifest builds.

The local run: the page on your own machine

cmd/mail-page-dev serves the same page handlers on 127.0.0.1 alone, to click through the page without the mesh:

cd modules/mesh-mail-web
go run ./cmd/mail-page-dev

and open http://127.0.0.1:8463/. Flags:

  • -addr 127.0.0.1:8463 — where it listens; any address other than 127.0.0.1 is refused.
  • -now 2026-10-22T09:00:00+02:00 — fixes "today" (RFC 3339), to see the list on a chosen day.

What is real and what is a stand-in:

  • Real: every page, form, template, the script and the stylesheet, the content security policy, the host check and the form tokens: internal/web as the module runs it.
  • Stand-ins, in memory, gone when it stops: the mail — about 25 invented mails in two accounts, work and personal, with design 63's mockup people and firms (Sara Claes, Tim Jacobs, Lena Janssens, the Harbor demo, Hostco, Telco) at .example addresses; mail reading — invented entries with tasks, promises and read later in every section, handled, undone, reminded and corrected by the same rules as mesh-mail-reader; the setting modes (Work is work, Personal is personal); and sign-in, always signed in as a stand-in operator.
  • Nothing reaches the mesh: no bus, no database, no Keycloak, no mail server; a send answers an invented id, is waiting once, then says sent, and no mail leaves the machine.

It is not part of the module's build: module.json builds cmd/mesh-mail-web alone.