Skip to content

Delphi 0.6.0: setup.sh installs and uninstalls Delphi plugins to match the workspace - #57

Merged
bracyw merged 2 commits into
mainfrom
delphi-plugins-sync
Oct 13, 2026
Merged

bracyw merged 2 commits into
mainfrom
delphi-plugins-sync

Conversation

@bracyw

@bracyw bracyw commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Delphi 0.6.0: plugin changes reach everyone's machine with no migration.

.delphi/plugins.sh, which setup.sh runs on every setup, switch and pull, used to only warn. It now makes this clone's @delphi plugins what the workspace's generated settings enable:

  • Installs the ones the workspace enables but this clone lacks, at local scope. Claude Code only offers to install a project's enabled plugins, so people could miss them.
  • Uninstalls this clone's local installs the workspace doesn't enable. A local install belongs to the folder, not the workspace, and stays enabled in the git-ignored settings.local.json, so after a switch the last workspace's plugins would still load. Switching back reinstalls them. Other clones' installs and user-scope plugins are never touched.
  • Uninstalls installed ones the Delphi marketplace dropped, at any scope (Claude Code flags them plugin-not-found), e.g. the old app/argos sets, which otherwise stay installed and fail to load.
  • Refreshes the marketplace first, only before installing or uninstalling a dropped plugin, so a clone that's in order makes no network call.
  • Offline it does only the local uninstalls and warns about the rest; other marketplaces' plugins only get a warning. It never fails setup.
  • Says what it did in one line, with a reminder to run /reload-plugins.

Tests: the e2e plugins section uses a stub claude that logs installs and uninstalls. It covers offline, none installed, another clone's install not counting, a dropped plugin (and another marketplace's left alone), uninstalling an unenabled local install (online, offline, and with no marketplace refresh) while leaving another clone's and user-scope ones, and quiet when all is in order. Breaking detection, installing, the per-root check, or the unenabled-local rule (removing it, widening it past local scope, or making it wait for the network) each fails it. 111 e2e checks pass; ci/check.sh ok. A dry run against a real machine found exactly the two dropped plugins.

…ins a workspace enables and uninstalls ones the marketplace dropped, so plugin changes need no migration
…nstalls the workspace doesn't enable, so a switch doesn't carry the last workspace's plugins over
@bracyw
bracyw merged commit bf83e89 into main Oct 13, 2026
2 checks passed
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