From b2de803680c166ef12d2336b0aca0af6d9bcc8e9 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Fri, 18 Sep 2026 12:09:12 -0700 Subject: [PATCH] Spec: public ihasmail stays Stalwart-facing; INBUXA work goes to an INBUXA fork of ihasmail --- docs/spec/SPEC.md | 16 ++++++++++++++-- docs/spec/features/masked-email.md | 3 +++ docs/spec/features/multi-tenancy.md | 3 +++ docs/spec/features/undelete.md | 3 +++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/spec/SPEC.md b/docs/spec/SPEC.md index 1a6b5f4..35fa56c 100644 --- a/docs/spec/SPEC.md +++ b/docs/spec/SPEC.md @@ -283,6 +283,16 @@ is written. ## 5. The web front ends +**Which ihasmail.** Public ihasmail stays Stalwart-facing: its code, docs, +site and releases serve Stalwart users, and don't mention INBUXA. Everything +in these specs that changes ihasmail (the contract below, the "ihasmail" +sections of the feature specs, branding) goes into an **INBUXA-specific fork +of ihasmail**, until one product can confidently support both servers. In +this spec, "ihasmail" means that fork unless it says "public ihasmail". +Improvements that also help Stalwart users can still go to public ihasmail on +their own merits, framed for Stalwart. (Decided 2026-09-18. The fork's name and +location are open, §8.) + Decided 2026-09-18: two front ends, each with its own job. - **ihasmail**: webmail, account self-service, and the day-to-day account and @@ -495,11 +505,13 @@ before anything that could prompt that notice happens. 3. Masked addresses already handed out still deliver; archived items still restore. 4. Cutover on the running host, with the Enterprise build kept for rollback. -5. Only then: public repository, announcement, and ihasmail accepting the - fork. +5. Only then: public repository and announcement, with the INBUXA fork of + ihasmail released alongside. Public ihasmail stays Stalwart-facing (§5). ## 8. Open decisions +- The INBUXA fork of ihasmail: its name, its repository, and how it tracks + public ihasmail (§5). - Product name: whether the shipped product is called inbuxa-server or something else inside the INBUXA brand. - The namespace for the fork's own JMAP capabilities. diff --git a/docs/spec/features/masked-email.md b/docs/spec/features/masked-email.md index 5018a13..a5bc247 100644 --- a/docs/spec/features/masked-email.md +++ b/docs/spec/features/masked-email.md @@ -217,6 +217,9 @@ masks. ## ihasmail +These go in the INBUXA fork of ihasmail, not public ihasmail, which stays +Stalwart-facing (SPEC.md §5). + - A **Masked addresses** section in Settings: the list (address, description, site, created, last mail, state), create with an optional description and site, copy, switch between enabled, disabled (to Trash) and deleted, and diff --git a/docs/spec/features/multi-tenancy.md b/docs/spec/features/multi-tenancy.md index 37d7bf3..acd20e3 100644 --- a/docs/spec/features/multi-tenancy.md +++ b/docs/spec/features/multi-tenancy.md @@ -241,6 +241,9 @@ Each requirement has an ID, and tests name the IDs they check. ## ihasmail changes +These go in the INBUXA fork of ihasmail, not public ihasmail, which stays +Stalwart-facing (SPEC.md §5). + - Drop the "Tenants are a Stalwart Enterprise feature" notice and the edition check in front of the Tenants page. Keep `SHOW_ENTERPRISE_NOTICES` for talking to upstream Stalwart. diff --git a/docs/spec/features/undelete.md b/docs/spec/features/undelete.md index 0d5f7f0..bad3e7b 100644 --- a/docs/spec/features/undelete.md +++ b/docs/spec/features/undelete.md @@ -194,6 +194,9 @@ Task type `RestoreArchivedItem`, carrying the `accountId`, the ## ihasmail +These go in the INBUXA fork of ihasmail, not public ihasmail, which stays +Stalwart-facing (SPEC.md §5). + - **Recently deleted**, a view in Mail (and in Files, Calendar and Contacts for their kinds). It lists what's restorable, newest first, with how long is left, searchable, with **Restore** and **Delete forever**. Visible only when