This repository was archived by the owner on Jul 15, 2026. It is now read-only.
Move encrypted DB snapshots into a dedicated Backups tab - #28
Merged
Conversation
The encrypted-DB-snapshot inventory graduated out of /status into its own Settings-shell section at /backups (issue #2). The new tab renders ONLY the snapshot story — total footprint, snapshot count, and the per-snapshot table (name, taken-at, size, retention tier) — reusing store.ListSnapshots and the footprint sum that used to live in handleStatus. - New GET /backups route + handleBackups (internal/web/backups.go), following the SPEC-0008 *_content boosted-partial pattern (backups_content owns the <title> + #main-content). - Snapshot card markup moved from status.html into backups.html; statusData drops Snapshots/SnapshotFootprint/HasSnapshotPipeline and handleStatus no longer computes them. Status is once again just ingest + sync health. - HasSnapshotPipeline behavior preserved verbatim (joestump#164): a machine with no snapshot pipeline shows the single neutral "No snapshot pipeline on this machine" line, not a "0 B across 0 snapshots" card. - settings_subnav gains a Backups tab after Status (Status renamed from "Status & backups"); the Overview's stale Status quick-link copy updated. - Tests: TestBackupsPage (with pipeline), TestBackupsPageNoPipeline (moved from the old /status conditional test), TestBackupsBoostedPartial; /backups added to the shared pageRoutes so the REQ-0008-006 partial/full contract covers it; TestStatusPage asserts the snapshot surface is gone from /status. No new CSS classes (backups reuses status-* classes; the tab reuses settings-tab), so app.css is unchanged and CI-fresh. Part of #2 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Status no longer renders snapshots (moved to /backups in #2); document the new GET /backups route in the design.md route map. Co-Authored-By: Claude Fable 5 <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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Part of #2. Closes #2.
Builds on the merged Overview consolidation (#1).
What
GET /backupsroute (internal/web/backups.go) rendering only the snapshot inventory: footprint, count, and the per-snapshot table (name, taken-at, size, retention tier). Reusesstore.ListSnapshotsand the footprint sum that previously lived inhandleStatus.templates/backups.htmlfollowing the SPEC-0008 boosted-partial pattern (backups_contentowns<title>and#main-content), inside the shared Settings shell.HasSnapshotPipelinepreserved (Status: snapshots card reads as broken when no snapshot pipeline exists joestump/msgbrowse#164 behavior): no-pipeline machines show the single neutral "No snapshot pipeline on this machine." line rather than a "0 B across 0 snapshots" card.status.html;statusData/handleStatusno longer compute the now-unused snapshot data. Status is now just ingest + device-sync health.settings_subnavgains a Backups tab after Status; the old "Status & backups" label becomes "Status". Overview's Status quick-link copy updated to match.Tests
TestBackupsPage,TestBackupsPageNoPipeline,TestBackupsBoostedPartial;/backupsadded to the sharedpageRoutespartial/history contract;TestStatusPageasserts the snapshot surface is gone from/status.Note
Cross-review flagged that the
settings_subnavtab-count assertion will collide with the #12 settings-UI branch (Wave 3) — whichever lands second re-bumps the count. Not a defect here.🤖 Generated with Claude Code
Generated by Claude Code