Repository navigation
cli, app: Complete uninstall cleanup (#1843) - #1845
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 33 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Summary by QodoComplete uninstall cleanup without losing local lifecycle safeguards
AI Description
Diagram
High-Level Assessment
Files changed (15)
|
Code Review by Qodo
1.
|
nortonandreev
left a comment
There was a problem hiding this comment.
Keeping lifecycle.lock and the retired-URL registry, and rechecking consent while the lock is held, both look right. Three behaviour changes need fixing before merge (inline): an uninstall that never had a local server now leaves ~/.config/kcap/local/, an unreadable registry now blocks every integration removal, and a missing git now makes uninstall incomplete forever. The rest are nits.
…1843) Taking the lifecycle lease creates the local root, so it is taken only once a setup has created one: an uninstall must not leave behind the metadata it says it retains.
|
@CodeRabbit approve |
✅ Action performedComments resolved and changes approved. |
Closes #1843 — AI-4248
What & why
Full uninstall missed several integration and updater files, and could delete the local lifecycle lock and retired-URL registry with the config directory.
lifecycle.lockandinstall.json(no recordings), and rechecks consent under it: a server that appears or changes after confirmation stops the uninstall,--keep-configincluded, unless--purge-local. With no root,~/.config/kcapis deleted whole.~/.cache/kcap, legacy Cursor spool, retired Kiro/Crew/Antigravity skills, and the macOS app's own Velopack cache, scratch dir and logs.Where to look
UninstallCommand.HandleAsync: the lease is skipped when the root is absent just before it would be taken, so a setup started during the prompt still meets the consent checks.Verification
Finds_the_PR_by_the_tracked_remote_name…,A_later_hit_is_a_repository_change…; both pass alone)kcap uninstall --yes, scratch HOME, no local server~/.config/kcap,~/.cache/kcap, Pi extension gone, no~/.vibeOsxVelopackLocatoron a packaged 1.4.0-beta.3 bundlePackagesDir~/Library/Caches/velopack/kcap/packages,AppTempDir$TMPDIR/velopack/kcap; test fixture matchesNot run: uninstall against the installed app or a real local server.