A date format stored by 8.46/8.47 breaks date handling 71ff933ba
Regional settings saved in 8.46/8.47 persisted the date format with CLDR's standalone month, e.g. LL/dd/yyyy. Tempo reads the L family as its own presets and rejects such a pattern
core/locale now rewrites L to M where it derives the locale data and repairs the stored value on startup
configure() is retried without the custom formats, so a bad pattern cannot cost the timezone again
A forged message showed the sender's verified badge ff998a75c
Fixed a message that fails sender authentication showing the verified-sender badge of the domain it claims to come from, which is the case the badge exists to distinguish
A quoted literal in a custom format is read as a preset token 6af8057f2
A custom date or time format containing quoted literal text, e.g. "MM/dd/yyyy 'LT'", was rejected as though the literal were a format token, which also discarded the configured locale, timezone and week numbering
The check now ignores quoted text, which CLDR treats as literal
BIMI logos never appeared for senders on a long TLD e752c9eb2
Verified brand logos (BIMI) now appear for senders whose domain ends in a TLD longer than six letters, such as .technology, .photography or .international, and for internationalized TLDs. Previously the logo was silently never shown for any of them.
BIMI logos never appeared with Group by conversation enabled 4992db8ab
Fixed verified sender logos (BIMI) not appearing in the message list while "Group by conversation" is enabled
Ctrl+Enter saves without the value of the field it was pressed in 30416cc97
Deleting the calendar you have open reports "Such a folder does not exist" b4ddc8d56
Dialogs opened from a mobile window lose their typed input 1b1742a1d
Keep the Send button visible after adding a recipient on smartphones (ASB-253)
Resolve invalid user timezones from a single source of truth 44232dfce
An invalid timezone in a user's configuration falls back to the local timezone instead of leaving dates unresolved
An unsupported favorite timezone no longer breaks the calendar settings pane
Signature designer e2e test fails when the middleware normalizes tel links 66ad49e2e
The setup wizard moves focus away while you type b7615454a
Use the right role for Drive's storage entries in Quick Settings 827670cbf
"Add storage account" and "Manage Shares" in Drive's Quick Settings are no longer announced as tree items; they carry the button role like every other action in the panel, which also fixes the axe violation in the Drive a11y tests
The "display name" is not used to display names (ASB-246)
Deployments that maintain display names centrally - an oxDisplayName mapped from LDAP, for example - can now have those names shown throughout App Suite, instead of names composed from first and last name
Switched on per deployment with the "preferDisplayName" feature toggle, so everyone in an organization sees the same names; the name format setting then only decides how contacts without a display name are composed
Contact lists, address pickers and search are ordered by the display name as well, so what is shown and what a list is sorted by stay in step
Compose font sizes use points again, instead of pixels c491a3dab
Compose font sizes are shown in points again. The switch to pixels in 8.51 came out of making the font settings clearer, but we underestimated how much people go by the number rather than the unit. The familiar sizes exist in both lists, so the same number produced noticeably smaller text than before
Existing font size settings are converted back automatically. The earlier conversion had merged some sizes into one, so where the original is no longer recoverable the closest match is restored and anyone who had picked a specific size may want to confirm it once
The list of sizes gained 9pt, which closes the wide gap between 8pt and 10pt, plus 48pt and 72pt for larger headlines
A phone set to "Use system setting" loses its theme e2e8efb32
Fixed the theme on phones set to "Use system setting", which lost its colors and left the browser's title bar white while a dark theme was shown
Fixed custom themes not being applied on phones
Accent color handling in the dark theme and auto dark mode a35bb1413
A dark theme's accent color, including one set by configuration, now applies when auto dark mode switches to it, instead of the light theme's
An accent color the user picked still survives that switch, unless the theme fixes its own
Turning auto dark mode on or off no longer resets the accent color to the theme's default
Selecting several rows in dark mode now shows them all in the accent color, rather than the focused one in color and the rest in grey
Hovering a selected row in dark mode now lightens it slightly instead of making it darker than the rows around it
Complete the background ramp so dark-mode fixes can land 5bb854837
Hovering a selected row in dark mode no longer flashes a near-white background
Dark mode in the account services list and the scheduling view 12ddc4aae
The service names and generic icons in the "Add storage account" dialog are legible in dark mode again, instead of being drawn light on white
Appointments in the scheduling view now use the same colors as the calendar shows them in, in both light and dark appearance
The grid lines, separators and weekend labels in the scheduling view follow the theme, instead of a fixed set that left the faintest line the most prominent one in dark mode and the strongest one invisible
Day labels and the hour scale in the scheduling view 1853c1274
The day labels in the scheduling view no longer lose the space between the weekday and the date after navigating to another week
The hour scale in the scheduling view reads "8 AM" rather than "08:00 AM" in locales that use a 12-hour clock
E2e test "Create recurring appointments with one participant" (broken on certain dates)
Give checkboxes and radios one set of colours across the themes fd2d1ecb8
Unchecked checkboxes are no longer drawn as a white square regardless of the theme, which was most visible in dark mode
Checkboxes in mail, calendar and Drive now match the ones in contacts and tasks, and themes can restyle both together
Missing and hard-to-see focus indicators, mostly in dark mode 92bccb4b4
Fixed several focus glitches: button labels that were nearly invisible on hover in dark mode, focus rings showing up after a mouse click, and weekday buttons in the calendar side panel with no visible keyboard focus
The keyboard focus indicator now follows the theme's accent color instead of the browser's default blue
Task status badges glare in dark mode, and overdue is not a warning 22db7deda
Task status badges no longer glare in dark mode
Overdue tasks are marked in red rather than pink
Task titles break in list view, sidepanel, and on mobile when show in calendars (ASB-141)
Fixed task titles breaking across two lines in the calendar list view, on mobile, and in the calendar sidepanel when tasks are shown in the calendar
Theme the checkboxes in the IMAP subscription dialog 90e490133
The checkboxes in the IMAP subscription dialog now follow the chosen accent color and the dark theme, instead of being drawn by the browser
Very long attendee names cause the calendar edit window to scroll (ASB-267)
A configured SystemV timezone is not resolved (ASB-134)
Before, a configured timezone from the older SystemV set (for example SystemV/CST6) was not translated to a supported one at startup. Dates and times were then shown in the wrong timezone, on some browsers the timezone could not be applied at all, and moving an appointment could store an unusable timezone on the server
Such a timezone is now resolved to its supported equivalent while the configuration is loaded, so it is applied correctly on startup (cherry picked from commit c6fdd728a2f597e42f095a9a022aeea77bf2bde6)
Signature preview freezes on a long run (ASB-151)
Fixed a freeze of the Email settings page caused by a signature containing a long run of non-breaking spaces, as produced by quoted text in some mail clients
The same freeze affected the Templates settings page (cherry picked from commit bf6309ae0d63fd52e7c9444ebee9f2df9379eaaf)
Refresh the folder tree per account so large accounts don't freeze the UI (appsuite/support#1522)
Opening or refreshing a mail account with a very large number of folders (e.g. a shared account with 1000+ folders) no longer freezes the UI; the folder tree is now refreshed per account, in the background, in chunks
Folder actions (empty, restore, delete) now refresh only the affected account instead of reloading every account
As a user I can choose the address book when creating a contact 98f3ec277
The contact create dialog now has a "Save in" address book picker (private, public and shared books you can write to), so new contacts no longer always land in the default address book
As a user I can schedule sending at more times of day 0daba097e
Scheduled send now offers more quick options: afternoon (1 PM) and evening (6 PM), in addition to morning and Monday morning, listed in chronological order
Predefined options now send within a short time window instead of one sharp time, so messages are spread out; this can be configured or disabled (see configuration documentation)
Added a note clarifying that scheduled messages are queued and may be sent with a short delay, so recipients may not receive them at the exact chosen time
As a user I can see tasks in the calendar 861dca160
A new "Tasks" calendar shows your tasks that have a due date next to your appointments Turn it on under Settings > Calendar, then show or hide it like any other calendar
As a user I can set new appointments to private by default a16c596f2
Mark new appointments as "Private" by default
Setting can be found under Settings > Calendar > Advanced Settings
Applies only to your own (private) calendars
As a user I can vertically resize the all-day section in day and week views 661ae6ee7
A resize bar below the all-day area lets you drag it taller or shorter when you have many all-day appointments. Desktop only; the height is not persisted.
As a user I see BIMI logos by local-part selector (LPS)
BIMI now supports local-part selectors (LPS): a domain can show a different brand logo per sender local-part, e.g. support@example.org
Operators can preconfigure a logo for a specific local-part and allow individual addresses on otherwise blocked provider domains
As a user I would like to see the creator of shared or delegated tasks (AS-236)
Task details now show who created a task when it was created by someone else, for example in shared task lists or when a task was delegated to you
The creator's name also appears on task cards in the side panel
Select the creator's name to open their contact details
Categories for shared accounts (PBSR-1476)
Central management of designs for Signature Designer 7387348ce
Template rendering switched to Mustache
Ops can supply additional .html templates and a designs.yaml policy (visibility, ordering, custom fields, defaults, labels, per-template metadata) via the mail-assets ConfigMap
ConfigMap mounted via the mailAssets.configMapName helm value at /etc/mail-assets
See features/signature-designer for deployment and configuration details
Central management of email signatures and templates (AS-76)
Admins can configure read-only predefined email signatures and templates via signatures.yaml and templates.yaml in the mail-assets ConfigMap (mounted at /etc/mail-assets)
Predefined signature and templates appear above user signature/templates in settings and the compose dropdown with a Predefined badge; cannot be edited or deleted
Placeholders ({{ fullName }}, etc.) are rendered at insert time using the user's contact data
Requires feature flags:
io.ox/core//features/managedTemplates: true
io.ox/core//features/managedSignatures: true
See features/signatures for configuration details
Feature toggle for unsubscribe feature (unsubscribeFromMailingList)
Introduce Tempo, a native Temporal wrapper for date and time a05e543b3
Tempo is a thin wrapper around JavaScript's native Temporal API (with a polyfill fallback for browsers that haven't shipped it yet). It gives the app one date/time layer with consistent formatting, locale/week semantics, and strict input validation — replacing the parallel luxon and moment.js stacks we've been carrying.
The ultimate (later) goal is native Temporal everywhere with luxon and moment.js removed. This commit reaches that state for luxon in src/ (only src/io.ox/core/locale.js keeps a compatibility import per the Milestone 5 transition decision). moment.js removal continues incrementally after merge: ~115 src/ files still import moment via @/moment and will burn down through Milestone 7 batches, gated by the new lint:moment-imports guardrail.
Developer entry point: src/io.ox/core/tempo/README.md — includes a moment/luxon → tempo cheatsheet, day-of-week conventions table, and the "When in doubt, convert to date-time" callout.
Port of mail d&d helper app is configurable (PBSR-1746)
User can send automatic email replies for every received email 07da25032
Appointment comments are now indicated by a chat icon instead of quotes (support#1269)
Detect and block external mail content client-side 2994ae75f
Email HTML was already sanitized in the browser; detection and blocking of external images (and other external resources such as backgrounds and fonts) now happens on the client as well.
Increase default height of folder picker (support#1272)
the folder picker was pretty small even on large screens
default height is now 60% of viewport height
maximum height is 480px, minimum height is 80px
Load luxon on demand via @/luxon, out of the boot bundle ed39b44c3
Load moment on demand instead of in the boot bundle 0bd6d63a0
Only preload dependencies of plugins that actually load at boot 5078f0e0d
"Use browser default" setting doesn't seem to work for fonts (support#1493)
Replaced the confusing "Use browser default" and "System" compose font options with a single "Sans Serif" default; the font list is now alphabetical
Compose font sizes now use pixels instead of points, shown as the same px list in the settings dropdown and the editor toolbar
Added a "Reset to defaults" link to the compose font settings
Existing font and size settings are migrated automatically
"X" in Install OX App Suite dialog is badly visible in dark theme (support#1500)
Adding attachments from HiDrive to a task or contact doesn’t work (support#1525)
Attaching a file from a connected storage account (e.g. HiDrive) to a task or contact failed
Such attachments now save correctly
After enabling a shared account in the settings, icons and unread state are set correctly e7624f89f
BIMI logos in email list not automatically loaded (support#1498)
Cannot open quoted part of mail in mail viewer (support#1536)
In Safari, the quoted part of an email could not be expanded
Fixed the quoted-text toggle (and other in-message interactions) in Safari
Drive shows empty folder instead of error when listing fails c6ac00065
End-users might miss they applied a file filter in Drive (support#1441)
Inline images not shown in plain text emails (support#1496)
Marking an email as read via the blue dot next to the checkbox no longer works (support#1430)
This only affected the combination of the vertical list view and visible checkboxes.
The checkbox's click area overlapped the blue dot, preventing it from being clicked.
Pasting formatted text adds extra blank lines between lines (support#1261)
Redirect on LGI-0016 during manifest load (support#1478)
Resend notification for cross-context shared mail folders (support-1489)
Restore attachment drag-out via referrer policy (support#1396)
Searching emails with "before" and/or "after" includes emails of that day (support#1521)
Second Factor Authentication tour has a overlapping dialog box (support#1485)
Selected filter directory is not shown correctly for Shared Accounts 3bcacdf38
Standalone viewer shows sidepanel (support#1484)
Do not load the sidepanel toolbar in the standalone popout viewer (opened in a separate browser tab), where it has no purpose when viewing a single file
UI glitches in dark mode (support#1526)
Unable to Download Previous File Version (Support#1488)
Virtual folders might trigger server-side exceptions when trying to load extended folder permissions (column 3060)
Whats New release date for 8.50 was not string and turned into 8.5 89e049163