Darshan Upadhyay
The headline this week: Collabora Online 26.04 is officially released — the free, community version bringing everything the project has been building to everyone. Alongside it, the all-time merge count crossed 6,000 and the dynamic zoom rework reached completion. Here’s the roundup.
COOL 26.04 Is Here #
— the community edition packed with everything from AI-assisted writing and per-user spreadsheet views to document comparison, multi-page Writer view, markdown support, improved presentations, and BITV 2.0 accessibility certification.
Collabora Online 26.04 is released
This is the release that brings months of open development to everyone who runs the free version. Try it, deploy it, and let us know what you think on the forum.
The Numbers #
This week: 538 commits merged by 37 contributors. All-time since April 2nd: 6,228 commits merged from 71 contributors — crossing the 6,000 milestone. There are currently 178 open changes on online/main.
The GitHub PR migration is complete. Thank you to everyone who moved their patches over.
Top reviewers this week: Caolán McNamara (61), Miklos Vajna (38), Noel Grandin (30), Michael Stahl (28), Tomaž Vajngerl (22), Stephan Bergmann (17), Mike Kaganski (12), Andras Timar (9), Szymon Kłos (8), Tor Lillqvist (7).
Thank you to every reviewer — your work keeps the whole project moving.
Windows Builds Now Need CMake #
A quick heads-up for Windows developers: building the main
branch now requires CMake to be installed. This came in with the upgrade of the bundled libxml2 to its latest release, which uses CMake as its build tool. It’s not a switch away from gbuild — the build itself is unchanged — you just need CMake available (it’s an optional component in the Visual Studio installer, and may already be installed by default). Other branches will follow soon. Michael Stahl __ documented it on the forum__.
Dynamic Zoom: Rework Complete #
After weeks of careful investigation and prototyping, Sahil completed the dynamic zoom refactor. He added developer notes documenting how dynamic zoom works, wrote tests, and is now moving into review. Next up: testing across mobile, CODA, and read-only modes.
This was genuinely complex work — a race between async listeners setting zoom when the sidebar appears was the toughest nut to crack. Thank you Sahil for the patience and thoroughness, including documenting it so the next person doesn’t have to rediscover the same subtleties.
What Developers Are Building #
This is the heart of it — the steady stream of features, fixes, and improvements landing every week. Here’s a tour of what shipped, by area.
Calc
Text to Column — Gülşah integrated the Text to Column feature into Online, a genuinely useful data-wrangling tool for splitting delimited cell content into separate columns.
Table Style tools — Balázs built out a whole cluster of table tooling in the notebookbar: a Pivot Table button, a Convert to Range command, and smarter handling of structured references — flattening them on Convert to Range, keeping Total Row formulas aligned when columns change, and preserving both side borders on single-column tables. He also let pivot tables use a database range as their source and fixed OOXML import/export of name-based pivot sources. __ Pivot button __ ·
·
Convert to Range pivot sourceSheet views — Szymon and Dennis did substantial work keeping Calc’s per-user sheet views correct: invalidating cached row positions on sort, undo, and block height changes, refreshing the right tiles on cell edits across views, and fixing coordinates after row-height undo. Detailed, careful work that keeps collaborative spreadsheets consistent. __ sort undo __ ·
[cross-view edits](https://gerrit.collaboraoffice.com/c/online/+/7528)**New functions** — Tomaž added the `ARRAYTOTEXT`
function and made LAMBDA and callable evaluation more robust. __ ARRAYTOTEXT __·
LAMBDACorrectness fixes — Aron made invalid user-defined functions export as #REF!
in XLSX, Gülşah preserved row freeze when saving a scrolled sheet to XLSX, and Balázs stopped cells that are part of a database range from being merged. Mike Kaganski kept a target’s direct cell protection on paste. __ #REF! __·
·
[row freeze](https://gerrit.collaboraoffice.com/c/online/+/7521)
[cell protection](https://gerrit.collaboraoffice.com/c/online/+/7069)### Writer
Line spacing — Miklos landed a series of line-spacing fixes (__ tdf#172169__,
), improving how line spacing height is calculated during import and layout.
tdf#172113Markdown paste — Miklos fixed __ lost bullets__,
, and
[unwanted empty paragraphs](https://gerrit.collaboraoffice.com/c/core/+/7371)__when pasting Markdown (__
[list joins](https://gerrit.collaboraoffice.com/c/core/+/7370)__), and__
cool#16002so markdown files are recognized.
added discovery entriesComments & tracked changes — Pranam made __ Writer tell clients when a tracked comment deletion is resolved__, Miklos
(
added “Display Comments always visible” to the notebookbar View menu), and Jaume
tdf#157987. kept comment marks correctly flagged as deleted after highlighting their anchorPer-user list defaults — Gülşah made __ Writer save per-user defaults for numbers, bullets, and outlines__.
Fixes — Oliver fixed __ spurious blank pages in Word documents__ (
), and Mike Kaganski fixed
[tdf#159133](https://bugs.documentfoundation.org/show_bug.cgi?id=159133)__(__
[outline level handling when pasting into a list paragraph](https://gerrit.collaboraoffice.com/c/online/+/7298)__).__
[tdf#167029](https://bugs.documentfoundation.org/show_bug.cgi?id=167029)### Impress & Draw
Slide sections — Mohit refined section handling: __ clearing selection when removing a section__,
, and
keeping slides visible when removing a collapsed section.
not showing the rotate handle on non-rotatable objectsVector rendering — Tomaž pushed the JS vector renderer forward substantially this week: a __ transport frame for pushed primitive deltas__,
,
applying deltas on the client, and showing in-progress text editsso the right view updates when a slide changes.
carrying object identity and part versionCharts — Tomaž implemented __ native Bezier-path rendering for 2D smoothed lines__ in charts, backed by a set of new basegfx spline solvers (
,
cubic spline, cyclic tridiagonal) — replacing older spline math with cleaner, reusable primitives.
Gaussian elimination for banded systemsSmartArt — Armin removed legacy SdrObjPlusData from SdrObject, and Regina
. The forum collaboration continues to produce results.
corrected constraint defaults in the new SmartArt code### AI Assistant
Rashesh did a big cluster of AI work this week: __ gating the AI Assistant button on identity and configuration__,
,
[requiring a signed-in user for AI features](https://gerrit.collaboraoffice.com/c/online/+/7244)__,__
[allowing built-in providers without extra config](https://gerrit.collaboraoffice.com/c/online/+/7248)__,__
[making the API key optional for self-hosted models](https://gerrit.collaboraoffice.com/c/online/+/7238)__(HTTP 429), and several settings-flow refinements. Darshan__
[distinguishing an exhausted quota from a rate-limit throttle](https://gerrit.collaboraoffice.com/c/online/+/7652)__,__
made the remaining English sidebar strings translatable, and
fixed the AI provider setup flow on desktop.
made the assistant read slide text when nothing is selected in Impress### Accessibility
Henry Castro delivered a strong run of a11y improvements: __ letting F6 reach the navigator in every application__, adding
,
Shift+F10 context-menu support for Calc row/column headers, giving the Calc formula bar a tabindex, and
activating dropdown entries on keydown. Areg
showing a visible focus ring on tree items.
fixed a crash in the accessibility “Fix” button### Collabora Office Desktop App
Clipboard — Tor Lillqvist did a major clipboard cleanup, moving __ CODA-W__ and
to a single
CODA-Minstead of per-view, and dropping a pile of now-unused clipboard plumbing. process-shared clipboardSave flow — Jan Holesovsky reworked how CODA-M __ completes saves directly from the engine’s message stream__,
, and
gave each document its own close-notification socket. refreshed file dates after deferred savesPrint & export — Mohit restructured Qt print and export-as routing through a __ new CODocumentBroker__, with
.
tests for printing and failing exportsDark mode — Pedro fixed __ backstage button style inconsistencies__ and
; Mohit
improved backstage icons in dark mode. colored the ‘Open File From Computer’ button from CSS variables### Rendering & Engine Cleanup
Noel Grandin ran a sweeping cppcanvas cleanup — __ merging canvas base classes__, removing dead code, dropping unused UNO API surface, and continuing the
`cpo::`
namespace migration ([,](https://gerrit.collaboraoffice.com/c/online/+/7639)
moving____XAdapter__,__
[XNamingService](https://gerrit.collaboraoffice.com/c/online/+/7629)__,__
[WeakReference](https://gerrit.collaboraoffice.com/c/online/+/7061)__, and more). Karthik added__
[TypeClass](https://gerrit.collaboraoffice.com/c/online/+/7234)__and__
fast scanline paths for premultiplied 32-bit bitmaps. Parth added a
[image caching with alpha for PDF](https://gerrit.collaboraoffice.com/c/online/+/7284)__.__
[shared bitmap-to-PNG-data-URI helper](https://gerrit.collaboraoffice.com/c/online/+/6102)### Build & Infrastructure
Michael Stahl upgraded __ libxml2__ (which brought the Windows CMake requirement),
, and
liblangtag, and fixed a long list of GCC 15/16 and Clang trunk build warnings — keeping the codebase compiling cleanly on the newest toolchains. Andras did extensive Docker and jail hardening —
[poppler](https://gerrit.collaboraoffice.com/c/core/+/7333)__,__
[keeping bundled dictionaries visible under shared wordbooks](https://gerrit.collaboraoffice.com/c/online/+/7423)[,](https://gerrit.collaboraoffice.com/c/online/+/7354)
honoring____extra_params____in the shell-less entrypoint__, and more. Stephan__
shipping a C.UTF-8 localeand introduced support for dialogs in JS extensions.
handled missing default values in JS UNO structs### Menus & UI Polish
Samuel Mehrbrodt made __ submenus flip left when they’d overflow the right edge__ (
) and
[cool#15993](https://github.com/CollaboraOnline/online/issues/15993)__. Gülşah__
[fixed Calc row/column header cursors](https://gerrit.collaboraoffice.com/c/online/+/6555)__and__
[kept menubar sub-menus above the bottom bars](https://gerrit.collaboraoffice.com/c/online/+/7658)__. Banobe__
[gave threaded comments a distinct icon](https://gerrit.collaboraoffice.com/c/online/+/7636)__and__
refined vertical tab borders and spacing. Mike Kaganski made the app
fixed grid content overflowing dialog containers.
follow the OS dark mode when the user hasn’t chosen a theme## Design Meeting
The UX/UI Design Meeting covered:
Dynamic zoom: Sahil’s refactor complete with dev notes, tests in progressCODA dark mode: Mohit’s button fix landed, more backstage refinements identifiedTab design variant and extensions mockup: Ivana exploring new designsAnimated GIF behavior: auto-loop for now, controls later based on feedback
The Community in Action #
The forum has been busy with real deployment stories and technical help:
The =PY() + NumPy discussion continues to develop — the deep dive into bringing Python into Calc keeps generating thoughtful design conversation.
A community member solved and documented running CODE 26.04.2.2.1 behind an Nginx reverse proxy — the kind of “solved” thread that helps the next person with the same setup.
There’s also active help happening around Windows and engine builds as more contributors set up development environments — with the team responding quickly to smooth the path.
Community Calls #
TC Meeting (July 22)— CMake for Windows, dynamic zoom, release engineering, crash testing** Collabora Online Weekly Meeting #266 (July 23)—minutes— COOL 26.04 release, GIF playback, dark modeUX/UI Design Meeting (July 23)**—minutes— dynamic zoom, CODA dark mode, tab design
All minutes on the forum under __ meeting-minutes__.
Get Involved #
71 contributors. 6,228 merges. COOL 26.04 shipped. Whether you write code, translate, test, design, or document — there’s a place for you here.
Try the latest builds:collaboraoffice.com/downloads/CODA-Hd7wwbJWxm/** Help translate:hosted.weblate.org/projects/collabora-online/ Easy hacks:github.com/CollaboraOnline/online/issues?q=label:easy-hackCommunity page:collaboraonline.github.io/post/communicate/ Design system:collaboraoffice.org/design-system Forum:forum.collaboraonline.com Chat on Matrix:#cool-dev:matrix.org Browse open changes:**gerrit.collaboraoffice.com
See you in the code.