Specify the writable Dovecot plus-tag filesystem #1

Open
opened 2026-07-22 22:11:47 +00:00 by phg · 0 comments
Owner

Destination

An implementation-ready specification for a Nix-packaged Linux FUSE service that exposes source Maildir messages in flat plus-tag folders through a writable Dovecot namespace, including defined behavior, configuration, operations, and user-documentation requirements.

Notes

  • Use the domain language in CONTEXT.md and consult docs/agents/domain.md.
  • HITL decisions use the grilling and domain-modeling skills, one question at a time.
  • Research must rely on primary sources and preserve cited findings in the repository.
  • One named service instance maps one Source Maildir to one separate Tag namespace; multiple instances are supported.
  • Tags come from Delivered-To and X-Original-To, falling back as a tier to To and Cc. The complete suffix after the first plus is one flat Plus tag; no base recipient is configured.
  • Message state and deletion are global across Message projections. Flag changes and expunge are supported; message-content writes, append, and generated-folder mutation are not.
  • The mailbox hierarchy separator is required per instance. Near-real-time updates are sufficient; initial population completes before the mount becomes available.
  • The flake exposes a package, app, and multi-instance NixOS module. Dovecot integration remains explicit and documented.
  • Acceptance scale: at least 100,000 source messages and 10,000 distinct tags.

Decisions so far

Not yet specified

  • Additional interoperability constraints that may emerge from the Dovecot storage-contract research.

Out of scope

  • Implementing the service; this effort ends at an implementation-ready specification.
  • Non-Linux service modules or portability guarantees beyond a standalone Linux binary.
  • Automatic mutation of the NixOS Dovecot configuration.
  • Filtering tags by a configured base recipient address.
  • Hierarchical interpretation of Plus tags.
  • Appending or moving messages into Tag folders, editing message bytes, or manually creating, renaming, and deleting generated Tag folders.
## Destination An implementation-ready specification for a Nix-packaged Linux FUSE service that exposes source Maildir messages in flat plus-tag folders through a writable Dovecot namespace, including defined behavior, configuration, operations, and user-documentation requirements. ## Notes - Use the domain language in CONTEXT.md and consult docs/agents/domain.md. - HITL decisions use the grilling and domain-modeling skills, one question at a time. - Research must rely on primary sources and preserve cited findings in the repository. - One named service instance maps one Source Maildir to one separate Tag namespace; multiple instances are supported. - Tags come from Delivered-To and X-Original-To, falling back as a tier to To and Cc. The complete suffix after the first plus is one flat Plus tag; no base recipient is configured. - Message state and deletion are global across Message projections. Flag changes and expunge are supported; message-content writes, append, and generated-folder mutation are not. - The mailbox hierarchy separator is required per instance. Near-real-time updates are sufficient; initial population completes before the mount becomes available. - The flake exposes a package, app, and multi-instance NixOS module. Dovecot integration remains explicit and documented. - Acceptance scale: at least 100,000 source messages and 10,000 distinct tags. ## Decisions so far - [Define flat plus-tag encoding and collision rules](https://git.s1q.dev/phg/fuse-mail-dir-by-tag/issues/5#issuecomment-75) — Use canonical readable `%HH` escaping followed by Dovecot modified UTF-7, preserving exact tag identity while rejecting noncanonical and oversized names. - [Validate the writable tag namespace with a concrete prototype](https://git.s1q.dev/phg/fuse-mail-dir-by-tag/issues/6#issuecomment-79) — The four-case Dovecot matrix validates the projection when lookup is canonical-only with managed dentry invalidation and Dovecot ACLs guard structural mailbox writes. ## Not yet specified - Additional interoperability constraints that may emerge from the Dovecot storage-contract research. ## Out of scope - Implementing the service; this effort ends at an implementation-ready specification. - Non-Linux service modules or portability guarantees beyond a standalone Linux binary. - Automatic mutation of the NixOS Dovecot configuration. - Filtering tags by a configured base recipient address. - Hierarchical interpretation of Plus tags. - Appending or moving messages into Tag folders, editing message bytes, or manually creating, renaming, and deleting generated Tag folders.
phg added the
wayfinder:map
label 2026-07-22 22:11:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: phg/fuse-mail-dir-by-tag#1
No description provided.