{"slug": "open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to", "title": "Open Source in Action #13: COOL 26.04 Is Here, 6,000 Merges Crossed, and Windows Moves to CMake", "summary": "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.", "body_md": "#### Darshan Upadhyay\n\nThe 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.\n\n## COOL 26.04 Is Here\n\n— 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.\n\n**Collabora Online 26.04 is released**\n\nThis 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.\n\n## The Numbers\n\nThis 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.\n\nThe GitHub PR migration is complete. Thank you to everyone who moved their patches over.\n\n**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).\n\nThank you to every reviewer — your work keeps the whole project moving.\n\n## Windows Builds Now Need CMake\n\nA quick heads-up for Windows developers: building the `main`\n\nbranch 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__.\n\n## Dynamic Zoom: Rework Complete\n\nAfter 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.\n\nThis 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.\n\n## What Developers Are Building\n\nThis 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.\n\n### Calc\n\n**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)\n\n**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 __ ·\n\n__·__\n\n[Convert to Range](https://gerrit.collaboraoffice.com/c/online/+/6898)\n\n[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 __ ·\n\n[cross-view edits](https://gerrit.collaboraoffice.com/c/online/+/7528)**New functions** — Tomaž added the `ARRAYTOTEXT`\n\nfunction and made LAMBDA and callable evaluation more robust. __ ARRAYTOTEXT __·\n\n[LAMBDA](https://gerrit.collaboraoffice.com/c/online/+/7114)**Correctness fixes** — Aron made invalid user-defined functions export as `#REF!`\n\nin 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! __·\n\n__·__\n\n[row freeze](https://gerrit.collaboraoffice.com/c/online/+/7521)\n\n[cell protection](https://gerrit.collaboraoffice.com/c/online/+/7069)### Writer\n\n**Line spacing** — Miklos landed a series of line-spacing fixes (__ tdf#172169__,\n\n__), improving how line spacing height is calculated during import and layout.__\n\n[tdf#172113](https://gerrit.collaboraoffice.com/c/online/+/7623)**Markdown paste** — Miklos fixed __ lost bullets__,\n\n__, and__\n\n[unwanted empty paragraphs](https://gerrit.collaboraoffice.com/c/core/+/7371)__when pasting Markdown (__\n\n[list joins](https://gerrit.collaboraoffice.com/c/core/+/7370)__), and__\n\n[cool#16002](https://github.com/CollaboraOnline/online/issues/16002)__so markdown files are recognized.__\n\n[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\n\n__(__\n\n[added “Display Comments always visible” to the notebookbar View menu](https://gerrit.collaboraoffice.com/c/online/+/7375)__), and Jaume__\n\n[tdf#157987](https://bugs.documentfoundation.org/show_bug.cgi?id=157987)__.__\n\n[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__.\n\n**Fixes** — Oliver fixed __ spurious blank pages in Word documents__ (\n\n__), and Mike Kaganski fixed__\n\n[tdf#159133](https://bugs.documentfoundation.org/show_bug.cgi?id=159133)__(__\n\n[outline level handling when pasting into a list paragraph](https://gerrit.collaboraoffice.com/c/online/+/7298)__).__\n\n[tdf#167029](https://bugs.documentfoundation.org/show_bug.cgi?id=167029)### Impress & Draw\n\n**Slide sections** — Mohit refined section handling: __ clearing selection when removing a section__,\n\n__, and__\n\n[keeping slides visible when removing a collapsed section](https://gerrit.collaboraoffice.com/c/online/+/7158)__.__\n\n[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__,\n\n__,__\n\n[applying deltas on the client](https://gerrit.collaboraoffice.com/c/online/+/7014)__, and__\n\n[showing in-progress text edits](https://gerrit.collaboraoffice.com/c/online/+/7012)__so the right view updates when a slide changes.__\n\n[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 (\n\n__,__\n\n[cubic spline](https://gerrit.collaboraoffice.com/c/online/+/7119)__,__\n\n[cyclic tridiagonal](https://gerrit.collaboraoffice.com/c/online/+/7118)__) — replacing older spline math with cleaner, reusable primitives.__\n\n[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\n\n__. The forum collaboration continues to produce results.__\n\n[corrected constraint defaults in the new SmartArt code](https://gerrit.collaboraoffice.com/c/online/+/7525)### AI Assistant\n\nRashesh did a big cluster of AI work this week: __ gating the AI Assistant button on identity and configuration__,\n\n__,__\n\n[requiring a signed-in user for AI features](https://gerrit.collaboraoffice.com/c/online/+/7244)__,__\n\n[allowing built-in providers without extra config](https://gerrit.collaboraoffice.com/c/online/+/7248)__,__\n\n[making the API key optional for self-hosted models](https://gerrit.collaboraoffice.com/c/online/+/7238)__(HTTP 429), and several settings-flow refinements. Darshan__\n\n[distinguishing an exhausted quota from a rate-limit throttle](https://gerrit.collaboraoffice.com/c/online/+/7652)__,__\n\n[made the remaining English sidebar strings translatable](https://gerrit.collaboraoffice.com/c/online/+/7476)__, and__\n\n[fixed the AI provider setup flow on desktop](https://gerrit.collaboraoffice.com/c/online/+/6836)__.__\n\n[made the assistant read slide text when nothing is selected in Impress](https://gerrit.collaboraoffice.com/c/online/+/7224)### Accessibility\n\nHenry Castro delivered a strong run of a11y improvements: __ letting F6 reach the navigator in every application__, adding\n\n__,__\n\n[Shift+F10 context-menu support for Calc row/column headers](https://gerrit.collaboraoffice.com/c/online/+/6966)__,__\n\n[giving the Calc formula bar a tabindex](https://gerrit.collaboraoffice.com/c/online/+/7388)__, and__\n\n[activating dropdown entries on keydown](https://gerrit.collaboraoffice.com/c/online/+/7655)__. Areg__\n\n[showing a visible focus ring on tree items](https://gerrit.collaboraoffice.com/c/online/+/7575)__.__\n\n[fixed a crash in the accessibility “Fix” button](https://gerrit.collaboraoffice.com/c/online/+/6647)### Collabora Office Desktop App\n\n**Clipboard** — Tor Lillqvist did a major clipboard cleanup, moving __ CODA-W__ and\n\n__to a single__\n\n[CODA-M](https://gerrit.collaboraoffice.com/c/online/+/7613)__instead of per-view, and dropping a pile of now-unused clipboard plumbing.__\n\n[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__,\n\n__, and__\n\n[gave each document its own close-notification socket](https://gerrit.collaboraoffice.com/c/online/+/7502)__.__\n\n[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\n\n__.__\n\n[tests for printing and failing exports](https://gerrit.collaboraoffice.com/c/online/+/6219)**Dark mode** — Pedro fixed __ backstage button style inconsistencies__ and\n\n__; Mohit__\n\n[improved backstage icons in dark mode](https://gerrit.collaboraoffice.com/c/online/+/7643)__.__\n\n[colored the ‘Open File From Computer’ button from CSS variables](https://gerrit.collaboraoffice.com/c/online/+/7475)### Rendering & Engine Cleanup\n\nNoel Grandin ran a sweeping cppcanvas cleanup — __ merging canvas base classes__, removing dead code, dropping unused UNO API surface, and continuing the\n\n`cpo::`\n\nnamespace migration ([,](https://gerrit.collaboraoffice.com/c/online/+/7639)\n\n__moving____XAdapter____,__\n\n[XNamingService](https://gerrit.collaboraoffice.com/c/online/+/7629)__,__\n\n[WeakReference](https://gerrit.collaboraoffice.com/c/online/+/7061)__, and more). Karthik added__\n\n[TypeClass](https://gerrit.collaboraoffice.com/c/online/+/7234)__and__\n\n[fast scanline paths for premultiplied 32-bit bitmaps](https://gerrit.collaboraoffice.com/c/online/+/6752)__. Parth added a__\n\n[image caching with alpha for PDF](https://gerrit.collaboraoffice.com/c/online/+/7284)__.__\n\n[shared bitmap-to-PNG-data-URI helper](https://gerrit.collaboraoffice.com/c/online/+/6102)### Build & Infrastructure\n\nMichael Stahl upgraded __ libxml2__ (which brought the Windows CMake requirement),\n\n__, and__\n\n[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 —__\n\n[poppler](https://gerrit.collaboraoffice.com/c/core/+/7333)__,__\n\n[keeping bundled dictionaries visible under shared wordbooks](https://gerrit.collaboraoffice.com/c/online/+/7423)[,](https://gerrit.collaboraoffice.com/c/online/+/7354)\n\n__honoring____extra_params____in the shell-less entrypoint____, and more. Stephan__\n\n[shipping a C.UTF-8 locale](https://gerrit.collaboraoffice.com/c/online/+/7608)__and__\n\n[introduced support for dialogs in JS extensions](https://gerrit.collaboraoffice.com/c/online/+/6623)__.__\n\n[handled missing default values in JS UNO structs](https://gerrit.collaboraoffice.com/c/online/+/7624)### Menus & UI Polish\n\nSamuel Mehrbrodt made __ submenus flip left when they’d overflow the right edge__ (\n\n__) and__\n\n[cool#15993](https://github.com/CollaboraOnline/online/issues/15993)__. Gülşah__\n\n[fixed Calc row/column header cursors](https://gerrit.collaboraoffice.com/c/online/+/6555)__and__\n\n[kept menubar sub-menus above the bottom bars](https://gerrit.collaboraoffice.com/c/online/+/7658)__. Banobe__\n\n[gave threaded comments a distinct icon](https://gerrit.collaboraoffice.com/c/online/+/7636)__and__\n\n[refined vertical tab borders and spacing](https://gerrit.collaboraoffice.com/c/online/+/7201)__. Mike Kaganski made the app__\n\n[fixed grid content overflowing dialog containers](https://gerrit.collaboraoffice.com/c/online/+/7580)__.__\n\n[follow the OS dark mode when the user hasn’t chosen a theme](https://gerrit.collaboraoffice.com/c/online/+/7561)## Design Meeting\n\nThe UX/UI Design Meeting covered:\n\n**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\n\n## The Community in Action\n\nThe forum has been busy with real deployment stories and technical help:\n\nThe [=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.\n\nA 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.\n\nThere’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.\n\n## Community Calls\n\n**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\n\nAll minutes on the forum under __ meeting-minutes__.\n\n## Get Involved\n\n71 contributors. 6,228 merges. COOL 26.04 shipped. Whether you write code, translate, test, design, or document — there’s a place for you here.\n\n**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)\n\nSee you in the code.", "url": "https://wpnews.pro/news/open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to", "canonical_source": "https://www.collaboraonline.com/blog/open-source-in-action-13/", "published_at": "2026-07-28 07:18:59+00:00", "updated_at": "2026-08-11 15:20:04.069686+00:00", "lang": "en", "topics": ["artificial-intelligence"], "entities": ["Collabora Online", "Collabora", "Caolán McNamara", "Miklos Vajna", "Noel Grandin", "Michael Stahl", "Tomaž Vajngerl", "Stephan Bergmann"], "alternates": {"html": "https://wpnews.pro/news/open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to", "markdown": "https://wpnews.pro/news/open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to.md", "text": "https://wpnews.pro/news/open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to.txt", "jsonld": "https://wpnews.pro/news/open-source-in-action-13-cool-26-04-is-here-6000-merges-crossed-and-windows-to.jsonld"}}