Skip to content

feat: package manifest history and rollback in the dashboard#13

Open
paddo wants to merge 2 commits into
mainfrom
feat/dashboard-package-rollback
Open

feat: package manifest history and rollback in the dashboard#13
paddo wants to merge 2 commits into
mainfrom
feat/dashboard-package-rollback

Conversation

@paddo
Copy link
Copy Markdown
Contributor

@paddo paddo commented May 18, 2026

Summary

  • Packages tab gains a manifest history view: h opens a manager's commit history, Enter on an entry shows the diff — mirroring the Files tab.
  • New tether rollback packages <manager> <commit> command rolls a package manager's installed set back to a manifest snapshot: it computes the reverse delta (install what the snapshot had, uninstall what was added since), applies it, then re-syncs so removals are recorded and the union manifest updates.
  • Dashboard: R on a history entry opens a confirmation modal with +install / −uninstall counts, then spawns the rollback command as a subprocess (same pattern as sync).

Scope / limitations

  • Brew is not covered. Its Brewfile format and cask/tap handling need a separate pass; R on a brew entry reports "not yet supported". History viewing still works for brew.
  • Fleet behaviour. Rolling back affects this machine and records removals so they don't propagate back to it; it does not force-uninstall on other machines (the package model is descriptive, not declarative).
  • Projects rollback is not included (would require a new Projects tab).

Test plan

  • Packages tab: h lists a manager's manifest history, Enter shows the diff
  • R on a history entry shows the confirmation modal with correct install/uninstall counts
  • Confirming runs tether rollback packages and the manager's installed set matches the snapshot afterward
  • tether rollback packages <manager> <commit> works standalone from the CLI
  • Brew history entries report rollback is unsupported rather than erroring

paddo added 2 commits May 18, 2026 09:51
Packages tab: 'h' opens a manager's manifest commit history, Enter on a
history entry shows the diff — mirroring the Files tab. Read-only;
rollback action lands separately.
'R' on a manifest history entry rolls a package manager back to that
snapshot: a new `tether rollback packages` command computes the
reverse delta (install missing, uninstall extras) and re-syncs. The
dashboard spawns it as a subprocess after a confirmation modal.

Brew is not yet covered — its Brewfile format and cask/tap handling
warrant a separate pass; history viewing still works for it.
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