Skip to content

feat: plugin uninstall/update commands + bump v1.1.24 - #75

Merged
laohanlinux merged 3 commits into
mainfrom
feat/plugin-uninstall-update
Aug 24, 2026
Merged

laohanlinux merged 3 commits into
mainfrom
feat/plugin-uninstall-update

Conversation

@laohanlinux

Copy link
Copy Markdown
Contributor

Summary

Add plugin uninstall and update commands to both the CLI and TUI, and bump the workspace to v1.1.24.

tact plugin uninstall / /plugin uninstall

  • PluginInstaller::uninstall removes the registry entry and deletes cached content only when it resolves inside the plugin cache root (legacy or escaping paths are left untouched), pruning now-empty parent directories up to the cache root.
  • New PluginStore::commit_removal persists uninstall state without requiring a candidate directory (unlike commit_install).
  • Missing plugins produce an error without mutating the store.

tact plugin update / /plugin update

  • PluginInstaller::update refreshes the owning marketplace (falling back to the previously fetched catalog on transient refresh failure), resolves the latest revision, and either reports up to date (cache untouched) or installs the new revision and prunes the old revision's cache.

Shared behavior

  • Worker refresh_skills also triggers on uninstall/update, so plugin skills change immediately (plugin:skill entries appear/disappear without restart).
  • i18n (en/zh) templates + operation labels; CLI (tact plugin uninstall|update ) and TUI slash commands.
  • Docs: README, book Ch 2 / Ch 23 / Ch 26 (bilingual).

Commits

  • 6561f24f feat: plugin uninstall/update commands (CLI + TUI)
  • 1e276ba3 style: cargo fmt
  • 524aad7d chore: bump to v1.1.24

Tests

  • cargo test -p tact plugin:: — 52 passed
  • cargo test -p tact-ui --test plugin_cli_tests — 9 passed (incl. install/uninstall round-trip, unknown-plugin failures)
  • cargo test -p tui plugin — 18 passed
  • Pre-push hook (fmt + clippy + build + test): passed

Test added 3 commits August 24, 2026 18:22
Add `tact plugin uninstall <name>` / `/plugin uninstall <name>` and
`tact plugin update <name>` / `/plugin update <name>`.

- PluginInstaller::uninstall removes the registry entry and deletes
  cached content only when it resolves inside the plugin cache root,
  pruning now-empty parents; missing plugins error without mutating
  the store.
- PluginInstaller::update refreshes the owning marketplace (falling
  back to the cached catalog on transient refresh failure), resolves
  the latest revision, and either reports up to date (cache untouched)
  or installs the new revision and prunes the old cache.
- PluginStore::commit_removal persists uninstall state without a
  candidate directory.
- Worker refresh_skills also triggers on uninstall/update so plugin
  skills change immediately.
- i18n (en/zh) templates and operation labels; CLI + TUI handlers;
  README; book Ch 2/23/26 docs.
@laohanlinux
laohanlinux merged commit bf02cdc into main Aug 24, 2026
3 checks passed
@laohanlinux
laohanlinux deleted the feat/plugin-uninstall-update branch August 24, 2026 10:29
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