v1.4.0: versioning, What's New, bundled models, update check, color emoji, performance #5

Merged
Khyretos merged 5 commits from claude/sharp-maxwell-tu1if6 into main 2026-09-25 22:52:21 +02:00
Khyretos commented 2026-09-25 22:52:14 +02:00 (Migrated from github.com)

Everything for v1.4.0. Full user-facing notes: release-notes/v1.4.0.md (also used as the release description by the workflow).

  • Automatic versioning from the git tag (cmake/GenerateVersion.cmake): Help section, Settings window title, tray tooltip, Windows .exe Properties, macOS Info.plist. CI passes git describe into the Docker builds.
  • What's New dialog on the first launch after an update, offering bundled models that are new in that version.
  • Settings → Bundled Models: add missing models or restore one (the current folder is moved to model_backups/).
  • Optional update check against GitHub releases (WinHTTP / curl), with a "don't remind me about this version" option. No automatic install.
  • Fonts: Noto Sans UI font plus Twemoji color emoji through ImGui's FreeType loader. FreeType is built in all three Dockerfiles.
  • Performance: frame cap respected (the Settings window's vsync was driving the whole loop), Settings throttled in the background, allocation-free uniform lookups, shaders unpacked once, fewer GLAD reloads and X11 round trips. Measured about 50% less main-thread CPU per frame on the keyboard model.
  • Dead code removed, including the unused per-window V-Sync setting and recreateControllerWindow().
  • Fixes: FreeType pkg-config prefix in the AppImage build; version popups anchored top-centre.

Tested locally: Linux build, unit tests (4/4), the app run headless under Xvfb for every dialog and section. Windows code paths syntax-checked with MinGW. You built and tested the AppImage locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RFQWGfeeTFgXVUx8QFS7Wy


Generated by Claude Code

Everything for v1.4.0. Full user-facing notes: `release-notes/v1.4.0.md` (also used as the release description by the workflow). - **Automatic versioning** from the git tag (`cmake/GenerateVersion.cmake`): Help section, Settings window title, tray tooltip, Windows `.exe` Properties, macOS `Info.plist`. CI passes `git describe` into the Docker builds. - **What's New** dialog on the first launch after an update, offering bundled models that are new in that version. - **Settings → Bundled Models**: add missing models or restore one (the current folder is moved to `model_backups/`). - **Optional update check** against GitHub releases (WinHTTP / curl), with a "don't remind me about this version" option. No automatic install. - **Fonts**: Noto Sans UI font plus Twemoji color emoji through ImGui's FreeType loader. FreeType is built in all three Dockerfiles. - **Performance**: frame cap respected (the Settings window's vsync was driving the whole loop), Settings throttled in the background, allocation-free uniform lookups, shaders unpacked once, fewer GLAD reloads and X11 round trips. Measured about 50% less main-thread CPU per frame on the keyboard model. - **Dead code removed**, including the unused per-window V-Sync setting and `recreateControllerWindow()`. - **Fixes**: FreeType pkg-config prefix in the AppImage build; version popups anchored top-centre. Tested locally: Linux build, unit tests (4/4), the app run headless under Xvfb for every dialog and section. Windows code paths syntax-checked with MinGW. You built and tested the AppImage locally. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01RFQWGfeeTFgXVUx8QFS7Wy --- _Generated by [Claude Code](https://claude.ai/code/session_01RFQWGfeeTFgXVUx8QFS7Wy)_
Sign in to join this conversation.
No description provided.