Repository navigation
fix: Claude plugin icon and a Desktop extension that starts - #3
Merged
Merged
Conversation
The Claude marketplace entry points at ./claude-code, which had no icon, so a marketplace added on claude.ai listed Spacefast without one. Claude's plugin checks report it as ICON_MISSING: they want `icon` in plugin.json, or a square PNG of 512 to 2048 px at a conventional path. Ship the 512 px green spark already used by the desktop extension at claude-code/assets/logo.png and name it in that plugin.json. The root plugin.json, which the directory submission points at, only had an SVG and a 400 px PNG, which listings do not accept, so it gets the same icon at assets/logo.png. Claude Code before 2.1.281 warns that `icon` is an unknown field and loads the plugin anyway. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters: 2
📒 Files selected for processing: 2
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟢 Approval recommended
Both icon references resolve to valid, correctly sized assets, and no blocking issues remain in these narrowly scoped changes.
No open issues 🎉
What changed in this PR
Adds listing-icon references to both Claude plugin manifests so the marketplace plugin and root directory submission can display the Spacefast logo.
Changes:
- Points both manifests to
./assets/logo.png, using the existing 512×512 logo. - Leaves connector configuration and release archives unchanged.
| File | Description |
|---|---|
claude-code/.claude-plugin/plugin.json |
Adds the marketplace plugin’s icon reference. |
.claude-plugin/plugin.json |
Adds the root plugin’s icon reference for the directory submission. |
Review effort: Balanced
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 changed
Plugin icon
claude-code/assets/logo.png(the 512×512 green spark fromclaude-desktop/assets/logo.png) and"icon": "./assets/logo.png"inclaude-code/.claude-plugin/plugin.json.assets/logo.pngand"icon"in.claude-plugin/plugin.json.Claude Desktop extension (
.mcpb)claude-desktop/server/launch-spec.jsnow runsspacefast@0.5.0instead ofspacefast@0.8.1.spacefast.mcpbandclaude-desktop/spacefast.mcpb.claude-desktop.tgz,claude-code.tgz,spacefast-plugins.tgzandspacefast-plugins.zip, and updated their checksums inrelease-manifest.json.Why
Icon. When
spacefast/pluginsis added as a marketplace on claude.ai, Spacefast shows no icon. The marketplace entry points at./claude-code, which had none.claude plugin validate ./claude-code(Claude Code 2.1.308) reportsICON_MISSING: the directory wantsiconinplugin.json, or a square PNG of 512–2048 px at a path such asassets/logo.png. SVG and WebP aren't accepted. The rootplugin.jsonis the one the Anthropic directory submission points at, and it only had an SVG and a 400 px PNG.Extension. The bundle is a launcher for
npx -y spacefast@<version> mcp.spacefast@0.8.1was never published to npm; the latest is 0.5.0. So the shipped extension failed at start:0.5.0 has the
mcpcommand and theSPACEFAST_TOKENoption the manifest passes. The monorepo's release notes already call forSPACEFAST_PLUGIN_CLI_VERSIONto be "a verified published npm CLI version"; the v0.8.1 sync left it at the default.How the artifacts were rebuilt
.mcpbwas built with the monorepo'spackages/cli/scripts/build-mcpb.mjs(@anthropic-ai/mcpb2.1.2) and the release timestamp (2026-10-21T09:56:48Z)..tgzfiles use thecreateDeterministicTarsettings frompackage-plugins.mjs. The full.tgz/.zipuserebuildFullArchivesfromscripts/marketplaces/package.mjs.spacefast.mcpb,claude-desktop.tgz,claude-code.tgz,spacefast-plugins.tgzandspacefast-plugins.zipbyte for byte.plugin.jsons, and the two catalog entries from ae35146. Those catalog entries were edited after the 0.8.1 sync and had never made it into the archives.Verified
.mcpbpassesmcpb validate. Run over stdio, it answersinitializeasspacefast 0.5.0and lists 7 tools (execute,resume_execution,search,publish,show_space,operation_status,cli_login).release-manifest.jsonmatches its file.claude plugin validate --strictpasses for./claude-codeand the repo root on Claude Code 2.1.308. Versions before 2.1.281 warn thaticonis an unknown field and still load the plugin.Reviewer notes
search_connector_tools, which 0.5.0 doesn't list. Once a newer CLI is on npm, bump the pin and rebuild.releases/latest/download/claude-desktop.mcpb. This PR doesn't publish a release, so that download is unchanged until one is cut.spacefast/monorepo. The next sync will undo both fixes unless the generator emits the icon (scripts/generate-brand-assets.ts,packages/cli/scripts/generate-plugin-docs.mjs,package-plugins.mjs) and pins a published CLI.https://mcp.spacefast.com, or a user adds a custom connector at that URL.🤖 Generated with Claude Code