Repository navigation
Rename the CLI plugin basecamp-cli, keep basecamp as its alias; mirror the hosted plugin - #8
Conversation
basecamp is now the plugin Anthropic's directory lists: Basecamp through its hosted connector, for claude.ai chat, Cowork, and Claude Code. It's mirrored into plugins/basecamp from the connector repository, which stays the source of truth; bin/sync-basecamp-plugin copies and validates it, and --check reports drift. The CLI plugin keeps its source and becomes basecamp-cli. The README says which to pick and how an existing install moves to the new name.
|
Dependency from basecamp/basecamp-cli#840: during the rename, this marketplace should list the CLI plugin as |
basecamp-cli's setup now treats any installed basecamp@37signals as the old CLI plugin and moves it to basecamp-cli. Listing the hosted plugin as basecamp at the same time would get it uninstalled by setup, and would hand it to anyone still on the old install at their next update. So the marketplace drops the name for a deprecation window. plugins/basecamp stays here for Anthropic's directory, unlisted. bin/check-marketplace, run in CI, fails on duplicate names or on a basecamp entry, and says when that rule can go: after the window, and after a CLI release that stops treating basecamp@37signals as stale.
|
Addressed in 9baea1e: the marketplace lists |
…ndow Dropping the name broke every existing install: once the marketplace refreshed, basecamp@37signals failed to load. Now basecamp stays listed, with exactly basecamp-cli's source, so those installs keep loading and updating, and basecamp setup moves them over at the user's pace. bin/check-marketplace allows a basecamp entry only as that alias. Pointing it anywhere else, such as the hosted plugin, still fails until the window ends (30 days proposed) and a CLI release stops treating basecamp@37signals as the old CLI plugin. Removing the alias is its own later PR.
Mirrored from basecamp/basecamp-mcp-server@b65ae99, which contains #195 (merged at 47e67f0).
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Re-synced Review threads: none. Codex reported no findings on 5c19ad6. Copilot couldn't review because the requester hit its quota limit; a re-review has to be requested from the Reviewers UI. The description now gives the exact merge and release order with basecamp/basecamp-cli#840. The rule that matters: don't submit |
The CLI plugin becomes
basecamp-cli@37signals, with the same source (basecamp/basecamp-cli). For a deprecation window,basecampstays listed as an alias with exactly the same source, so existing installs keep loading and updating. The hosted Basecamp plugin is mirrored intoplugins/basecampfor Anthropic's directory, which publishes it asbasecamp. This marketplace doesn't list it.Merge and release order
Merge both PRs together, this one first. Don't submit
plugins/basecampto Anthropic's directory until the basecamp-cli release that ships basecamp/basecamp-cli#840 is out. Until then, CLI plugin installs carry the manifest namebasecamp, and a directory plugin also namedbasecampwould collide with them.basecampandbasecamp-cliboth serve the current CLI plugin, andplugins/basecampis unlisted here. This marketplace has no tags or releases. Clients see a change onmainon their nextmarketplace update.urlsource, so they serve basecamp-cli'smainas soon as it lands. Installed copies update only when the pluginversionchanges, though.scripts/release.sh(next after v0.12.0). It pushes a release-prep commit tomainthat bumps.claude-plugin/plugin.jsonand.codex-plugin/plugin.json, then tagsv*, which runsrelease.yml. The version bump is what movesbasecamp@37signalsinstalls to the renamed manifest and the one-time notice. The 7-day window starts here. A CLI built from #840 installsbasecamp-cli@37signals, so step 1 has to come first.plugins/basecampto the directory, along with the connector listing. The directory reads this folder frommain, and the name is permanent once listed. If it was already submitted before this merge, merging step 1 publishes it, so hold this PR until after step 3.bin/check-marketplacerule 2 in a separate PR here. A basecamp-cli release also drops thebasecamp@37signalsstale handling. Retire the basecamp@37signals alias after the 7-day rename window basecamp-cli#857 tracks both. Pointingbasecamphere at the hosted plugin is a further decision after that.What changes
.claude-plugin/marketplace.json:basecamp-cliis the CLI plugin, with an unchangedurlsource.basecampis a deprecated alias with the identical source, and its description says so.plugins/basecamp/: the hosted plugin, mirrored fromplugins/claude/basecampin the connector repository (basecamp-mcp-server #195). That repository stays the source of truth. The folder is unlisted here.bin/sync-basecamp-plugin <checkout>:claude plugin validate;--checkexits 1 on drift.bin/check-marketplace, run by the newCheckworkflow, fails on duplicate names. It also fails on abasecampentry whose source isn't exactlybasecamp-cli's, so the hosted plugin can't take the name early by mistake. Its header says when the rule can change. The workflow pinsactions/checkoutby SHA, has read-only permissions and doesn't persist credentials.plugins/basecampis and why it isn't listed;Window and later steps
basecamp setup, so most installs see the prompt within a day or two.bin/check-marketplacerule 2.basecampat the hosted plugin is a further decision. It has to wait for a basecamp-cli release that no longer treatsbasecamp@37signalsas the old CLI plugin; until then, setup would uninstall it.Checked (throwaway
CLAUDE_CONFIG_DIR)basecamp@37signalsfrom currentmain, then refreshed the marketplace to this branch. The install still shows✔ enabled, andplugin update basecamp@37signalsworks.name: basecamp-cli), a freshbasecamp@37signalsinstall loads asbasecamp-cli 0.11.0.install basecamp-cli@37signals, thenuninstall basecamp@37signals, ends with onlybasecamp-clienabled. #840 coversbasecamp setupdoing it and the notice.plugin updatewas a no-op when only the manifest name changed and the version didn't. Alias users get the renamed manifest and the notice hook once the CLI release bumps the plugin version.bin/check-marketplace:basecamppointed atplugins/basecamp, without abasecamp-clientry, and with a duplicate name.claude plugin validate .andclaude plugin validate plugins/basecamppass. The only warning is the marketplace having no description, which was already there.repositorypoints here, and #195 holds that with a test.Mirror source
plugins/basecampwas synced withbin/sync-basecamp-pluginfrom basecamp/basecamp-mcp-server@b65ae99e4f1870fa7e56331199c4d91f44bf60c6 (main, which includes #195 merged at 47e67f0).--checkreports no drift, andclaude plugin validatepasses on the plugin and the marketplace.Needs a decision