You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ODS currency symbols lost on round trip - Currency formats were bound to reserved XLSX format IDs via substring matching, causing locale-dependent built-in formats to replace the
explicit ODF symbol and layout. All currency formats now receive custom IDs, and the ODF writer recognises locale-free currency tokens like [$€] alongside the traditional [$€-407]
form.
PDF annotation dates displayed as "1/20/70" after save - Annotation dates were stored via 32-bit WriteLong, silently truncating millisecond-epoch timestamps. Switched to string
property storage and corrected the UTC timezone marker from the invalid = to Z per PDF spec.
Spreadsheet scroll broken on macOS in Chromium browsers - A legacy mousewheel listener conflicted with modern wheel listeners on the same element. Removed the macOS-specific feature detection bypass so all platforms use the standard wheel event.
Page counter showed cursor position instead of visible page - The status bar page counter only updated on click or navigation, not on scroll. The visible-page event is now fired unconditionally during scroll, with correct handling for multi-page view layout and HiDPI displays.
Chart/diagram insertion failed under subpath deployments - Resolved a path resolution error that prevented inserting charts when the editor was served from a subpath.
Toolbar icons invisible in some views - Menu icons were drawn from a dead CSS sprite instead of the symbol sheet; fixed to use the inline SVG symbols.
Plugin registration failed for background-only stores - Plugins configured for background-only operation were not registered or autostarted.
Save-as-picture used data: URI blocked by CSP - Replaced the data: URI anchor-click download with a blob URL via URL.createObjectURL(), avoiding Content Security Policy restrictions.
DOCX list numbering elements in wrong schema order - <w:lvl> elements are now emitted in ECMA-376 schema order.
Backported upstream fixes - Embedded font use in pushbuttons, and five XLS/PDF rendering fixes from upstream.
Security
TLS certificate verification enabled on Linux - The FileTransporter cURL wrapper on Linux previously disabled peer certificate verification entirely. Verification is now enforced,
with explicit comments discouraging re-introduction of the bypass.
0-byte ZIP entries no longer dropped - Legitimate empty files (e.g., _xmlsignatures/origin.sigs) were skipped during in-memory ZIP parsing, making them invisible to signature
verification. Directory entries are still excluded.
New Features
Per-editor desktop accent strip - Each editor type gets a themed colour accent in the desktop header bar.
PostMessage: add mentions via WOPI - The WOPI integration now supports adding mentions through the PostMessage API.
Infrastructure / Developer Experience
APT/DNF repository support - A reusable workflow downloads the current repository, merges new DocumentServer packages, prunes to two versions, re-signs indices, and publishes via rsync.
macOS native build - Full build support for macOS (x2t, V8, ICU, OpenSSL, doctrenderer, PdfFile, IWorkFile, CEF, Qt) including notarization fixes and Wayland clipboard bridging.
Rocky Linux 9 build - Build toolchain and CI workflow added for Rocky 9, including ARM64.
E2E editor smoke tests - Playwright-based smoke tests verify typing, formulas, and slide creation across document, spreadsheet, and presentation editors, including a mobile variant.
Error reporting with GlitchTip - Docker Compose profile added for self-hosted Sentry-compatible error reporting.
Docker: service UID pinning - Service UIDs are now pinned and volume ownership is repaired on upgrade, preventing permission errors after image updates.
Docker: supervisord under tini - Supervisord runs under tini to silently reap orphaned processes, eliminating noisy "reaped unknown pid" log messages.
Build version parsing for pre-release tags - The VERSION file is now parsed the same way as git tags, splitting 9.3.5-rc.1 into version and build number.