Skip to content

Add Treeherder install history#32

Merged
titooan merged 2 commits into
mainfrom
history
May 27, 2026
Merged

Add Treeherder install history#32
titooan merged 2 commits into
mainfrom
history

Conversation

@titooan

@titooan titooan commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Add a History screen reachable from the home top bar that lists Treeherder APKs whose installer was opened. History entries persist the try metadata, job metadata, artifact URL, and cache-relative path so the screen can show install context and navigate back to the revision search.

Record installer launches from both Treeherder search and Treeherder user flows. The History screen resolves each entry against the local Treeherder cache so cached APKs show an Install action immediately, while missing APKs can be downloaded from the stored artifact URL and then installed.

Move APK downloads into a files-backed download-cache with legacy cache migration and FileProvider support. Exclude the new download cache from backup/transfer.

Harden APK downloads by writing to .part files, preserving an existing final APK with backup files during replacement, restoring backups after interrupted replacements, and ignoring unmanaged backup suffixes.

Tests cover history state resolution, installer launch recording, legacy cache migration, and the download replacement/recovery paths.

Titouan Thibaud added 2 commits May 27, 2026 00:50
Add a History screen reachable from the home top bar that lists Treeherder APKs whose installer was opened. History entries persist the try metadata, job metadata, artifact URL, and cache-relative path so the screen can show install context and navigate back to the revision search.

Record installer launches from both Treeherder search and Treeherder user flows. The History screen resolves each entry against the local Treeherder cache so cached APKs show an Install action immediately, while missing APKs can be downloaded from the stored artifact URL and then installed.

Move APK downloads into a files-backed download-cache with legacy cache migration and FileProvider support. Exclude the new download cache from backup/transfer.

Harden APK downloads by writing to .part files, preserving an existing final APK with backup files during replacement, restoring backups after interrupted replacements, and ignoring unmanaged backup suffixes.

Tests cover history state resolution, installer launch recording, legacy cache migration, and the download replacement/recovery paths.
Add a remove action to History cards and persist deletion through the HistoryRepository so removing an entry drops the card and deletes the corresponding database row.

Cancel active History downloads when their entry is removed, clear related APK cache files, and guard late callbacks with per-download generations. Reinserted same-key entries render as an indeterminate in-progress state while the old canceled download is still finishing so the Download button cannot start a competing writer.

Tests cover repository-backed deletion, card removal, active-download cancellation, stale callback suppression, managed cache file cleanup, and same-key retry behavior after cancellation completes.
@titooan titooan merged commit 510060d into main May 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant