name: minstrel description: Minstrel mobile client publish_to: 'none' version: 2026.5.18+9 environment: sdk: '>=3.5.0 <4.0.0' flutter: '>=3.24.0' dependencies: flutter: sdk: flutter flutter_riverpod: ^3.3.1 dio: ^5.7.0 just_audio: ^0.10.5 audio_service: ^0.18.15 # Audio focus + interruptions + becoming-noisy. just_audio auto-manages # session activation once configured; the app must still handle # interruption/becoming-noisy itself (just_audio does not). Same author # as just_audio/audio_service so versions track together. audio_session: ^0.2.3 flutter_secure_storage: ^10.1.0 go_router: ^17.2.3 flutter_svg: ^2.0.16 # Lucide icon set (design system mandates Lucide, not Material). # Icons exposed as LucideIcons. IconData usable in Icon(). flutter_lucide: ^1.11.0 google_fonts: ^8.1.0 # 10.x conflicts with flutter_secure_storage 10.x on win32. Hold at 8.3.1 # until either lib bumps win32 to 6.x. package_info_plus: ^8.3.1 pub_semver: ^2.1.4 cupertino_icons: ^1.0.8 path_provider: ^2.1.5 drift: ^2.18.0 drift_flutter: ^0.2.0 sqlite3_flutter_libs: ^0.5.24 connectivity_plus: ^6.0.5 flutter_timezone: ^4.1.1 palette_generator: ^0.3.3 # Disk-persistent image cache. Image.network only caches in memory, so # cover art repainted after a scroll-off or app restart re-fetches from # the server. cached_network_image stores the bytes under # path_provider's temp dir keyed by URL, surviving both. Used directly # by ServerImage (auth-aware path) and as CachedNetworkImageProvider # for the mini bar (which composes its own Image widget). cached_network_image: ^3.4.1 # flutter_cache_manager is the disk-cache layer cached_network_image # sits on top of. SyncController uses DefaultCacheManager directly to # pre-warm covers during metadata sync, so a cold-start home grid # paints from disk on the very first scroll rather than firing a # network round-trip per tile. flutter_cache_manager: ^3.4.1 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 mocktail: ^1.0.4 drift_dev: ^2.18.0 build_runner: ^2.4.13 flutter: uses-material-design: true assets: - assets/svg/ - assets/error-copy.json - shared/fabledsword.tokens.json