{"article":{"slug":"pragtical-v3-14-0-release","title":"Pragtical v3.14.0 Release","subtitle":null,"summary":"Pragtical v3.14.0, the Lua-based text editor's latest release, adds application menus and a toolbar, flexible placement of command prompts and project search, floating views, workspace session management, a refreshed Plugin Manager and lower idle CPU usage, plus a long list of fixes since v3.13.1.","content_type":"changelog","language":"en","canonical_url":"https://pragtical.dev/blog/pragtical-v3140-release","author":{"name":"Jefferson Gonzalez","url":"https://github.com/jgmdev","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Pragtical","url":"https://pragtical.dev/","listing_slug":null,"listing":null},"topics":[{"name":"Text Editors","slug":"text-editors","url":"https://listedarticles.com/topics/text-editors"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Developer Tools","slug":"developer-tools","url":"https://listedarticles.com/topics/developer-tools"},{"name":"Lua","slug":"lua","url":"https://listedarticles.com/topics/lua"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1318,"reading_minutes":6,"published_at":"2026-10-20T00:00:00.000Z","added_at":"2026-10-25T05:11:13.772Z","updated_at":"2026-10-25T05:11:13.772Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/pragtical-v3-14-0-release","markdown_url":"https://listedarticles.com/articles/pragtical-v3-14-0-release.md","example":false,"citation":"Jefferson Gonzalez, Pragtical. \"Pragtical v3.14.0 Release.\" 20 Oct 2026. https://pragtical.dev/blog/pragtical-v3140-release (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://pragtical.dev/blog/pragtical-v3140-release"},"body_markdown":"Before getting into the changes, here is a look at how Pragtical has been\nevolving, including some of the new interface improvements in this release.\n\nPragtical v3.14.0 brings application menus, more flexible placement of command\nprompts and project search, workspace session management, a refreshed Plugin\nManager, and lower idle CPU usage. The changes below cover the work since\nv3.13.1.\n\n## Application Menus And Toolbar\n\nMany editor commands can now be found under the File, Edit, Search, View,\nTools and Help menus. This makes it easier to discover commands without\nknowing their names or remembering every keybinding. Plugins can also add\ntheir own entries, with shortcuts and enabled states following the registered\ncommands.\n\nBorderless mode and the menu bar are now enabled by default. In borderless\nmode, the menu sits beside the logo in the title bar, leaving the rest of the\ntitle area available for dragging the window. Thanks to Tocal on Discord for\nsuggesting this placement!\n\n![Application menu embedded in the borderless title bar, with the Tools menu open](https://github.com/user-attachments/assets/96f3b1a8-a521-40b1-97fd-f22101b901f5)\n\nBoth **Borderless** and **Show Menu Bar** can be changed under\n**Settings > Core > User Interface**. The borderless resize area is now a thin\nstrip on all four edges, so it no longer steals clicks from status bar items.\nResizing is disabled while maximized or fullscreen.\n\nHere is the menu demonstration from [PR #630](https://github.com/pragtical/pragtical/pull/630):\n\nThe toolbar can also move. **Settings > Plugins > Treeview > Toolbar Position**\noffers Left, Bottom, Top and Right: place it beside, above or below the file\ntree, or at the editor's right edge. This screenshot from the initial menu and\ntoolbar PR shows the right-hand layout:\n\n![Application menu and toolbar placed at the editor's right edge](https://github.com/user-attachments/assets/01ec1ceb-9412-4b8f-80d6-806b652804cc)\n\n## Command Prompts And Floating Views\n\nCommand prompts are no longer limited to the bottom of the window. The\n**Command Palette Position** setting under **Core > User Interface** offers\nBottom, Top and Center. Center floats the input and its suggestions over the\neditor instead of resizing the document panes. Bottom remains the default.\n\nThe same option can be set in your user module:\n\n```\nlocal config = require \"core.config\"  \nconfig.commandview_position = \"center\"\n```\n\nThe next prompt uses the new placement. Centered prompts keep their top edge\nsteady while filtering results, instead of moving around as the list gets\nshorter.\n\nUnderneath these changes is a shared floating-view API. Menus, completion\npopups and dialogs can use the same placement, focus and mouse handling,\ninstead of each plugin having to intercept editor events on its own. Plugin\nauthors can find more details in the [floating views guide](https://pragtical.dev/docs/developer-guide/floating-views).\n\nMore floating-view demos from PR #630\n\nCommand prompts and the floating About dialog:\n\nCompletion and documentation popups with the optional LSP plugin:\n\nPrompts can also remember where you left them. CommandView now supports\noptional snapshots of input, selection and result scrolling. Core commands\nuse this to resume repeated searches and commands, with context checks so a\nGo To Line search does not accidentally follow you into a different document.\nThe video from [PR #631](https://github.com/pragtical/pragtical/pull/631) shows\nreturning to a previous Go To Line search:\n\n## Project Search Placement\n\nGlobal project search can now stay on the left, move to the right, or open as\na centered popup. Choose **Settings > Plugins > Project Search > Position**\nto change it. Keyboard result navigation remains available, and the centered\nview stays open while a live search updates its matches.\n\nProject search transitions were restored too, and centered search and About\ncan slide into view. The shared floating API respects the transition settings,\nso disabling animations works consistently for these popups.\n\nSearch and About animation preview from PR #635\n\n## Workspace Sessions\n\nThe previous release fixed automatic session restoration. This release adds a\nway to choose which saved session to load and remove sessions you no longer\nneed. Open **File > Sessions**, or use the `workspace:load-session`,\n`workspace:remove-session` and `workspace:clear-sessions` commands.\n\n![File menu showing saved workspace sessions and load, remove and clear actions](https://github.com/user-attachments/assets/ddb2d271-744b-4ebf-a9b9-c09a40f11aaa)\n\nBefore loading another session, Pragtical backs up the current workspace,\nincluding unsaved text. Loading replaces the current document layout, while\nremoving saved sessions leaves the open tabs alone. These operations apply to\nthe current project, without clearing sessions belonging to other projects.\n\n## TreeView File Counts\n\nThanks to [Vinfall](https://github.com/Vinfall), the file tree can show how many\nfiles are inside a collapsed directory. Counts follow the tree's hidden and\nignored-file settings. Here is the preview from the original contribution:\n\n![Directory file counts beside collapsed folders in TreeView](https://github.com/user-attachments/assets/6eaa7b45-b876-4c64-91a2-543f3491569f)\n\nThe follow-up work moved counting into its own bundled plugin and made the\nscans yield while traversing directories, keeping the editor usable during\nlarge counts. Enable it under **Settings > Plugins > Treeview File Counts**;\nit is off by default. TreeView also has separate row drawing hooks for plugins\nthat need to add gutter content or information beside a filename.\n\n## Plugin Manager\n\nThe Plugin Manager has a refreshed interface with search, category and status\nfilters, sorting, a details pane, and checkboxes for selecting several plugins.\nInstall, upgrade or uninstall the selected entries without having to repeat\nthe operation for every row. Filters and selection state are retained through\nthe view's workspace restoration.\n\nThe package manager now uses `core.json`, and the old standalone JSON library\ncopies have been removed from local runs, packages and AppImages. The plugins\npin also includes the latest LSP and Ghostty updates, the Center Doc menu-bar\ntoggle for Zen mode, and Emoji fixes.\n\n## Lower Idle CPU And UI Fixes\n\nThe main loop now uses SDL events for long waits and precise sleeps for short\nframe delays. The unfocused grace period is renewed only when there is actual\nactivity. In the idle check shared with\n[PR #645](https://github.com/pragtical/pragtical/pull/645), unfocused CPU usage\nfell from 1.6% to about 0.24% of one core; the result depends on the workload\nand enabled plugins.\n\nWidget updates do less work, and collapsed panes no longer receive negative\ndimensions that could keep hidden content animating and redrawing. Animations\nalso snap to their exact destination, allowing floating views to finish\nclosing instead of leaving a border behind.\n\nThere are fixes for layout invalidation after scaling, stray dividers from\nhidden panes, nested list scrollbars, and selecting long TextBox input with\nthe mouse. TextBox inputs can no longer accidentally open a Save dialog when\nusing document save commands. SDL GPU also preserves color emoji RGB values,\napplying text opacity without tinting the glyphs with the current text color.\n\n## Build Updates\n\nBundled dependencies were refreshed to SDL3 3.4.18, SDL3\\_image 3.4.8,\nFreeType 2.15.0, PCRE2 10.49 and libpng 1.6.59, alongside updated Widget,\nPlugin Manager, colors and plugins revisions. CI actions and macOS runners\nwere updated too.\n\nVinfall is now included in the About dialog's contributors list. Thanks to\neverybody who reported issues, tested the rolling builds and helped improve\nthe editor!\n\nDownloads on [GitHub](https://github.com/pragtical/pragtical/releases/tag/v3.14.0).\n\n## Changes Log\n\n### New Features\n\n- Add application menus, floating views, command palette placement and toolbar docking\n  ([#630](https://github.com/pragtical/pragtical/pull/630))\n- Add optional command prompt state recall\n  ([#631](https://github.com/pragtical/pragtical/pull/631))\n- Add configurable project search placement\n  ([#632](https://github.com/pragtical/pragtical/pull/632))\n- Add workspace session management\n  ([#633](https://github.com/pragtical/pragtical/pull/633))\n- Add optional directory file counts to TreeView\n  ([#623](https://github.com/pragtical/pragtical/pull/623))\n\n### Enhancements\n\n- Enable borderless mode and the application menu by default\n  ([#643](https://github.com/pragtical/pragtical/pull/643))\n- Embed the application menu in the borderless title bar\n  ([#637](https://github.com/pragtical/pragtical/pull/637))\n- Make more editor commands accessible from the application menus\n  ([#640](https://github.com/pragtical/pragtical/pull/640))\n- Add TreeView drawing hooks and asynchronous file counting\n  ([#641](https://github.com/pragtical/pragtical/pull/641))\n- Lower idle CPU usage\n  ([#645](https://github.com/pragtical/pragtical/pull/645))\n- Update Widget to reduce CPU usage\n  ([#646](https://github.com/pragtical/pragtical/pull/646))\n- Integrate the updated Plugin Manager and remove obsolete JSON library copies\n  ([#624](https://github.com/pragtical/pragtical/pull/624))\n\n### Fixes\n\n- Allow disabling save commands for embedded document views\n  ([#626](https://github.com/pragtical/pragtical/pull/626))\n- Fix mouse selection and scrolling in TextBox inputs\n  ([#628](https://github.com/pragtical/pragtical/pull/628))\n- Fix Widget list layout and nested scrollbar input\n  ([#629](https://github.com/pragtical/pragtical/pull/629))\n- Fix UI scaling, hidden pane drawing and Widget integration\n  ([#634](https://github.com/pragtical/pragtical/pull/634))\n- Fix project search and floating view sliding animations\n  ([#635](https://github.com/pragtical/pragtical/pull/635))\n- Preserve color emoji colors in SDL GPU text rendering\n  ([#636](https://github.com/pragtical/pragtical/pull/636))\n- Keep centered command prompts stable while filtering\n  ([#638](https://github.com/pragtical/pragtical/pull/638))\n- Finish animations at their exact destination\n  ([#639](https://github.com/pragtical/pragtical/pull/639))\n- Keep split nodes and tab content within nonnegative bounds\n  ([#647](https://github.com/pragtical/pragtical/pull/647))\n\n### Build System\n\n- Update CI actions, macOS runners and bundled dependencies\n  ([#644](https://github.com/pragtical/pragtical/pull/644))\n- Update plugins subproject\n  ([a8f3b1a0](https://github.com/pragtical/plugins/commit/a8f3b1a0))\n\n### Other Changes\n\n- Add Vinfall to the About dialog contributors\n  ([#642](https://github.com/pragtical/pragtical/pull/642))\n","body_html":"<p>Before getting into the changes, here is a look at how Pragtical has been\nevolving, including some of the new interface improvements in this release.</p>\n<p>Pragtical v3.14.0 brings application menus, more flexible placement of command\nprompts and project search, workspace session management, a refreshed Plugin\nManager, and lower idle CPU usage. The changes below cover the work since\nv3.13.1.</p>\n<h2 id=\"application-menus-and-toolbar\">Application Menus And Toolbar</h2>\n<p>Many editor commands can now be found under the File, Edit, Search, View,\nTools and Help menus. This makes it easier to discover commands without\nknowing their names or remembering every keybinding. Plugins can also add\ntheir own entries, with shortcuts and enabled states following the registered\ncommands.</p>\n<p>Borderless mode and the menu bar are now enabled by default. In borderless\nmode, the menu sits beside the logo in the title bar, leaving the rest of the\ntitle area available for dragging the window. Thanks to Tocal on Discord for\nsuggesting this placement!</p>\n<figure><img src=\"https://github.com/user-attachments/assets/96f3b1a8-a521-40b1-97fd-f22101b901f5\" alt=\"Application menu embedded in the borderless title bar, with the Tools menu open\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>Both <strong>Borderless</strong> and <strong>Show Menu Bar</strong> can be changed under\n<strong>Settings &gt; Core &gt; User Interface</strong>. The borderless resize area is now a thin\nstrip on all four edges, so it no longer steals clicks from status bar items.\nResizing is disabled while maximized or fullscreen.</p>\n<p>Here is the menu demonstration from <a href=\"https://github.com/pragtical/pragtical/pull/630\" rel=\"nofollow ugc noopener\">PR #630</a>:</p>\n<p>The toolbar can also move. <strong>Settings &gt; Plugins &gt; Treeview &gt; Toolbar Position</strong>\noffers Left, Bottom, Top and Right: place it beside, above or below the file\ntree, or at the editor&#39;s right edge. This screenshot from the initial menu and\ntoolbar PR shows the right-hand layout:</p>\n<figure><img src=\"https://github.com/user-attachments/assets/01ec1ceb-9412-4b8f-80d6-806b652804cc\" alt=\"Application menu and toolbar placed at the editor&#39;s right edge\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<h2 id=\"command-prompts-and-floating-views\">Command Prompts And Floating Views</h2>\n<p>Command prompts are no longer limited to the bottom of the window. The\n<strong>Command Palette Position</strong> setting under <strong>Core &gt; User Interface</strong> offers\nBottom, Top and Center. Center floats the input and its suggestions over the\neditor instead of resizing the document panes. Bottom remains the default.</p>\n<p>The same option can be set in your user module:</p>\n<pre><code>local config = require &quot;core.config&quot;  \nconfig.commandview_position = &quot;center&quot;</code></pre>\n<p>The next prompt uses the new placement. Centered prompts keep their top edge\nsteady while filtering results, instead of moving around as the list gets\nshorter.</p>\n<p>Underneath these changes is a shared floating-view API. Menus, completion\npopups and dialogs can use the same placement, focus and mouse handling,\ninstead of each plugin having to intercept editor events on its own. Plugin\nauthors can find more details in the <a href=\"https://pragtical.dev/docs/developer-guide/floating-views\" rel=\"nofollow ugc noopener\">floating views guide</a>.</p>\n<p>More floating-view demos from PR #630</p>\n<p>Command prompts and the floating About dialog:</p>\n<p>Completion and documentation popups with the optional LSP plugin:</p>\n<p>Prompts can also remember where you left them. CommandView now supports\noptional snapshots of input, selection and result scrolling. Core commands\nuse this to resume repeated searches and commands, with context checks so a\nGo To Line search does not accidentally follow you into a different document.\nThe video from <a href=\"https://github.com/pragtical/pragtical/pull/631\" rel=\"nofollow ugc noopener\">PR #631</a> shows\nreturning to a previous Go To Line search:</p>\n<h2 id=\"project-search-placement\">Project Search Placement</h2>\n<p>Global project search can now stay on the left, move to the right, or open as\na centered popup. Choose <strong>Settings &gt; Plugins &gt; Project Search &gt; Position</strong>\nto change it. Keyboard result navigation remains available, and the centered\nview stays open while a live search updates its matches.</p>\n<p>Project search transitions were restored too, and centered search and About\ncan slide into view. The shared floating API respects the transition settings,\nso disabling animations works consistently for these popups.</p>\n<p>Search and About animation preview from PR #635</p>\n<h2 id=\"workspace-sessions\">Workspace Sessions</h2>\n<p>The previous release fixed automatic session restoration. This release adds a\nway to choose which saved session to load and remove sessions you no longer\nneed. Open <strong>File &gt; Sessions</strong>, or use the <code>workspace:load-session</code>,\n<code>workspace:remove-session</code> and <code>workspace:clear-sessions</code> commands.</p>\n<figure><img src=\"https://github.com/user-attachments/assets/ddb2d271-744b-4ebf-a9b9-c09a40f11aaa\" alt=\"File menu showing saved workspace sessions and load, remove and clear actions\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>Before loading another session, Pragtical backs up the current workspace,\nincluding unsaved text. Loading replaces the current document layout, while\nremoving saved sessions leaves the open tabs alone. These operations apply to\nthe current project, without clearing sessions belonging to other projects.</p>\n<h2 id=\"treeview-file-counts\">TreeView File Counts</h2>\n<p>Thanks to <a href=\"https://github.com/Vinfall\" rel=\"nofollow ugc noopener\">Vinfall</a>, the file tree can show how many\nfiles are inside a collapsed directory. Counts follow the tree&#39;s hidden and\nignored-file settings. Here is the preview from the original contribution:</p>\n<figure><img src=\"https://github.com/user-attachments/assets/6eaa7b45-b876-4c64-91a2-543f3491569f\" alt=\"Directory file counts beside collapsed folders in TreeView\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>The follow-up work moved counting into its own bundled plugin and made the\nscans yield while traversing directories, keeping the editor usable during\nlarge counts. Enable it under <strong>Settings &gt; Plugins &gt; Treeview File Counts</strong>;\nit is off by default. TreeView also has separate row drawing hooks for plugins\nthat need to add gutter content or information beside a filename.</p>\n<h2 id=\"plugin-manager\">Plugin Manager</h2>\n<p>The Plugin Manager has a refreshed interface with search, category and status\nfilters, sorting, a details pane, and checkboxes for selecting several plugins.\nInstall, upgrade or uninstall the selected entries without having to repeat\nthe operation for every row. Filters and selection state are retained through\nthe view&#39;s workspace restoration.</p>\n<p>The package manager now uses <code>core.json</code>, and the old standalone JSON library\ncopies have been removed from local runs, packages and AppImages. The plugins\npin also includes the latest LSP and Ghostty updates, the Center Doc menu-bar\ntoggle for Zen mode, and Emoji fixes.</p>\n<h2 id=\"lower-idle-cpu-and-ui-fixes\">Lower Idle CPU And UI Fixes</h2>\n<p>The main loop now uses SDL events for long waits and precise sleeps for short\nframe delays. The unfocused grace period is renewed only when there is actual\nactivity. In the idle check shared with\n<a href=\"https://github.com/pragtical/pragtical/pull/645\" rel=\"nofollow ugc noopener\">PR #645</a>, unfocused CPU usage\nfell from 1.6% to about 0.24% of one core; the result depends on the workload\nand enabled plugins.</p>\n<p>Widget updates do less work, and collapsed panes no longer receive negative\ndimensions that could keep hidden content animating and redrawing. Animations\nalso snap to their exact destination, allowing floating views to finish\nclosing instead of leaving a border behind.</p>\n<p>There are fixes for layout invalidation after scaling, stray dividers from\nhidden panes, nested list scrollbars, and selecting long TextBox input with\nthe mouse. TextBox inputs can no longer accidentally open a Save dialog when\nusing document save commands. SDL GPU also preserves color emoji RGB values,\napplying text opacity without tinting the glyphs with the current text color.</p>\n<h2 id=\"build-updates\">Build Updates</h2>\n<p>Bundled dependencies were refreshed to SDL3 3.4.18, SDL3_image 3.4.8,\nFreeType 2.15.0, PCRE2 10.49 and libpng 1.6.59, alongside updated Widget,\nPlugin Manager, colors and plugins revisions. CI actions and macOS runners\nwere updated too.</p>\n<p>Vinfall is now included in the About dialog&#39;s contributors list. Thanks to\neverybody who reported issues, tested the rolling builds and helped improve\nthe editor!</p>\n<p>Downloads on <a href=\"https://github.com/pragtical/pragtical/releases/tag/v3.14.0\" rel=\"nofollow ugc noopener\">GitHub</a>.</p>\n<h2 id=\"changes-log\">Changes Log</h2>\n<h3 id=\"new-features\">New Features</h3>\n<ul><li><p>Add application menus, floating views, command palette placement and toolbar docking</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/630\" rel=\"nofollow ugc noopener\">#630</a>)</p></li><li><p>Add optional command prompt state recall</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/631\" rel=\"nofollow ugc noopener\">#631</a>)</p></li><li><p>Add configurable project search placement</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/632\" rel=\"nofollow ugc noopener\">#632</a>)</p></li><li><p>Add workspace session management</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/633\" rel=\"nofollow ugc noopener\">#633</a>)</p></li><li><p>Add optional directory file counts to TreeView</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/623\" rel=\"nofollow ugc noopener\">#623</a>)</p></li></ul>\n<h3 id=\"enhancements\">Enhancements</h3>\n<ul><li><p>Enable borderless mode and the application menu by default</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/643\" rel=\"nofollow ugc noopener\">#643</a>)</p></li><li><p>Embed the application menu in the borderless title bar</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/637\" rel=\"nofollow ugc noopener\">#637</a>)</p></li><li><p>Make more editor commands accessible from the application menus</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/640\" rel=\"nofollow ugc noopener\">#640</a>)</p></li><li><p>Add TreeView drawing hooks and asynchronous file counting</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/641\" rel=\"nofollow ugc noopener\">#641</a>)</p></li><li><p>Lower idle CPU usage</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/645\" rel=\"nofollow ugc noopener\">#645</a>)</p></li><li><p>Update Widget to reduce CPU usage</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/646\" rel=\"nofollow ugc noopener\">#646</a>)</p></li><li><p>Integrate the updated Plugin Manager and remove obsolete JSON library copies</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/624\" rel=\"nofollow ugc noopener\">#624</a>)</p></li></ul>\n<h3 id=\"fixes\">Fixes</h3>\n<ul><li><p>Allow disabling save commands for embedded document views</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/626\" rel=\"nofollow ugc noopener\">#626</a>)</p></li><li><p>Fix mouse selection and scrolling in TextBox inputs</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/628\" rel=\"nofollow ugc noopener\">#628</a>)</p></li><li><p>Fix Widget list layout and nested scrollbar input</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/629\" rel=\"nofollow ugc noopener\">#629</a>)</p></li><li><p>Fix UI scaling, hidden pane drawing and Widget integration</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/634\" rel=\"nofollow ugc noopener\">#634</a>)</p></li><li><p>Fix project search and floating view sliding animations</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/635\" rel=\"nofollow ugc noopener\">#635</a>)</p></li><li><p>Preserve color emoji colors in SDL GPU text rendering</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/636\" rel=\"nofollow ugc noopener\">#636</a>)</p></li><li><p>Keep centered command prompts stable while filtering</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/638\" rel=\"nofollow ugc noopener\">#638</a>)</p></li><li><p>Finish animations at their exact destination</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/639\" rel=\"nofollow ugc noopener\">#639</a>)</p></li><li><p>Keep split nodes and tab content within nonnegative bounds</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/647\" rel=\"nofollow ugc noopener\">#647</a>)</p></li></ul>\n<h3 id=\"build-system\">Build System</h3>\n<ul><li><p>Update CI actions, macOS runners and bundled dependencies</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/644\" rel=\"nofollow ugc noopener\">#644</a>)</p></li><li><p>Update plugins subproject</p><p>(<a href=\"https://github.com/pragtical/plugins/commit/a8f3b1a0\" rel=\"nofollow ugc noopener\">a8f3b1a0</a>)</p></li></ul>\n<h3 id=\"other-changes\">Other Changes</h3>\n<ul><li><p>Add Vinfall to the About dialog contributors</p><p>(<a href=\"https://github.com/pragtical/pragtical/pull/642\" rel=\"nofollow ugc noopener\">#642</a>)</p></li></ul>","headings":[{"level":2,"text":"Application Menus And Toolbar","id":"application-menus-and-toolbar"},{"level":2,"text":"Command Prompts And Floating Views","id":"command-prompts-and-floating-views"},{"level":2,"text":"Project Search Placement","id":"project-search-placement"},{"level":2,"text":"Workspace Sessions","id":"workspace-sessions"},{"level":2,"text":"TreeView File Counts","id":"treeview-file-counts"},{"level":2,"text":"Plugin Manager","id":"plugin-manager"},{"level":2,"text":"Lower Idle CPU And UI Fixes","id":"lower-idle-cpu-and-ui-fixes"},{"level":2,"text":"Build Updates","id":"build-updates"},{"level":2,"text":"Changes Log","id":"changes-log"},{"level":3,"text":"New Features","id":"new-features"},{"level":3,"text":"Enhancements","id":"enhancements"},{"level":3,"text":"Fixes","id":"fixes"},{"level":3,"text":"Build System","id":"build-system"},{"level":3,"text":"Other Changes","id":"other-changes"}]}}