Skip to content

0.2.0-M9

Choose a tag to compare

@github-actions github-actions released this 18 Jun 09:19
d3acd62

The platform-migration milestone. The whole stack moves to Spring AI 2.0, Spring Boot 4.1, Vaadin 25, Jackson 3, and Electron 42, and Agentic Chat gets a substantial overhaul - provider-aware options, a reasoning toggle, a Prompt Library, rich rendering, and a per-chat memory window with full local history.

Highlights

  • Migrated to Spring AI 2.0 / Spring Boot 4.1 / Vaadin 25 - Spring Boot 3.5 -> 4.1, Spring AI 1.1 -> 2.0, Vaadin 24 -> 25 (25.1.8), Jackson 2 -> 3 (tools.jackson), Spring Security 7, Electron 28 -> 42 (Chromium for the Vaadin 25 webview). APIs adapted: immutable builder chat options, the ToolCallingAdvisor / .tools() surface, Jackson 3 unchecked exceptions (corrupt-file boot resilience restored), Vaadin 25 access control + explicit Lumo theming, the openai (was openai-sdk) starter; the vendored OllamaChatModel patch is dropped.
  • Agentic Chat overhaul - provider-aware request options, a per-request reasoning/think toggle, system-prompt presets + a Prompt Library of {{variable}} templates, a message hover toolbar and always-visible meta row (elapsed, tokens, model, tool/RAG chips), and rich rendering (code highlight, KaTeX, Mermaid) with a shared categorized tool selector.
  • Per-chat memory window with full local history - LlmWindowChatMemory feeds the last N messages to the model while the full conversation stays on screen and disk; tunable globally and per chat.
  • Apple Silicon MLX auto-select - an mlx Spring profile auto-selects MLX-quantized models for faster local inference; the Electron launcher maps MLX models.

Fixed

  • Repaired dead built-in tools (convertCurrency, getCountryInfo); oversized tool results capped and clipped before they overflow the model context.
  • Chat - exposed-tool combos repopulate on attach, restored-message timestamp null-guard, a provider-aware model-download gate, provider stop-sequence validation, preset-driven built-in MCP exposure, and the generating indicator kept alive across think / tool / RAG phases.
  • Vector Database grid degrades to an empty state + toast when the embedding provider is unreachable, instead of aborting navigation; workspace header overflow.
  • Electron download/launcher UX - per-task cancel, throttled progress, debounced window-fit, and chmod 600 on the persisted secrets file.

Build

  • Docker image builds on Spring Boot 4 (tools ... extract --layers --launcher, replacing the removed layertools jarmode).
  • Dependency upgrade - Spring Boot 4.1.0, Spring AI 2.0.0, Vaadin 25.1.8, Electron 42, electron-builder 26.15.3.

Verification

Full unit suite 1282 / 0 failures / 0 errors + checkstyle clean. Production build green on Vaadin 25.1.8; frontend npm audit 0 vulnerabilities (react-router 7.17.0, dompurify 3.4.10, patched via the Vaadin bump). Live pre-release QA across all pages (Lumo rendering), chat end-to-end, markdown/charts, and mobile - release-ready.

See CHANGELOG.md for the complete list.

What's Changed

  • 0.2.0-M8 - MCP safety, proxy, HITL, and integrity by @JM-Lab in #13
  • 0.2.0-M9 - Spring AI 2.0 / Boot 4 / Vaadin 25 migration, agentic chat overhaul by @JM-Lab in #14

Full Changelog: 0.2.0-M8...v0.2.0-M9