v0.2.0 — settings, promotions, provider badges
Added
- Plugin settings (
model-pricingnamespace): refresh interval, catalog
source URL, promotion-feed URL and tag rules — editable insettings.yamlor
through a card on the Settings → Plugins tab; changes take effect without a
restart (catalog fields trigger a rebuild, TTL applies to the staleness
window immediately). - Community promotion feed (B3):
promos/<provider>.jsonrecords with a
strict schema (expiry, verification date, attribution; either a percentage
discount capped at 90 or a fixed per-1M price), CI-validated on every pull
request and compiled to thefeedbranch on merge. The host attaches active
promotions to matching rows; expired records never render, feed outages never
hide prices. - Promotion badges on the pricing table: accent badge with provenance
tooltip (offer text, expiry, verified-by, link), a "Promotions" filter chip,
and an active-offers count in the status line. - Whole-provider offers: feed records without a
modeldescribe a provider
as a whole and surface both on the provider's card in the Models settings page
and in a "Current promotions" panel at the top of the pricing table — including
gateways that are not in the pricing catalog at all. The feed is seeded with
B.AI's eight documented promotions (API free tiers and discounts, verified
against the official pricing-notices page, with a re-verification horizon). - Provider-card badges on the Models page: each configured provider's card
shows its lowest per-1M output price, priced-model count and active-offer
count, straight from the catalog. - Subscription-plan grouping: coding/token plan providers are collected
into one group, their nominal $0 per-token prices render as "sub.", and plan
routes are excluded from cross-provider comparison (they previously won
"cheapest" for 39 models on a $0 price that is not a per-token rate). - Russian language pack: the harness ships English and Chinese; this plugin
additionally registers Russian, selected automatically for Russian browsers. - Disk cache under the DSH home: an offline cold start serves the last real
catalog instead of the reduced built-in snapshot.
Changed
- The "Only mine" view now follows provider topology live (
llm/adapters-updated). - HTTP responses are gzip-compressed (~8× smaller wire payload).
Install: npx -y @deepseek-ai/dsh plugin --profile web add dsh-model-pricing