Files
minstrel/flutter_client/pubspec.yaml
T
bvandeusen 32c8d4f28f feat(flutter): pre-warm covers during library sync
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.
2026-05-13 18:06:53 -04:00

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