Skip to content

feat(plugins): source Superpowers from GitHub and show update badges - #1066

Merged
wbxl2000 merged 9 commits into
mainfrom
feat/superpowers-github-source
Jun 24, 2026
Merged

feat(plugins): source Superpowers from GitHub and show update badges#1066
wbxl2000 merged 9 commits into
mainfrom
feat/superpowers-github-source

Conversation

@wbxl2000

@wbxl2000 wbxl2000 commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Related Issue

N/A — see Problem below.

Problem

  • Superpowers is currently vendored in this repo (v5.1.0) and has to be synced with upstream by hand. Upstream now ships its own Kimi adapter (.kimi-plugin/plugin.json), so the local copy is no longer needed.
  • The /plugins Installed tab does not tell users when an installed plugin has a newer version in the marketplace — they only see update badges on the Official/Third-party tabs.

What changed

  • Point the Superpowers marketplace entry at the bare GitHub repo URL so it tracks the latest release instead of a pinned tag, and drop the explicit version.
  • Resolve the latest release tag at marketplace load time (via the /releases/latest redirect — no api.github.com quota) to fill the version for entries whose source is a bare GitHub repo URL. This powers update detection and the install-button label.
  • Show an update badge (update <local> → <latest>) for installed plugins on the /plugins Installed tab once the marketplace catalog is loaded. On that tab, Enter now installs the available update (or opens details when up to date), and I always opens plugin details.
  • Show an "Installing … from marketplace" state inside the plugins panel while an install/update is in flight, instead of a transient status message.
  • Highlight "Run /new or /reload to apply plugin changes." in warning color after install and remove, and add a pnpm dev:cli:marketplace script that runs the dev CLI against the production marketplace.
  • Remove the now-unused superpowers ignore rules from .gitignore and .oxlintrc.json.
  • Sync the en/zh plugin docs to mention the Installed tab update badge and the automatic catalog loading.

Compatibility note

Older CLIs (before this change) only read the explicit version field from the catalog and cannot resolve latest at runtime. Since the catalog no longer carries an explicit Superpowers version, those clients will no longer show an update badge for Superpowers. Installing and updating still work normally; only the badge is affected.

Checklist

  • I have read the CONTRIBUTING document.
  • I have linked a related issue, or explained the problem above.
  • I have added tests that prove my feature works.
  • Ran gen-changesets skill, or this PR needs no changeset.
  • Ran gen-docs skill, or this PR needs no doc update.

wbxl2000 added 2 commits June 24, 2026 14:19
Source the Superpowers plugin from its GitHub release (v6.0.3) instead of a vendored copy, and drop the explicit version field.

Derive marketplace entry versions from GitHub source URLs when the version field is omitted, keeping the source URL the single source of truth.

Show update badges for installed plugins on the /plugins Installed tab.
@changeset-bot

changeset-bot Bot commented Jun 24, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 421d53e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@moonshot-ai/kimi-code Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Jun 24, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@moonshot-ai/kimi-code@f4eac9e
npx https://pkg.pr.new/@moonshot-ai/kimi-code@f4eac9e

commit: f4eac9e

@wbxl2000

Copy link
Copy Markdown
Collaborator Author
image

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 06cd76da19

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread plugins/marketplace.json Outdated
"homepage": "https://github.com/obra/superpowers",
"keywords": ["skills", "planning", "tdd", "debugging", "code-review"],
"source": "./curated/superpowers"
"source": "https://github.com/obra/superpowers/releases/tag/v6.0.3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve Superpowers version in the catalog

When the CDN marketplace is generated from this file, remote sources are passed through without stamping a version (the build script only stamps local relative plugin sources), and released CLIs before this patch read only the explicit marketplace version field. After this entry drops version, a user on those clients with Superpowers 5.1.0 installed will no longer see the marketplace update badge even though this source pins v6.0.3. Please keep the explicit version, or stamp versions for pinned GitHub sources before publishing the catalog.

Useful? React with 👍 / 👎.

wbxl2000 added 6 commits June 24, 2026 14:36
Older CLIs only read the explicit marketplace version and cannot derive it from a GitHub source URL. When publishing the CDN catalog, stamp the version derived from a pinned GitHub source so those clients still surface update badges.

The source plugins/marketplace.json keeps no explicit version; the version is derived at build time instead.
Point the Superpowers marketplace entry at the bare GitHub repo URL so it tracks the latest release instead of a pinned tag.

When a marketplace entry omits version and its source is a bare GitHub repo URL, resolve the latest release tag at load time (via the /releases/latest redirect) to fill the version for update detection.

Revert the build-time version stamping; it is no longer needed. Older CLIs that only read the explicit catalog version will no longer see update badges for Superpowers, since the catalog no longer carries one.
On the Installed tab, Enter now installs the available update when one is present, and falls back to opening plugin details otherwise.

Add the I key to always open plugin details, so details remain reachable when Enter is occupied by an update. Update the installed hint, docs and changeset accordingly.
Move the "Installing … from marketplace" notice from a transient status message into the plugins panel itself, so the user sees progress in the interactive card while an install or update is in flight.
Highlight "Run /new or /reload to apply plugin changes." in warning color after plugin install and remove, and make the two notices symmetric.

Add a root dev:cli:marketplace script that points the dev CLI at the production marketplace instead of the local dev server.
Drop the redundant showNotice on marketplace installs so the success message is shown only once, symmetric with remove.
@wbxl2000

Copy link
Copy Markdown
Collaborator Author

@codex

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 421d53e2c3

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +330 to +332
panel.setInstalling(selection.entry.displayName);
host.state.ui.requestRender();
await installPluginFromSource(host, selection.entry.source);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reset the installing state when installs fail

When installPluginFromSource rejects for a marketplace or Custom-tab install (for example, network failure or an invalid plugin manifest), control jumps to the outer onSelect catch in showPluginsPicker, which only calls showError; host.restoreEditor() is never reached and PluginsPanelComponent keeps rendering the one-way Installing ... view because panel.setInstalling(...) is never cleared. That leaves the plugin manager stuck in a stale in-progress state after a failed install instead of returning to the list so the user can retry or choose another plugin.

Useful? React with 👍 / 👎.

When a marketplace or Custom-tab install rejects, clear the installing state and return to the list so the user can retry, instead of leaving the panel stuck on the one-way "Installing…" view.
@wbxl2000 wbxl2000 self-assigned this Jun 24, 2026
@wbxl2000

Copy link
Copy Markdown
Collaborator Author

@codex

@wbxl2000
wbxl2000 merged commit 3554f7e into main Jun 24, 2026
8 checks passed
@wbxl2000
wbxl2000 deleted the feat/superpowers-github-source branch June 24, 2026 13:58
@github-actions github-actions Bot mentioned this pull request Jun 24, 2026
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