feat(private-web): show latest snapshot id in backup tables#277
Merged
Conversation
Recent-runs table gains a Snapshot column showing the run's kopia snapshot id (truncated, with a copy-full button). The per-(server,type) backup tables on the server detail page and the group backup page show the latest successful snapshot for each type: id (copyable), when, and size — or 'no snapshot yet'. Backend: ServerBackupCapabilityView carries the latest successful backup's snapshot id / time / bytes, populated in the capabilities and stats handlers (bulk per group, per-type per server). Regenerated openapi.json + api-types.ts. Shared: SnapshotId/LatestSnapshot components and a formatBytes lib. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 Surfaces kopia snapshot IDs in the backup UI.
Recent runs table (group backup page)
Adds a Snapshot column showing each run's snapshot ID, truncated (they're long and opaque) with a button to copy the full value. Empty ("—") for runs with no snapshot (failures, restores).
Per-server backup tables (server detail + group page)
Each (server, backup type) row now shows the latest successful snapshot for that type: its ID (copyable), when it was taken, and how much it uploaded — or an explicit "no snapshot yet" when the type has never produced a successful backup.
Backend
ServerBackupCapabilityView carries the latest successful backup's snapshot id / time / bytes. Populated in both handlers that build it: backups stats (bulk per group via latest_success_by_server_type_for_group) and backups capabilities (per server). Both UI tables read this one DTO, so the server-detail and group views stay consistent. Regenerated openapi.json + api-types.ts.
Shared
SnapshotId / LatestSnapshot components and a formatBytes lib (moved out of BackupPanel so it can be reused).
Tests
Three new Playwright specs: the recent-runs snapshot column (truncated + copy button), a capability showing its latest snapshot (id + size, copyable), and the "no snapshot yet" empty state. Adjusted one existing failed-run assertion that now matches two "—" cells (Uploaded + the new Snapshot column).