Skip to content

fix(claude): update each listed plugin once - #156

Merged
github-actions[bot] merged 1 commit into
mainfrom
fix/claude-upgrade-dedupe
Oct 30, 2026
Merged

github-actions[bot] merged 1 commit into
mainfrom
fix/claude-upgrade-dedupe

Conversation

@brujack

@brujack brujack commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • claude plugins list prints one entry per scope and per project, so claude.upgrade planned one claude plugins update per entry. On claude (2026-10-30) the list holds 2054 entries for 17 plugins.
  • parse_plugin_list now returns each name@marketplace token once, in first-seen order. claude.install already folded the tokens into a set of base names, so its behaviour is unchanged.
  • Backlog: the P2 row is removed. A P3 row keeps the open question: update still relies on claude's scope auto-detect, and the two @synced tokens have no Scope: line.

Test Plan

  • parse_lists_a_plugin_installed_in_several_scopes_once: red before the fix (5 tokens returned), green after.
  • plan_updates_a_plugin_listed_in_several_scopes_once: a fake claude prints each plugin at three scopes, and the plan holds 2 steps.
  • Proptest parse_yields_each_listed_token_once_in_first_seen_order, 0 to 40 random entries.
  • Mutation controls: with de-dupe disabled, all 3 new tests go red. With a sorted (BTreeSet) de-dupe, the proptest and 2 existing tests go red.
  • make test: 1157 nextest passed, 167 pytest passed.
  • Coverage (CI run 41138976453): Rust 83.50% (5278/6321, floor 81); Python 95.28% (floor 90).

Code review

reviewed-sha: b9eae0f
diff-hash: 26ebf714fdaf1aca06f91d302eb026e244038f6dcc60c73dd67fcccafbc23e65
reviewers: 5/5

Steps 2-3 (CLAUDE.md paths, summary) ran inline: root CLAUDE.md is the only one in scope.

No issues found.

Spec alignment

SKIP: no open plan has a spec: line (backlog bug fix, no plan)

🤖 Generated with Claude Code

https://claude.ai/code/session_01RMRWKLc4oBDsXjYryqoNxf

`claude plugins list` prints one entry per scope and per project, so
claude.upgrade planned one `claude plugins update` per entry: 2054
steps for 17 plugins on `claude`. parse_plugin_list now returns each
token once in first-seen order.

The backlog row is replaced by the open scope question: update still
relies on claude's scope auto-detect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RMRWKLc4oBDsXjYryqoNxf
@github-actions
github-actions Bot merged commit ab88850 into main Oct 30, 2026
12 checks passed
@brujack
brujack deleted the fix/claude-upgrade-dedupe branch October 30, 2026 22:51
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