argent uninstall --local leaves behind the .zed/settings.json it created (holding only argent's own stanza) and an empty .kiro/.
Split out of #622, which is about the destructive ordering of uninstall. These two are cleanup-completeness bugs on a different path, with no failure involved — worth fixing separately.
Reproduced on 0.18.0 (Linux, Lima VM)
Workspace created empty, so every dot-directory below was created by argent init itself:
mkdir local-repro && cd local-repro
npm init -y
argent init -y --local
argent uninstall -y --local # succeeds, exit 0
Leftovers:
.kiro .zed node_modules package-lock.json package.json
.kiro/ ← empty; created by init, never removed
.zed/settings.json ← created by init, still contains ONLY argent's stanza:
{
"agent": { "tool_permissions": { "default": "confirm" } }
}
argent created that file and that directory and leaves both behind containing nothing but argent configuration. A user who never used Zed now has a .zed/ in their repo after installing and uninstalling argent.
The global path gets this right
The same test in global mode ends at a bare ./package.json — every directory argent created is removed, including the now-empty parents. So the writers themselves are fine; the --local teardown is the gap.
Correctness note for whoever fixes it
The cleanup must only remove a settings file argent created. If the user already had .zed/settings.json with their own keys, argent injects into it and must then remove only its own stanza and leave the file. I verified that direction separately: with a pre-existing .zed/settings.json containing {"theme": "One Dark"}, init left it untouched and uninstall left it untouched — so the injection only happens in some conditions, and the fix needs to distinguish "file is entirely ours" from "we added a stanza to theirs".
Not reproducible, for the record
The third adjacent claim in #622 — dangling skill symlinks in .claude/skills/ after uninstall --local — does not reproduce on 0.18.0. In both global and local mode skills materialize as real directories under .agents/skills, find . -xtype l is empty before and after, and .claude/ is removed entirely. Either already fixed or specific to an older layout.
argent uninstall --localleaves behind the.zed/settings.jsonit created (holding only argent's own stanza) and an empty.kiro/.Split out of #622, which is about the destructive ordering of uninstall. These two are cleanup-completeness bugs on a different path, with no failure involved — worth fixing separately.
Reproduced on 0.18.0 (Linux, Lima VM)
Workspace created empty, so every dot-directory below was created by
argent inititself:Leftovers:
argent created that file and that directory and leaves both behind containing nothing but argent configuration. A user who never used Zed now has a
.zed/in their repo after installing and uninstalling argent.The global path gets this right
The same test in global mode ends at a bare
./package.json— every directory argent created is removed, including the now-empty parents. So the writers themselves are fine; the--localteardown is the gap.Correctness note for whoever fixes it
The cleanup must only remove a settings file argent created. If the user already had
.zed/settings.jsonwith their own keys, argent injects into it and must then remove only its own stanza and leave the file. I verified that direction separately: with a pre-existing.zed/settings.jsoncontaining{"theme": "One Dark"}, init left it untouched and uninstall left it untouched — so the injection only happens in some conditions, and the fix needs to distinguish "file is entirely ours" from "we added a stanza to theirs".Not reproducible, for the record
The third adjacent claim in #622 — dangling skill symlinks in
.claude/skills/afteruninstall --local— does not reproduce on 0.18.0. In both global and local mode skills materialize as real directories under.agents/skills,find . -xtype lis empty before and after, and.claude/is removed entirely. Either already fixed or specific to an older layout.