-
v0.5.0 Stable
released this
2026-05-29 20:42:13 +00:00 | 563 commits to master since this release📦 Release v0.5.0
📝 Executive Summary
This release introduces comprehensive user preference management with device tracking, enhanced version compatibility features across the server-worker-client ecosystem, and significant UI improvements including syntax-highlighted markdown rendering and a unified theming system. The update also includes deployment automation scripts and several bug fixes for chat input handling and authentication.
🚀 What's New
App
- Highlighted Markdown Rendering: Chat messages now render with syntax highlighting using a token-based markdown tokenizer for code blocks, inline code, and other markdown elements.
- Expanded Chat Input: Increased collapsed input field height and auto-expand thresholds to show more message lines before scrolling.
- Server Version Metadata: App fetches and displays server version info; shows dismissible warning banner when client and server versions differ.
- User Preference Repository: Reactive repository for theme and detailed preferences with sync/update flows and system theme fallback.
- User Preference API Client: Ktor-backed client for authenticated
/api/v1/mepreference operations with device-id header support. - Version Display: App version now shown in desktop window title and browser document title for consistent branding across platforms.
- About Settings Tab: New About section in settings featuring app name, version, tagline, links, and license information.
- Appearance Theme Tab: Dedicated settings tab for theme selection with system, light, and dark mode options plus three new brand color schemes (Deep Cobalt, Modern Neutral, Tech Innovation).
- Centralized Version Info: Project version now defined centrally in
settings.gradle.ktsand accessible via generatedVersionInfo.ktin commonMain. - Unified App Lifecycle:
CommonAppLifecycleManagerconsolidates startup, setup, error, and ready-state handling across Android, Desktop, and WasmJS platforms. - Platform-Aware Theming: Shared
AppThemewith expect/actualPlatformThemewrappers for scrollbar styling on desktop and web.
Server
- Public Metadata Endpoint: New
/api/v1/public/infoendpoint exposing app name, version, and server start time. - User Device Registry: Added
user_devicestable and DAO to track per-user client devices with usage timestamps and cascade delete support. - User Preferences API: Full
/api/v1/me/preferencesAPI for reading, updating, and deleting global and device-scoped preferences. - Preference Service: Server-side
UserPreferenceServicewith support for preference merging, key validation, and device-scoped resolution. - Device Sync on Login: Authentication service now upserts device records on successful login for preference scope resolution.
Worker
- Version Compatibility Check: Worker startup now fetches server metadata and compares versions, logging mismatches as non-fatal warnings.
- Generated Version Info: Worker version logged at startup using centrally generated
VersionInfofor clearer runtime identification.
Common
- Markdown Tokenizer: Best-effort line-based tokenizer supporting headings, lists, quotes, fences, tables, links, images, code, emphasis, and escapes.
- Preference Models: Added
PreferenceScopeenum and DTOs (UserPreferenceDTO,PreferenceDetailDTO) for global and device-scoped preferences.
Infrastructure
- Deployment Scripts: PowerShell scripts for building Windows, web, and WSL Linux release packages, plus Docker image build/push workflow for GHCR.
🐛 Bug Fixes & Improvements
- Chat Input Focus: Preserved input focus and text state across expand/collapse transitions; shared focus requester prevents focus stealing.
- Input Area Scroll: Updated to Compose Multiplatform 1.11.0 with improved text field APIs and better scroll/focus behavior.
- Message Auto-Collapse: Fixed session message auto-collapse to trigger only on new session display, avoiding repeated collapsing.
- LLM Stream Handling: Switched to
readLine()to prevent premature stream termination on long responses. - Inactive Account Logging: Added warning log for login attempts rejected due to non-active accounts.
- Loading Overlay Theme: Loading screen now uses
MaterialTheme.colorScheme.surfaceinstead of fixed black tint.
🏗️ Technical Updates
- IDE Cleanup: Removed committed IDE inspection profile from version control; added inspectionProfiles to .gitignore.
- Auth Flow Refactoring: Removed standalone add-account dialog; authentication flow now handles add account action by setting session unauthenticated.
- Database Migration V12: Added migration for
user_devicesanduser_preferencestables with unique constraints and cascade delete support. - Kotlin Upgrade: Bumped Kotlin and related tooling versions (Ktor, Exposed, Coroutines, Flyway, logging) to latest releases.
- Koin Modernization: Updated to newer
KoinApplicationconfiguration API, removing deprecated lambda form. - Dependency Cleanup: Removed unused Typesafe Config dependency and SQLDelight references from the app module.
- Build Configuration: Replaced deprecated webpack static API usage in common module.
- Environment Mappings: Added
SERVER_URLand email configuration (EMAIL_PROVIDER,EMAIL_SENDER, SMTP properties) to env mapping for deployment configuration.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads