Changelog
What's new
Recent releases have focused on keyboard navigation completeness, theme persistence and feed discovery from the app itself.
v2.4.0
Component-split licensing
- Licensing split by component: user interface under LGPL-3.0, model under Apache-2.0
- Header now shows two licence buttons: "UI Licence" (LGPL-3.0) and "Model Licence" (Apache-2.0), each with its own dialog
- CONTRIBUTING.md added with contribution guidelines and the layer invariant
- Licence texts split into LICENSE-LGPL-3.0.txt and LICENSE-APACHE-2.0.txt, mapped from the root LICENSE
v2.3.0
Cross-Platform Release + Diagnostics
- macOS DMG build - tested on Tahoe
- Linux Flatpak - tested on Ubuntu
- Windows installer rebuilt and re-tested on Windows 11
- Crash diagnostics: stdout/stderr redirected to ~/Library/Logs/Meridian/meridian.log in frozen mode
- About dialog icon and Licence dialog text rendering fixed
- Bulk subscribe confirmation dialog height corrected - previously showed only one URL
v2.2.0
UI/UX Overhaul + Keyboard Navigation
- Full UI/UX layout overhaul: buttons replace menus throughout
- Complete Tab/Shift+Tab and arrow key navigation across all controls
- Dark/light theme preference persists across restarts via Qt.labs.settings
- Escape closes the Feed Discovery panel from any control
- 371 tests, 100% branch coverage
v2.1.0
Full Keyboard Navigation
- Every interactive element reachable and operable without a mouse
- Tab chain: File menu → Search → Manage → Theme toggle → Feed list → Item list → Open in Browser → wraps
- Amber focus ring on all focusable controls
- Full keyboard nav inside Manage Subscriptions and all its dialogs
- Filter dialog opens pre-populated with existing terms as tabbable toggleable rows
- Left/Right cursor navigates between dialog footer buttons (Cancel / OK)
v2.0.0
Feed Discovery
- Search by topic or keyword - subscribe to one or many feeds without leaving the app
- Discovery panel runs on an isolated async event loop in a daemon thread
- DiscoveryFetcher ABC with FeedsearchFetcher implementation - same layered boundaries as the rest of the system
- HTTP and HTTPS feed URLs accepted (HTTP feeds follow redirects transparently)
- Splash screen with rounded corners; Win32 mutex prevents multiple instances
- 100% branch coverage maintained including the new discovery stack
v1.0.1
Feed Reader UI + Sample Feeds
- Reworked FeedReader layout: hero thumbnail, media player, sort controls, unread indicator dot
- feeds_export.json ships with the repo - curated RSS, Atom and MFEED subscriptions ready to import
- LGPL-3.0 licence added to Help menu and corrected throughout documentation
- black formatting and flake8 clean across all Python sources
v0.3.0
Windows Installer + Splash Screen
- MeridianSetup.exe: per-user installer with upgrade, repair and uninstall workflows
- Registers with Windows Settings > Apps; creates desktop and Start Menu shortcuts
- No administrator privileges required; user data preserved across upgrades
- Branded splash screen displayed on launch while the app initialises
- Full multi-resolution icon set (16 px through 512 px) for sharp rendering everywhere