Add DoneAt to the download task model: set when a task finishes and
cleared when it is downloaded again. The value flows through the API
model and task record, and is shown as "Completed at" in the task
drawer info tab next to the creation time.
The shared newVersionUpdate label now reads Update on the app upgrade
dialog, the tracker update button and the extension update dialog, so
the extension flow matches the host dialog wording.
Remove the update button from the detail actions; the green chip next
to the extension title opens the update dialog on cards, the desktop
drawer and the mobile details page alike.
- Update availability is now decided solely by the backend live GitHub
check (updateFlags); the store index may lag and previously masked
new versions in the market view.
- Replace the ambiguous refresh icon on extension cards with a labeled
update button, and add a red dot badge on extension icons (card and
detail view) when an update is available.
- Surface a toast when the update check fails instead of failing silently.