Problem
DownloadService.downloadModel (lib/core/services/download_service.dart:90) downloads a multimodal model's base file and its mmproj companion file via two sequential await _downloadFile(...) calls instead of concurrently.
Failure scenario
Installing any vision-capable model (Gemma 4 E2B/E4B today, #22) makes the user wait for the sum of both transfer times instead of roughly the max of the two. Both progress-reporting closures and the shared cancel token appear safe to run concurrently (each downloads to its own file, and progress is already reported as a size-weighted average per docs/PROJECT.md).
Found during v1.2.0 release-readiness code review of the main...develop diff.
Fix direction
Kick off both downloads with Future.wait([...]) (or similar), combining progress callbacks, instead of two sequential awaits.
Problem
DownloadService.downloadModel(lib/core/services/download_service.dart:90) downloads a multimodal model's base file and its mmproj companion file via two sequentialawait _downloadFile(...)calls instead of concurrently.Failure scenario
Installing any vision-capable model (Gemma 4 E2B/E4B today, #22) makes the user wait for the sum of both transfer times instead of roughly the max of the two. Both progress-reporting closures and the shared cancel token appear safe to run concurrently (each downloads to its own file, and progress is already reported as a size-weighted average per
docs/PROJECT.md).Found during v1.2.0 release-readiness code review of the
main...developdiff.Fix direction
Kick off both downloads with
Future.wait([...])(or similar), combining progress callbacks, instead of two sequentialawaits.