Open Source in Action #13: COOL 26.04 Is Here, 6,000 Merges Crossed, and Windows Moves to CMake Collabora Online 26.04, the free community edition of Collabora's office suite, has been officially released, featuring AI-assisted writing, per-user spreadsheet views, document comparison, multi-page Writer view, markdown support, improved presentations, and BITV 2.0 accessibility certification. The project also crossed 6,000 all-time merges with 6,228 commits from 71 contributors since April 2nd, and Windows builds now require CMake due to the libxml2 upgrade. 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 https://gerrit.collaboraoffice.com/c/online/+/7592 , 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. https://gerrit.collaboraoffice.com/c/online/+/7669 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 https://gerrit.collaboraoffice.com/c/online/+/6898 pivot source https://gerrit.collaboraoffice.com/c/online/+/6815 Sheet 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 · LAMBDA https://gerrit.collaboraoffice.com/c/online/+/7114 Correctness 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 172113 https://gerrit.collaboraoffice.com/c/online/+/7623 Markdown 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 16002 https://github.com/CollaboraOnline/online/issues/16002 so markdown files are recognized. added discovery entries https://gerrit.collaboraoffice.com/c/online/+/7518 Comments & 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 https://gerrit.collaboraoffice.com/c/online/+/7375 , and Jaume tdf 157987 https://bugs.documentfoundation.org/show bug.cgi?id=157987 . kept comment marks correctly flagged as deleted after highlighting their anchor https://gerrit.collaboraoffice.com/c/online/+/7151 Per-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 https://gerrit.collaboraoffice.com/c/online/+/7158 . not showing the rotate handle on non-rotatable objects https://gerrit.collaboraoffice.com/c/online/+/7436 Vector rendering — Tomaž pushed the JS vector renderer forward substantially this week: a transport frame for pushed primitive deltas , , applying deltas on the client https://gerrit.collaboraoffice.com/c/online/+/7014 , and showing in-progress text edits https://gerrit.collaboraoffice.com/c/online/+/7012 so the right view updates when a slide changes. carrying object identity and part version https://gerrit.collaboraoffice.com/c/online/+/6717 Charts — Tomaž implemented native Bezier-path rendering for 2D smoothed lines in charts, backed by a set of new basegfx spline solvers , cubic spline https://gerrit.collaboraoffice.com/c/online/+/7119 , cyclic tridiagonal https://gerrit.collaboraoffice.com/c/online/+/7118 — replacing older spline math with cleaner, reusable primitives. Gaussian elimination for banded systems https://gerrit.collaboraoffice.com/c/online/+/7115 SmartArt — Armin removed legacy SdrObjPlusData from SdrObject https://gerrit.collaboraoffice.com/c/online/+/7176 , and Regina . The forum collaboration continues to produce results. corrected constraint defaults in the new SmartArt code https://gerrit.collaboraoffice.com/c/online/+/7525 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 https://gerrit.collaboraoffice.com/c/online/+/7476 , and fixed the AI provider setup flow on desktop https://gerrit.collaboraoffice.com/c/online/+/6836 . made the assistant read slide text when nothing is selected in Impress https://gerrit.collaboraoffice.com/c/online/+/7224 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 https://gerrit.collaboraoffice.com/c/online/+/6966 , giving the Calc formula bar a tabindex https://gerrit.collaboraoffice.com/c/online/+/7388 , and activating dropdown entries on keydown https://gerrit.collaboraoffice.com/c/online/+/7655 . Areg showing a visible focus ring on tree items https://gerrit.collaboraoffice.com/c/online/+/7575 . fixed a crash in the accessibility “Fix” button https://gerrit.collaboraoffice.com/c/online/+/6647 Collabora Office Desktop App Clipboard — Tor Lillqvist did a major clipboard cleanup, moving CODA-W and to a single CODA-M https://gerrit.collaboraoffice.com/c/online/+/7613 instead of per-view, and dropping a pile of now-unused clipboard plumbing. process-shared clipboard https://gerrit.collaboraoffice.com/c/online/+/7612 Save 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 https://gerrit.collaboraoffice.com/c/online/+/7502 . refreshed file dates after deferred saves https://gerrit.collaboraoffice.com/c/online/+/7501 Print & export — Mohit restructured Qt print and export-as routing through a new CODocumentBroker , with . tests for printing and failing exports https://gerrit.collaboraoffice.com/c/online/+/6219 Dark mode — Pedro fixed backstage button style inconsistencies and ; Mohit improved backstage icons in dark mode https://gerrit.collaboraoffice.com/c/online/+/7643 . colored the ‘Open File From Computer’ button from CSS variables https://gerrit.collaboraoffice.com/c/online/+/7475 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 https://gerrit.collaboraoffice.com/c/online/+/6752 . 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 https://gerrit.collaboraoffice.com/c/core/+/7431 , 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 locale https://gerrit.collaboraoffice.com/c/online/+/7608 and introduced support for dialogs in JS extensions https://gerrit.collaboraoffice.com/c/online/+/6623 . handled missing default values in JS UNO structs https://gerrit.collaboraoffice.com/c/online/+/7624 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 https://gerrit.collaboraoffice.com/c/online/+/7201 . Mike Kaganski made the app fixed grid content overflowing dialog containers https://gerrit.collaboraoffice.com/c/online/+/7580 . follow the OS dark mode when the user hasn’t chosen a theme https://gerrit.collaboraoffice.com/c/online/+/7561 Design Meeting The UX/UI Design Meeting covered: Dynamic zoom: Sahil’s refactor complete with dev notes, tests in progress CODA dark mode: Mohit’s button fix landed, more backstage refinements identified Tab 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 https://forum.collaboraonline.com/t/py-numpy-inside-collabora/4844 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 https://forum.collaboraonline.com/t/solved-collabora-code-26-04-2-2-1-docker-behind-nginx-reverse-proxy/4894 — 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 https://forum.collaboraonline.com/t/build-of-engine-fails-on-windows/4884 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 https://forum.collaboraonline.com/t/collabora-online-weekly-meeting-266/4902 — COOL 26.04 release, GIF playback, dark mode UX/UI Design Meeting July 23 — minutes https://forum.collaboraonline.com/t/cool-ux-ui-design-meeting-minutes-2026-07-23/4901 — 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/ https://www.collaboraoffice.com/downloads/CODA-Hd7wwbJWxm/ Help translate: hosted.weblate.org/projects/collabora-online/ https://hosted.weblate.org/projects/collabora-online/ Easy hacks: github.com/CollaboraOnline/online/issues?q=label:easy-hack https://github.com/CollaboraOnline/online/issues?q=label%3A%22easy+hack%22 Community page: collaboraonline.github.io/post/communicate/ https://collaboraonline.github.io/post/communicate/ Design system: collaboraoffice.org/design-system https://www.collaboraoffice.org/design-system/ Forum: forum.collaboraonline.com https://forum.collaboraonline.com/ Chat on Matrix: cool-dev:matrix.org https://matrix.to/ /%23cool-dev:matrix.org Browse open changes: gerrit.collaboraoffice.com https://gerrit.collaboraoffice.com/q/status:open+-is:wip See you in the code.