refactor(plugin)!: rename the ticker plugin to stocks - #326
Merged
Conversation
BREAKING CHANGE: `ticker@moshcode` is no longer published. The plugin is `stocks@moshcode`, shipping the same six commands from plugins/stocks/. v0.28.0 renamed the verb but deliberately left the plugin id alone, to spare existing installs an uninstall/reinstall. That left `ticker@moshcode` serving a command called `/stocks`, which is the kind of mismatch that reads as a bug. Finishing the rename costs one migration; not finishing it costs an explanation forever. The migration is the part worth getting right. A renamed *plugin* is not a renamed command: the old one is still installed in someone's engine, still serving `/stocks`, and installing the new one puts a second copy beside it rather than over it — so `/stocks` would resolve to two plugins at once. The old id therefore has to stay reachable by `remove` while being refused by `install`: $ moshcode plugin install ticker ✗ "ticker" is now "stocks" — install stocks@moshcode · already have the old one? moshcode plugin remove ticker first $ moshcode plugin remove ticker # still plans: claude plugin uninstall ticker@moshcode RETIRED_PLUGINS in src/plugins.mjs records the rename, resolveRetiredPlugin reads it, and a test asserts the asymmetry in both directions — that a retired name never resolves for install, and that it points at a plugin the marketplace actually ships. Without that last check the table could name a replacement that does not exist and nothing would notice until someone followed the advice. Both READMEs carry the two-line migration, since anyone who installed before today needs it and will look there first. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ThreatCrush Security Scan91 finding(s) HIGH/CRITICAL: 2 | MEDIUM: 41 | LOW: 48
…and 41 more. Full results in the Security tab. Snippets are redacted; ThreatCrush never prints matched credential material. |
Merged
ralyodio
added a commit
that referenced
this pull request
Aug 8, 2026
Bump to v0.29.0, releasing the rename of the `ticker` plugin to `stocks` (#326). Breaking, and the second in a row: `ticker@moshcode` is no longer published. The plugin is `stocks@moshcode`, shipping the same six commands. v0.28.0 renamed the verb and left the plugin id alone on purpose, to spare existing installs a migration. That left `ticker@moshcode` serving a command called `/stocks`, so this finishes the job — one migration now instead of an explanation forever. Anyone who installed the old plugin needs both halves, because engines install plugins side by side rather than over each other: moshcode plugin remove ticker moshcode plugin install stocks `plugin remove ticker` keeps working for exactly that reason, even though `plugin install ticker` now refuses and points at the new id. The README migration note added in #326 names this version, so it is accurate as of this commit and not before. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
BREAKING CHANGE:
ticker@moshcodeis no longer published. The plugin isstocks@moshcode, shipping the same six commands fromplugins/stocks/.v0.28.0 renamed the verb but deliberately left the plugin id alone, to spare existing installs an uninstall/reinstall. That left
ticker@moshcodeserving a command called/stocks— the kind of mismatch that reads as a bug. Finishing the rename costs one migration; not finishing it costs an explanation forever.The migration is the part worth getting right
A renamed plugin is not a renamed command. The old one is still installed in someone's engine, still serving
/stocks, and installing the new one puts a second copy beside it rather than over it — so/stockswould resolve to two plugins at once.So the old id stays reachable by
removewhile being refused byinstall:RETIRED_PLUGINSinsrc/plugins.mjsrecords the rename andresolveRetiredPluginreads it. A test asserts the asymmetry in both directions — that a retired name never resolves forinstall, and that it points at a plugin the marketplace actually ships. Without that last check the table could name a replacement that doesn't exist and nothing would notice until someone followed the advice.Both READMEs carry the two-line migration, since anyone who installed before today needs it and will look there first.
Verification
moshcode plugin list(now showsstocks@moshcode),plugin install ticker(refuses with the pointer),plugin install nonsense(unchanged error).plugin remove tickerplansclaude plugin uninstall ticker@moshcodeby inspecting the plan rather than executing it — running it for real would have uninstalled a plugin on my machine, which is not this PR's business.🤖 Generated with Claude Code