himalaya/cairn/changes/maildir-custom-keywords/tasks.md
Clément DOUIN 6dd0fb07c0
feat: maildir dovecot keyword reading
Co-authored-by: bobberb <1891836+bobberb@users.noreply.github.com>
Refs: #735
2026-08-16 21:00:34 +02:00

1.3 KiB

cairn change
tasks maildir-custom-keywords

Tasks

  • io-maildir: add MaildirFlags::with_keywords (I/O-free) and resolve an entry's keywords on every client read path, the Maildir now being an argument; carry the result on MaildirFullEntry::flags.
  • src/config.rs: add the maildir.keywords.dovecot and maildir.keywords.header fields, with a local MaildirKeywordHeaderConfig mirror so the config schema keeps compiling under every feature subset.
  • src/maildir/client.rs: convert the mirror into io-maildir's KeywordHeader and set both options on the inner client, covering the CLI and shared construction sites at once.
  • src/maildir/backend.rs: drop parse_filename_flags and flag_from_char, read MaildirFullEntry::flags and map each one onto the shared Flag.
  • Document both options in config.sample.toml and the changelog, the flag set loss included.
  • Test what is left here: the flag mapping both ways, and the envelope carrying what the entry was read with. The keyword resolution itself is tested upstream.
  • Build/test/fmt/clippy, including the reduced feature builds.
  • Fold into cairn/spec/backends.md; log; land.
  • Publish io-maildir 0.3 (prepared), then drop the [patch.crates-io] block standing in for it.
  • himalaya-tui reads entries through the same API: bump it once 0.3 is out.