Repository navigation
fix(claude-code): update plugins on every init-plugins.sh run - #166
Merged
Merged
Conversation
~/.claude is a named volume that survives rebuilds, so after the first run `claude plugin install` finds every plugin already present and no-ops. Plugin versions froze at whatever was latest when the volume was created, and "Rebuild Container" never updated them. After the install loop, refresh all marketplace indexes (`claude plugin marketplace update`, no name = all) and then run `claude plugin update <name@marketplace>` per plugin. The index refresh must come first: `plugin update` resolves against the cached catalog. Both steps are non-fatal under `set -e`, matching the existing per-item success/warning output. Applied to the repo-root .devcontainer/init-plugins.sh too, which had the same install-only loop. README: describe the update step, and fix the adjacent bundled-plugins table (five marketplaces, add the missing cloudflare row). Fixes #158
…fresh # Conflicts: # claude-code/.devcontainer/init-plugins.sh
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.
What
After its install loop,
init-plugins.shnow refreshes the marketplace indexes and runsclaude plugin updatefor each bundled plugin. The change applies to both theclaude-codetemplate copy and the repo-root copy.Why
~/.claudeis a named volume that survives rebuilds, andclaude plugin installis a no-op for a plugin that's already installed. As a result, plugin versions froze at whatever was latest when the volume was created, and Rebuild Container never updated them. #158 caughtmodern-web-guidance19 releases behind, with its own CLI complaining that it was out of date.Changes
claude-code/.devcontainer/init-plugins.sh:claude plugin marketplace update, with no name, which refreshes all marketplaces, followed byclaude plugin update "$plugin"for each plugin.✔/⚠output and can't abort the script underset -euo pipefail..devcontainer/init-plugins.sh: the same pass, in that script'sNote:output style.claude-code/README.md:cloudflare/skills/cloudflarerow is added to the bundled-plugins table.Notes
--helpinclaude-code:latest(2.1.278):plugin update <plugin>takes a requiredname@marketplaceargument, and its--scopedefaults touser, the same asinstall.plugin marketplace update [name]updates all marketplaces when no name is given.updateresolves against the cached index and no-ops, as [BUG] init-plugins.sh never updates plugins — install no-ops against the persistent ~/.claude volume #158 showed.claude-code:latest):plugin update nope@nowhereexits 1, which is caught by the⚠branch.--network none, each update prints⚠and the script keeps going.shellcheckandactionlintare clean./usr/local/bin/patch-playwright-mcpexits non-zero and aborts the claude-codeinit-plugins.shunderset -e. The unmodified script behaves the same way. Worth a separate issue.init-plugins.shheader and the README's init-plugins section. Whichever merges second needs a small rebase.Fixes #158