Skip to content

feat: secure mode#487

Merged
andrinoff merged 4 commits intofloatpane:masterfrom
andrinoff:feat/secure-mode
Apr 11, 2026
Merged

feat: secure mode#487
andrinoff merged 4 commits intofloatpane:masterfrom
andrinoff:feat/secure-mode

Conversation

@andrinoff
Copy link
Copy Markdown
Member

What?

  1. Cache directory separation** — Moved all cache files from ~/.config/matcha/ to ~/.cache/matcha/ with automatic one-time migration for existing installations. Fixes BUG: Cache should not be in ~/.config #385

  2. Email body caching — Email bodies and attachment metadata are now cached to disk per-folder. Opening a previously viewed email loads instantly from cache instead of fetching from the server. Stale entries are pruned when folder emails are refreshed.

  3. Optional password-based encryption — All data (config + caches) can be encrypted with a user-chosen password. Uses AES-256-GCM with Argon2id key derivation. The password is never stored anywhere — the user enters it each session. A sentinel phrase verifies correctness. When enabled, account passwords are stored inside the encrypted config instead of the OS keyring.

Why?

  • Cache files don't belong in ~/.config/ — they're ephemeral and should follow XDG conventions (~/.cache/)
  • Email body fetching was always a network round-trip, even for previously read emails
  • Users who want privacy need a way to protect their email data at rest without relying on OS-level encryption or keyrings

Signed-off-by: drew <me@andrinoff.com>
Signed-off-by: drew <me@andrinoff.com>
@andrinoff andrinoff requested a review from a team as a code owner April 11, 2026 19:31
@github-actions github-actions bot added bug Something isn't working enhancement New feature or request labels Apr 11, 2026
@andrinoff andrinoff removed the bug Something isn't working label Apr 11, 2026
@andrinoff andrinoff changed the title feat: encryption, initial commit feat: secure mode Apr 11, 2026
@github-actions github-actions bot added the bug Something isn't working label Apr 11, 2026
Signed-off-by: drew <me@andrinoff.com>
Signed-off-by: drew <me@andrinoff.com>
@andrinoff andrinoff merged commit 8552d0d into floatpane:master Apr 11, 2026
11 checks passed
@andrinoff andrinoff removed the bug Something isn't working label Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BUG: Cache should not be in ~/.config

1 participant