❌

Normale weergave

v1.7.1 - Cross-Account Mail Move Fix

Door: rathlinus
22 Mei 2026 om 12:27

1.7.1 (2026-05-22)

Features

  • Admin: Expose PWA branding fields in the admin Branding tab
  • Pro: Hide empty-state placeholder and collapse the viewer pane in Pro mode so the mail list fills the space

Fixes

  • Mail: Preserve inline images when replying (#163)
  • Filters: Use the canonical INBOX mailbox in Sieve filter paths (#313)
  • Mail: Resolve destination account id to the local namespace on cross-account mailbox drop

  •  

v1.7.0 - "Pro" Mode, Sandboxed Plugins, and Marketplace Update Flow

Door: rathlinus
22 Mei 2026 om 00:58

1.7.0 (2026-05-21)

New: Pro mode (experimental)

Opt-in tabbed multi-pane interface for power users. Open multiple mail, calendar, contacts, and file views side-by-side, drag tabs to reorder or split panes at the edges, and work across all logged-in accounts in one shell, cross-account email moves, a unified inbox with search, account-split calendar/contacts/files sidebars, and a per-account "From" dropdown in the composer. Enable from Settings β†’ Appearance; the proInterface preference is per-device and not synced.

Pro mode is experimental and we need your feedback to shape it. If something feels off, breaks, or is missing, please don't hesitate to open an issue or start a discussion on GitHub!

Breaking Changes

  • Plugins: Plugins now run inside a null-origin iframe sandbox and talk to the host over a postMessage RPC bridge. The in-process plugin runtime is gone; the bundled in-tree plugins have been migrated. Third-party plugins built against the old in-process API need to be ported to the sandboxed runtime.
  • Plugins: Server-managed bundles must be Ed25519-signed by the host and approved by an admin before they load. The host public key is served from /api/plugin-signing-pubkey and each bundle response carries the signature in the X-Bundle-Signature header. User-uploaded bundles still load unsigned, but managed marketplace and dev-folder bundles do not.
  • Plugins: bundleHash is now a full SHA-256 over the bundle. Legacy short hashes are migrated on first load; any out-of-band tooling that pinned the old hash format needs to be updated.

Features

  • Pro: Tabbed shell with drag-to-reorder, drag-to-edge to split, side-by-side panes, and pane-aware responsive layout with a scoped sidebar overlay
  • Pro: Auto-redirect to the Pro shell when Pro mode is on; proInterface is kept per-device instead of syncing
  • Pro: Multi-account mail sidebar with client routing and a per-account mailbox cache
  • Pro: Unified mailbox always visible, with full-text search
  • Pro: Cross-account email moves
  • Pro: Multi-account calendar sidebar split into owned vs shared per account
  • Pro: Multi-account contacts and a cross-account file picker
  • Pro: Composer From dropdown grouped by account
  • Plugins: Per-plugin admin approval workflow with Ed25519 bundle signing verified on load
  • Plugins: Marketplace update flow for installed plugins and themes
  • Setup: Allow the setup wizard over plain HTTP with a dismissable warning gate
  • Setup: Warn when the JMAP URL points at a local-only host
  • Account: List and reorder logged-in accounts from settings (#282)
  • Mail: Mobile handoff page with JMAP authentication verification for cross-device OAuth
  • Mail: Pluggable reply/forward quote header (#295)
  • Calendar: Support multiple flexible event reminders (#170)
  • Admin: Expose PWA, app identity, and extension directory keys in the JSON config (#312)
  • Admin: Surface OAuth scope settings and wire up orphaned admin policy gates

Security

  • Plugins: Pin parent origin in the iframe bridge to block cross-frame postMessage
  • Plugins: Ignore plugin-supplied target in ui.openExternalUrl to block host-frame hijack
  • Plugins: Validate plugin/theme id in marketplace install to block path traversal
  • Plugins: Prevent plugin config from leaking to non-admin users
  • Admin: Gate admin routes against cross-origin CSRF
  • Auth: Bind Stalwart auth context to the credential, not the cookie-claimed username
  • Auth: Validate OAuth discovery endpoints against SSRF
  • Mail: Tighten HTML sanitization at plain-text email, signature, and i18n render sites
  • Mail: Block script-bearing MIME types from inline attachment preview
  • Mail: Escape print-window fields and re-sanitize body to block XSS
  • S/MIME: Stop persisting passphrases in sessionStorage
  • API: Correct regex for valid API POST path validation

Fixes

  • Mail: Serialize draft autosave with send to stop replies stalling in Drafts (#303)
  • Mail: Omit empty cc/bcc from Email/set so the server does not emit a bare Cc: header (#301)
  • Mobile: Allow adding contacts from the mail recipient popover (#306)
  • Mobile: Prevent dual-scroll and use full width for mail content
  • Mobile: OAuth handoff flow
  • Calendar: Scope iCal subscriptions per JMAP account; fix refresh and clear
  • Calendar: iCal subscription refresh, rollback, and URL normalization
  • Calendar: Show avatars in the calendar/address book sharing menu
  • Contacts: Normalize malformed contact photo data URIs (#307)
  • Identity: Clear identity signature fields when emptied
  • Identity: Show size cap on identity signature fields
  • Identity: Allow table-based layouts in the HTML signature sanitizer
  • Plugins: Load globals.css and Geist font in the plugin sandbox iframe
  • Plugins: Sync plugin slot iframe height with reported content height
  • Plugins: Use plugin slot offer snapshots for useSyncExternalStore
  • Plugins: Trust the directory version on marketplace install and update
  • Filters: Prevent duplication of Bulwark rules with literal braces in values
  • Setup: Defer setup wizard HTTP detection to avoid hydration mismatch
  • Routing: Anchor unmatched URLs into main so 404 renders
  • Routing: Respect server-resolved locale on first visit (#309)
  • Routing: Split app into (main)/(sandbox) route groups so the plugin iframe hydrates properly
  • Files: Stop parent directory navigation from jumping to root
  • Build: Stop pulling node:dns into the client bundle via OAuth discovery
  • UI: Toggle recipient popover when clicking the name again
  • UI: Remove white halo around photo avatars

i18n

  • Add missing translation keys across 16 locales

  •  

BookStack v26.03.5

21 Mei 2026 om 15:02

Security Release

This is a security release to address a brute-force based vulnerability related to multi-factor authentication, and to update project libraries to help avoid potential vulnerabilities that have been reported in those.

Upgrade is generally advised, but strongly so where multi-factor authentication is used & considered as a critical layer of defense.

Thanks to Stephen O. / Sakusen (Codeberg, Website) for responsibly reporting these issues.

Full List of Changes

  • Updated PHP package versions.
  • Updated MFA verification routes with rate limiting.

  •  

FreshRSS 1.29.1

Door: Alkarex
20 Mei 2026 om 19:58

This is bug-fix release for 1.29.0.

Feature highlights✨:

  • Accept .txt import of feed URLs in additional to e.g. OPML
  • New CLI for automatic periodic SQLite export with retention
  • More feed info: last received date, publication date

Bug fixes highlights πŸ›:

  • Fix cookies with some browsers
  • Fix search in shared user queries with empty results

UI highlights πŸ–Ό:

  • Improve Web browsers compatibility

This release has been made by @Alkarex, @Frenzie, @IEEE-754, @Inverle, @McFev, @ciro-mota, @cweiske, @polybjorn and newcomer @mzl2233

Full changelog:

  • Features
    • Accept .txt import of feed URLs in additional to e.g. OPML #8818, #8837
    • New CLI for automatic periodic SQLite export with retention #8819
    • More feed info: last received date, publication date #8799
  • Bug fixing
    • Fix cookies with some browsers #8867
    • Fix search in shared user queries with empty results #8863
    • Fix XML errors with loading invalid OPML in lib_opml library #8652, #8853,
      lib_opml#48, lib_opml#51
    • Fix ensure maximum number of feeds also with Dynamic OPML #8832
    • Fix click mark as read #8817
  • UI
    • Improve browser compatibility to keep mobile navigation at the bottom #8833
    • Improve support of older/simpler Web browsers/engines such as SeaMonkey #8810,
      #8811, #8813,
    • Improve Swage theme #8842
    • Rename Nord theme to Nord #8805
    • Replace GIF spinner by CSS spinner #8804, #8812
    • Various UI and style improvements: #8800, #8816,
  • I18n
    • Improve Brazilian Portuguese #8846
    • Improve Dutch #8868
    • Improve German #8840
    • Improve Polish #8854
    • Improve Russian #8861
    • Improve Traditional Chinese #8849
  • Misc.

  •  

v5.46.1

20 Mei 2026 om 11:15

5.46.1 (2026-05-20)

πŸ”₯ Bug fix

  • FK violation publishing self-relation parent & child in one release (#26147)
  • move session-manager jwt check from register to bootstrap (#25412)
  • admin: remove year 2041 limit on date/datetime pickers (#26209)
  • content-manager: fix getMainField context for component list/edit configure views (#25509, #26124)
  • database: respect nested sort in populate for join-table relations (#26361)
  • graphql: inherit publication state for i18n localizations (#22163)
  • migrations: guard inverseJoinColumn access in discard-drafts migration (#26331)
  • review-workflows: add assignee and review stage to list view filters (#26171)
  • review-workflows: message when single stage (#26229)
  • upgrade: use pnpm install when project prefers pnpm (#26246)
  • upgrade: align scoped @strapi packages in devDependencies (#26248)

βš™οΈ Chore

  • sonarcloud security review (#25949)
  • deps: bump ip-address from 10.1.0 to 10.2.0 (#26222)
  • deps: bump @protobufjs/utf8 from 1.1.0 to 1.1.1 (#26311)
  • deps: bump axios from 1.15.1 to 1.15.2 (#26177)
  • deps: bump fast-xml-builder from 1.1.4 to 1.2.0 (#26253)
  • deps: bump fast-uri from 3.0.1 to 3.1.2 (#26254)
  • eslint: migrate .eslintrc + .eslintignore to .eslintrc.cjs (#26216)

🚨 Security

  • deps: upgrade multiple dependencies (#26326)

❀️ Thank You

  •  

v1.19.4

Door: kmendell
18 Mei 2026 om 04:27

Bug fixes

Other

Full Changelog: v1.19.3...v1.19.4

  •  

v1.6.7 - Master-User Impersonation, vCard 4.0 Contact Support, and Multi-Account Push

Door: rathlinus
17 Mei 2026 om 18:29

1.6.7 (2026-05-17)

Features

  • Contacts: vCard 4.0 parsing and generation support
  • Admin: Master-user impersonation route with app-top-banner plugin slot rendered on every authenticated page
  • Admin: Allow admin password overwrite during setup recovery
  • Setup: HTTPS requirement warning in the setup wizard
  • Mobile: Show details toggle and expandable panel for sender info

Performance

  • Calendar: Speed up calendar invitation banner load

Security

  • Mail: Sandbox thread email HTML in srcDoc iframe with a CSP <meta> tag
  • Admin: Redact sensitive config secrets from the admin API response
  • Admin: Make impersonation cookies session-only

Fixes

  • Auth: Read OAUTH_SCOPES at runtime instead of build time
  • Auth: Use a relative Location header in redirects
  • Auth: Adopt orphan session cookie on first SPA load
  • Mail: Per-account push subscriptions so multi-account notifications work (#298)
  • Mail: Close attachment preview when clicking outside the content area
  • Mail: Pin quick reply to the bottom for short emails
  • Mail: Show "no body content" instead of an infinite skeleton for bodyless emails
  • Mail: Show contact popup when clicking the sender name in the email header
  • Mail: Prevent long addresses from overflowing email details columns (#297)
  • Mobile: Align quick reply with the mobile bottom toolbar
  • Mobile: Respect safe-area insets on mobile bottom bars
  • Mobile: Pad safe-area-inset-top
  • UI: Apply dark background to the email content wrapper in dark mode
  • UI: Improve dark mode background colors in the email viewer
  • UI: Add viewport export with initialScale: 1
  • UI: Strip the Stalwart master-user % suffix from the displayed account
  • Plugins: Warn and block install when the app version is below the plugin's minAppVersion
  • Plugins: Register app-top-banner in plugin-store SLOT_NAMES
  • Plugins: Carry configSchema + settingsSchema through marketplace install
  • Build: Add outputFileTracingExcludes to reduce Turbopack memory tracing

i18n

  • Add missing translation keys across 16 locales

  •  

v1.19.2

Door: kmendell
17 Mei 2026 om 07:13

Bug fixes

Performance improvements

Dependencies

  • bump to go 1.26.3(8e819fe by @kmendell)
  • bump all go deps(6817e70 by @kmendell)
  • bump the npm_and_yarn group across 1 directory with 2 updates (#2600 by @dependabot[bot])
  • bump svelte from 5.55.5 to 5.55.7 in the npm_and_yarn group across 1 directory (#2601 by @dependabot[bot])
  • bump github.com/danielgtaylor/huma/v2 from 2.37.3 to 2.38.0 in /backend (#2612 by @dependabot[bot])
  • bump github.com/docker/cli from 29.4.3+incompatible to 29.5.0+incompatible in /backend (#2613 by @dependabot[bot])
  • bump google.golang.org/grpc from 1.81.0 to 1.81.1 in /backend (#2610 by @dependabot[bot])
  • bump prettier-plugin-svelte from 3.5.1 to 3.5.2 (#2618 by @dependabot[bot])

Other

Full Changelog: v1.19.1...v1.19.2

  •  

v1.6.6 - Cross-Device Onboarding Sync, Distinct Folder Icons, and Richer HTML Signatures

Door: rathlinus
15 Mei 2026 om 15:23

1.6.6 (2026-05-15)

Features

  • Mail: Sync onboarding completion state across devices so the welcome flow only runs once per account (#285)
  • Mail: Distinct icons for Shared, Important, Memos, Scheduled, and Snoozed folders (#288)
  • Compose: Raise HTML identity signature length cap to 50,000 characters
  • Compose: Allow <img> tags in HTML identity signatures for inline logos and banners

Fixes

  • Files: Hide Files settings entry and sidebar nav when the filesEnabled policy is off (#291)
  • Admin: Honor the cookieSameSite admin config override instead of always defaulting (#284)
  • UI: Standardize punctuation in tooltips and inline comments across locales

i18n

  • Add Danish localization
  • Clean up Danish locale wiring and sort the language picker alphabetically (#286)

  •  

5.3.5

14 Mei 2026 om 23:07

Note

UpSnap is, and always will be, free and open source software.

If someone is asking you to pay money for access to UpSnap binaries, source code, or licenses, you are being scammed.

The official and only trusted source for UpSnap is this repository (and its linked releases).
Do not pay third parties for something that is provided here for free.

Changelog

Bug fixes

  •  

v5.46.0

13 Mei 2026 om 15:46

5.46.0 (2026-05-13)

πŸš€ New feature

  • close button for the trial banner (3fd5f9fd56)
  • adding collapse button (901465b1e2)
  • updating design after Claude comments (d1cb08f76e)
  • getting that button to stick while the banner doesn't (f04fe97a75)
  • add preview support to images and videos (#25216)
  • content-manager: add possibility to customize blocks (#22063)
  • email: replace sendmail package with nodemailer in provider (#25893)

πŸ”₯ Bug fix

  • making button float better (c5396f1c18)
  • using isValid & adding translations (59498861f7)
  • auto-expand and scroll to newly added dynamic zone components (#26044)
  • keep draft link on x-to-one relations non-dp to dp (#26179)
  • long component names overflow in dynamic zone picker (#26010)
  • remove await from several telemetry calls to prevent blocking (#24743)
  • admin: resolve prism is not defined (#25660)
  • admin: handle 204 no-content response in fetch client (#25416)
  • content-manager: local-storage was not updated if filters were removed (#26240)
  • content-manager: skip draft/modified count queries for non-D&P content types (#26049)
  • core/admin: admin and content api tokens retro-compatibility (#26313)
  • core/core: validation uses injected strapi instance (#26211)
  • database: morph typeField wins over same-name fields in populate (#26120)
  • database: append primary key to ORDER BY for paginated selects (#26032)
  • db: deterministic schema hash by sorting tables before hashing (#26202)
  • graphql: isolate root query args per root field (#26178)
  • test: check button attribute differently (#26212)
  • utils: throw ValidationError for all invalid query params (not just sort) (#25894)

βš™οΈ Chore

  • adding translations for the banner (e696d94627)
  • turkish translations for cloud (#26223)
  • .github: bump CI runners to node 24 (#26231)
  • ai: ignore .agents/local-skills and .agents/local-state for local only harness (#26276)
  • deps: bump eslint-plugin-react (#26227)
  • deps: migrate msw 1.x β†’ 2.13.4 across admin test suites (#26065)
  • deps: upgrade typedoc to 0.28.19 and related plugins (#26082)
  • security: mark Strapi v4 as End of Life (#26162)
  • upload: add concurrentUploadSize config (#26053)

❀️ Thank You

  •  

v1.6.5 - mailto:/webcal: Protocol Handler, Shared Account Avatars, and Non-Latin Subject Rendering

Door: rathlinus
13 Mei 2026 om 14:51

1.6.5 (2026-05-13)

Features

  • Protocol: Register as the system handler for mailto: and webcal: links from a new protocol handler settings page
  • Protocol: Account picker for protocol links when multiple accounts are connected
  • Protocol: Import-or-subscribe choice for detected webcal calendars
  • Protocol: Reuse the open PWA/session for mailto: links instead of always opening a new tab
  • UI: Route account avatars through the shared Avatar component for consistent fallbacks (#278)

Fixes

  • Calendar: Support HTTP basic auth in iCal subscription URLs (#275)
  • Admin: Honor admin-uploaded favicon in root metadata (#274)
  • Admin: Honor NEXT_PUBLIC_BASE_PATH in admin sidebar nav links (#271)
  • UI: Broaden body font stack so Thai (and other non-Latin scripts) render correctly in subjects, sender names, and other chrome (#265)

  •  

v1.19.1

Door: kmendell
13 Mei 2026 om 08:07

Bug fixes

Other

Full Changelog: v1.19.0...v1.19.1

  •  

v1.19.0

Door: kmendell
11 Mei 2026 om 20:29

New features

CLI - New features

Bug fixes

  • git sync file size limitations not being respected (#2427 by @kmendell)
  • default secret and config UID/GID to "0" to prevent parsing errors (#2422 by @SplinterHead)
  • resolve project status using effective compose project name (#2198 by @GiulioSavini)
  • block compose self-redeploy when arcane manages itself (#2404 by @GiulioSavini)
  • scope named volume sources to stack in service mounts (#2430 by @GiulioSavini)
  • card overview headers missaligned on layout(5fd35e4 by @kmendell)
  • include files not created with new projects (#2463 by @kmendell)
  • tables are laggy when lots of rows are rendered (#2468 by @kmendell)
  • buildkit not using the image exporter (#2469 by @kmendell)
  • swarm scale mode and replicas fixes (#2470 by @kmendell)
  • prevent slog-gin panic on tunneled requests (#2467 by @lohrbini)
  • don't clear real image records when marking ref-aliases up to date (#2474 by @GiulioSavini)
  • restrict git repository management to admins and block credential reuse on URL changes (#2504 by @kmendell)
  • show loading state immediately on swarm service actions (#2475 by @GiulioSavini)
  • allow mtls when tls is not managed by arcane (#2503 by @kmendell)
  • skip excluded containers when collecting images for auto-update pull (#2473 by @GiulioSavini)
  • remove double verification of mTLS certificates (#2505 by @kmendell)
  • image update checks fail on mobile due to incorrect id (#2506 by @kmendell)
  • add registry.gitlab.com to trustedAuthDelegations (#2507 by @kmendell)
  • accent color allows non color values to be saved (#2513 by @kmendell)
  • handle directory-sync file paths that Docker previously created as directories (#2508 by @kmendell)
  • improve login form autofill compatibility (#2514 by @MikeO7)
  • use in-memory trivy DB backend on 32-bit architectures to prevent mmap allocation failure (#2529 by @kmendell)
  • allow force removing of images (#2530 by @kmendell)
  • set docker config directory to avoid errors around config.json (#2557 by @kmendell)
  • remove double loading of env overides and settings, use in memory cache instead (#2562 by @kmendell)
  • show compose-labeled image updates in project updates (#2563 by @kmendell)
  • gotify token decryption missing from auto heal and prune notifications(e28c4a4 by @kmendell)
  • regenerate apikey dialog shows behind sheet(b7a8ec7 by @kmendell)
  • always use dockerhub credentials if available (#2567 by @kmendell)
  • agent api token fallbacks and guards (#2568 by @kmendell)

CLI - Bug fixes

Dependencies

  • bump github.com/moby/moby/client from 0.4.0 to 0.4.1 in /types (#2441 by @dependabot[bot])
  • bump github.com/docker/cli from 29.4.0+incompatible to 29.4.1+incompatible in /backend (#2443 by @dependabot[bot])
  • bump github.com/getarcaneapp/arcane/types from 1.17.4 to 1.18.1 in /cli (#2444 by @dependabot[bot])
  • bump github.com/moby/moby/api from 1.54.1 to 1.54.2 in /backend (#2445 by @dependabot[bot])
  • bump prettier from 3.8.2 to 3.8.3 (#2449 by @dependabot[bot])
  • migrate to pnpm v11.0.0(4a94c5c by @kmendell)
  • upgrade frontend dependencies (#2461 by @kmendell)
  • bump github.com/docker/cli from 29.4.1+incompatible to 29.4.2+incompatible in /backend (#2490 by @dependabot[bot])
  • bump github.com/samber/slog-gin from 1.21.0 to 1.21.1 in /backend (#2481 by @dependabot[bot])
  • bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.57.1 to 1.57.2 in /backend (#2489 by @dependabot[bot])
  • bump @tanstack/svelte-query from 6.1.24 to 6.1.26 (#2485 by @dependabot[bot])
  • bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.15 to 1.19.16 in /backend (#2487 by @dependabot[bot])
  • bump ghcr.io/devcontainers/features/node from 1.7.1 to 2.0.0 (#2480 by @dependabot[bot])
  • bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1 in /backend (#2482 by @dependabot[bot])
  • bump pnpm to 11.0.6(0e47b40 by @kmendell)
  • bump github.com/aws/aws-sdk-go-v2/config from 1.32.16 to 1.32.17 in /backend (#2536 by @dependabot[bot])
  • bump github.com/shirou/gopsutil/v4 from 4.26.3 to 4.26.4 in /backend (#2542 by @dependabot[bot])
  • bump golang.org/x/text from 0.36.0 to 0.37.0 in /backend (#2540 by @dependabot[bot])
  • bump github.com/charmbracelet/fang from 0.4.4 to 1.0.0 in /cli (#2532 by @dependabot[bot])
  • bump @codemirror/view from 6.41.1 to 6.42.1 (#2535 by @dependabot[bot])
  • bump golang.org/x/time from 0.14.0 to 0.15.0 in /backend (#2538 by @dependabot[bot])
  • bump react-dom from 19.2.5 to 19.2.6 (#2541 by @dependabot[bot])
  • bump github.com/in-toto/in-toto-golang from 0.10.0 to 0.11.0 in /backend in the go_modules group across 1 directory (#2544 by @dependabot[bot])
  • bump sigstore/cosign-installer from 4.1.1 to 4.1.2 (#2533 by @dependabot[bot])
  • bump react-email from 6.0.1 to 6.1.1 (#2537 by @dependabot[bot])
  • bump golang.org/x/net from 0.53.0 to 0.54.0 in /backend (#2539 by @dependabot[bot])
  • bump pnpm to v11.0.9(5f43b7e by @kmendell)
  • remove react-email/preview-server(685f9c3 by @kmendell)
  • bump github.com/nicholas-fedor/shoutrrr from 0.14.3 to 0.15.0 in /backend (#2547 by @dependabot[bot])
  • bump github.com/docker/cli from 29.4.2+incompatible to 29.4.3+incompatible in /backend (#2548 by @dependabot[bot])
  • bump golang.org/x/mod from 0.35.0 to 0.36.0 in /backend (#2550 by @dependabot[bot])
  • bump google.golang.org/grpc from 1.80.0 to 1.81.0 in /backend (#2551 by @dependabot[bot])
  • bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 in /backend (#2553 by @dependabot[bot])
  • bump @tanstack/svelte-query from 6.1.26 to 6.1.28 (#2549 by @dependabot[bot])

Other

Full Changelog: v1.18.1...v1.19.0

  •  

v1.6.4 - Web Setup Wizard, From Override & Catch-All Replies, and Reading Pane at Bottom

Door: rathlinus
11 Mei 2026 om 20:24

1.6.4 (2026-05-11)

New: Web Setup Wizard

First-launch web setup wizard. New installs no longer need to hand-edit .env.local - point a browser at the container and the wizard probes the JMAP server(s), configures OAuth/OIDC, generates the session secret, accepts branding uploads, and provisions the initial admin password. Admin storage is now split into ADMIN_CONFIG_DIR (operator-authored, mountable read-only after setup) and ADMIN_STATE_DIR (runtime audit log and login timestamps); the legacy ADMIN_DATA_DIR keeps working for existing installs.

Features

  • Setup: Web setup wizard with multi-step flow: Server, Auth, Security, Logging, Branding, Review, Admin
  • Setup: Admin config/state directory split with optional ADMIN_CONFIG_READONLY for immutable deployments (#226)
  • Setup: File uploads on the wizard branding step
  • Setup: Redesigned review step with grouped summary and an advanced toggle for the full config
  • Setup: Require explicit confirmation when JMAP probe finds no session
  • Mail: Drag attachments out of the viewer to the local file system (#267)
  • Mail: Reading Pane at Bottom mail layout (#262)
  • Mail: Configurable signature position – above or below quoted text (#266)
  • Mail: Signature position is now searchable from the email behavior settings
  • Mail: Show avatar in Focused list for compact density and above
  • Mail: Align Focused list preview with other layout previews
  • Compose: From-header override in the composer with catch-all auto-reply, replies to an alias on a domain you own pre-fill the alias as the sender even when it isn't a configured identity (#246)

Performance

  • Mail: Prefetch initial email data on login
  • Auth: Parallelize login round-trips and drop redundant JMAP re-verify

Fixes

  • Auth: Skip upstream JMAP reverify for trusted URLs (#237)
  • Auth: Show account identity in the switcher header instead of the sending alias
  • Compose: Fall back to the primary identity signature on reply
  • Setup: Drop redundant first-login banner about removing ADMIN_PASSWORD (#222)
  • UI: Consistent notice cards for server probe results

i18n

  • Add missing translation keys across 15 locales

  •  
❌