Goal
Provide an app-friendly helper for model download/cache UX so Flutter examples and downstream apps do not need to hand-roll progress/cancel/retry state machines.
Motivation
Large GGUF downloads need clear UI states: resolving, cache check, downloading, verifying, promoting, ready, failed, cancelled. The low-level cache manager exposes the primitives; a higher-level helper could make correct app UX easier.
Possible shape
ModelDownloadTask or ModelDownloadController
- progress stream/value notifier
- cancel/retry support
- current stage enum
- final resolved cache entry/path
- safe error messages with URL redaction
Acceptance criteria
Goal
Provide an app-friendly helper for model download/cache UX so Flutter examples and downstream apps do not need to hand-roll progress/cancel/retry state machines.
Motivation
Large GGUF downloads need clear UI states: resolving, cache check, downloading, verifying, promoting, ready, failed, cancelled. The low-level cache manager exposes the primitives; a higher-level helper could make correct app UX easier.
Possible shape
ModelDownloadTaskorModelDownloadControllerAcceptance criteria
example/chat_app.DefaultModelDownloadManagerusable without Flutter dependencies.