32c8d4f28f
Slice 2 of the cover-caching pass. SyncController now downloads cover bytes for newly-upserted albums + playlists into the shared flutter_cache_manager disk cache after each sync transaction commits. A cold-start scroll through the home grid paints from disk on the very first frame instead of firing one HTTP per visible tile. Best-effort: fire-and-forget after commit, concurrency 3, per-URL failures swallowed (404 for collages that haven't built yet, 401 during token-refresh races). Artist covers skipped — ArtistRef.coverUrl is server-derived from "most-recent album" and not reconstructible client-side; album pre-warm already covers the artist's primary visual. Auth header reuses sessionTokenProvider for parity with ServerImage.
61 lines
1.8 KiB
YAML
61 lines
1.8 KiB
YAML
name: minstrel
|
|
description: Minstrel mobile client
|
|
publish_to: 'none'
|
|
version: 2026.5.11+1
|
|
|
|
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
|
|
flutter_secure_storage: ^10.1.0
|
|
go_router: ^17.2.3
|
|
flutter_svg: ^2.0.16
|
|
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
|