computeTaskId function
Deterministic background_downloader task ID for a model download (#383/#2).
Derived only from the stable Task.split identity — NOT the url (so a rotated
signed URL still maps to the same partial) and NOT the absolute path (so an iOS
app-container UUID change on every update doesn't churn the id). Object.hashCode
is not a spec-stable key across runs/SDKs; sha256 of the triple is.
Not @visibleForTesting: it is a real internal API used in production by both
the download path and the reclaim reconciliation (mobile_model_manager).
Implementation
String computeTaskId(BaseDirectory base, String directory, String filename) =>
sha256.convert(utf8.encode('${base.name}|$directory|$filename')).toString();