POK-87: Make npm agent uninstall registry match runtime behavior#32
Merged
Conversation
Honor explicit uninstall_cmd before npm derivation and remove misleading None entries from twelve npm agents so version_check drives npm uninstall. Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
saheljalal
commented
Jul 3, 2026
saheljalal
left a comment
Collaborator
Author
There was a problem hiding this comment.
Review — POK-87: npm agent uninstall registry
Verdict: Approve. Small, correct, and well-tested. The registry is now self-consistent and I confirmed runtime behavior is genuinely unchanged for all 31 agents.
What I verified
- Precedence flip is behavior-neutral. Scanned all 31 agents: exactly 12 are npm-
version_checkagents, and none retains an explicituninstall_cmd. So no current agent hits the new "explicit wins over npm" branch with a value that differs from the old npm derivation — every agent resolves to the same command as before. The flip changes intent/semantics, not output. - No stale key reads.
uninstall_cmdis only read throughresolve_uninstall_cmd()(vendor-cleanup scan + uninstall loop). Removing the 12 deadNonerows can'tKeyError— access is viain/.get(). Nonepath still handled downstream. ExplicitNoneshort-circuits to "no automated uninstall — remove manually", which the loop already prints; the newtest_..._none_blocks_npm_derivationlocks it in.- Tests green. Full
tests/test_tools_characterization.pypasses (153), including both new regression tests. - Version bump (1.15.5) and CHANGELOG entry are consistent and dated today.
Nit (optional, non-blocking)
- Consider one more test asserting an explicit non-None
uninstall_cmdon an npm agent wins over the derived npm command — that's the actual precedence guarantee this fix introduces, and nothing in the current registry exercises it, so a future edit could regress it silently. Purely defensive; fine to skip.
Nice call choosing to both drop the dead None rows and honor an explicit uninstall_cmd — self-consistent registry without losing the escape hatch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
resolve_uninstall_cmd()precedence: explicituninstall_cmd(includingNone) now wins over npmversion_checkderivation."uninstall_cmd": Nonefrom twelve npm agents; npm uninstall is derived fromversion_checkwhen no explicit command is set.Closes POK-87
Test plan
test_aikit_npm_agent_uninstall_derived_from_version_checktest_aikit_explicit_uninstall_cmd_none_blocks_npm_derivationtest_aikit_goose_uninstall_uses_brew_only_for_homebrew_install