Skip to content

feat: supersede stacked plugin versions, pin litellm-pricing 0.9.0 - #122

Merged
trick77 merged 2 commits into
masterfrom
worktree-litellm-pricing-0.9.0
Aug 26, 2026
Merged

trick77 merged 2 commits into
masterfrom
worktree-litellm-pricing-0.9.0

Conversation

@trick77

@trick77 trick77 commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Two changes.

append stacked plugin versions. combine() deduped array entries by deep equality, so pkg@0.8.1 and pkg@0.9.0 were two entries and opencode loaded the plugin twice. Every pinned bump added another one:

["...litellm-pricing@0.7.0", "...dcg@0.2.0", "...litellm-pricing@0.8.0", "...litellm-pricing@0.8.1"]

An incoming name@spec entry now replaces every existing entry with the same package name, overwriting in place so position is kept, and the config above collapses to [litellm-pricing@0.9.0, dcg@0.2.0] on the next install. Scoped names and superpowers@git+https://...#tag match on the package name too. Entries that are not name@spec ({{cache}} fetch dests, prompted dirs, a git URL carrying user@host) stay plain append. remove is unchanged, still exact-match only. The install summary reports superseded N.

Hit plugin-dcg, plugin-superpowers and plugin-opencode-planify-german identically.

litellm-pricing 0.9.0. The plugin now reads pricing from the proxy's /v1/model/info and no longer reads options.catalogURL. Drops the catalogURL prompt and body key from provider-litellm, pins 0.9.0, rewrites the README pricing section. Re-running provider-litellm is what clears a stale catalogURL out of an existing config.

Verified: npm test 198/198, check-pins all pins current, and the stacked-config repro above run against a temp config.

append deduped by deep equality, so every pinned bump added a second entry and
opencode loaded the plugin at both versions. An incoming `name@spec` entry now
replaces every existing entry with the same package name, in place, and a config
that already stacked several bumps collapses on the next install. Non-`name@spec`
entries (cache fetch dests, prompted dirs, git URLs with credentials) stay plain
append. remove is unchanged, still exact-match only.

plugin-litellm-pricing 0.9.0 drops options.catalogURL: pricing now comes from the
proxy itself, so provider-litellm no longer prompts for a catalog URL and the
README section is rewritten around it. Re-running provider-litellm is what clears
a stale catalogURL out of an existing config.
…esent

The deep-equality check ran before the package-name lookup, so installing
pricing@0.9.0 over a config already holding both 0.8.1 and 0.9.0 matched 0.9.0,
counted it preserved and returned unchanged, leaving the stale entry behind. That
is the repair path the README advertises, and it was a silent no-op: no write, no
backup, no warning. The name lookup now runs first, and the trailing-duplicate
sweep runs whether the anchored entry matched or not.

Also shortens the summary label so it keeps the padded column.
@trick77
trick77 merged commit 3e3d0b4 into master Aug 26, 2026
3 checks passed
@trick77
trick77 deleted the worktree-litellm-pricing-0.9.0 branch August 26, 2026 19:53
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