Note: This release introduces custom game shelves, adaptive memory tiering, and a major codebase refactoring pass. Upgrading from
<= 0.9.3still requires a fresh install.
Highlights
- Custom Shelves — Create personal game collections with manual curation, filter rules (by system, region, language), or hybrid mode. Supports reordering, renaming, and per-shelf sort modes.
- Device Info Service — Adaptive memory tiering (low/standard/high RAM) auto-tunes image cache sizes, grid cache extents, and cover preload pools for low-end handhelds.
- Major Refactoring — Five mega-files split into focused widget modules, reducing the largest files by 40-90% (settings, download overlay, shelf edit, onboarding, library).
Change Log
Added:
- Custom Shelves — create personal game collections with manual curation, filter rules (by system, region, language), or hybrid mode; supports reordering, renaming, and per-shelf sort modes.
- Device Info Service — adaptive memory tiering (low/standard/high RAM) that auto-tunes image cache sizes, grid cache extents, and cover preload pools for low-end handhelds.
- Shelf Picker Dialog — quick-add games to shelves from library and game detail screens.
- System Selector Overlay — filter library view by system with visual system badges.
Improved:
- Settings screen refactored — split into Preferences, System, and About tabs with extracted
DeviceInfoCardwidget (1048→604 lines). - Download overlay refactored — extracted 7 widgets to
lib/widgets/download/(1477→793 lines). - Shelf edit screen refactored — extracted GameListOverlay, TextInputDialog to shared library widgets (1108→631 lines).
- RomM onboarding refactored — extracted RommConnectView, RommSelectView, RommFolderView, RommActionButton (1405→122 lines); state classes moved to
onboarding_state.dart(1713→1362 lines). - Library screen refactored — extracted ReorderableCardWrapper, LibraryEntry to dedicated widgets (1490→1386 lines).
- Dependency pinning — all 16 remaining caret-range dependencies pinned to exact resolved versions for reproducible builds.
Internal:
- New models:
CustomShelf,ShelfFilterRulewith JSON serialization. - New providers:
CustomShelvesNotifier/customShelvesProviderfor shelf CRUD. DeviceInfoServicewithMemoryTierclassification.- ~20 new test files covering download queue manager, unified game service, library sync, thumbnail service, custom shelves, database service, config storage, image cache, storage service, and widget tests.