Skip to content
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
joestump-agent merged 3 commits into
mainfrom
feature/2-backups-tab
Jul 11, 2026
Merged

Move encrypted DB snapshots into a dedicated Backups tab#28
joestump-agent merged 3 commits into
mainfrom
feature/2-backups-tab

Conversation

@joestump-agent

Copy link
Copy Markdown
Owner

Part of #2. Closes #2.

Builds on the merged Overview consolidation (#1).

What

  • New GET /backups route (internal/web/backups.go) rendering only the snapshot inventory: footprint, count, and the per-snapshot table (name, taken-at, size, retention tier). Reuses store.ListSnapshots and the footprint sum that previously lived in handleStatus.
  • New templates/backups.html following the SPEC-0008 boosted-partial pattern (backups_content owns <title> and #main-content), inside the shared Settings shell.
  • HasSnapshotPipeline preserved (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.
  • Snapshot card removed from status.html; statusData/handleStatus no longer compute the now-unused snapshot data. Status is now just ingest + device-sync health.
  • Nav: settings_subnav gains 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; /backups added to the shared pageRoutes partial/history contract; TestStatusPage asserts the snapshot surface is gone from /status.

Note

Cross-review flagged that the settings_subnav tab-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

claude added 3 commits July 11, 2026 13:21
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>
@joestump-agent
joestump-agent merged commit a0ac538 into main Jul 11, 2026
3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move encrypted DB snapshots into a dedicated Backups tab

2 participants