Install / Update
Install the dsh-context plugin on DeepSeek Harness with released NPM package:
dsh plugin --profile web add dsh-context@latestUpdate the dsh-context plugin:
dsh plugin --profile web update dsh-context@latestWhat's New
- Session cost is priced from the live models.dev registry — the hardcoded DeepSeek rate table is replaced by a client-fetched price book: the models.dev registry is read once per page load, so the latest providers and model prices flow in without waiting for a plugin update.
- Cost totals rekey per (provider, model): only DeepSeek splits a pricing period (peak windows at list price, all other hours at half price) — every other provider bills everything at list price.
- Model ids match exactly, case-insensitively, or by suffix (
k3→kimi-k3); provider ids resolve through a shared rename table (deepseek-official,kimi-coding,minimax-cn,zai-coding-cn) with verbatim passthrough for unmapped ids, and ambiguous matches price nothing. - Every registry entry is re-proved at the boundary, and a failed fetch degrades to a dash + note with backed-off automatic retries. CNY display converts at the fixed 1 CNY = 0.15 USD; the tooltip lists per-1M rates for the models the session billed, with peak|off-peak pairs and the DeepSeek note shown on DeepSeek sessions only.
- stateVersion 18: previously cached stats rows refold from the log, rebuilding the new cost keys and periods.
-
Tool definitions rank by call hits — the Context browser's tool-definition rows now carry a per-tool call-hit tally (xN) over the shown step's assembled surface, and the tools toolbar gains a count sort ranked by that tally, with ties broken by tool name.
- One paired tool-result node is one completed call — the same accounting as the stats' toolCalls — so the tally follows the step picker: a past step re-tallies over its own surface, and a zero tally names a definition the shown step never called.
-
The tools default sort is a plugin setting — a new
Tool Schemas - Default sortrow in Settings → Plugins → dsh-context (size, call count, or name) persists per user; the Context browser reads it as the mount-time default for its tools toolbar, while in-toolbar toggling stays session-local and never writes back. The default default is now call count.- Degradation mirrors the existing preferences: a stale persisted value falls back to the default, the client drops values outside the vocabulary, and a host without the settings surface keeps the schema default — the tools list stays fully functional either way.
Commits
- chore: release v0.51.0 (de2d971)
- feat: make the tool-definition default sort a plugin setting (b602014)
- feat(client): rank tool definitions by call hits with a count sort (4dded7a)
- refactor(client): move the animations into the Tailwind theme and utilities (96435c8)
- refactor(client): move static SVG fill/stroke chrome to Tailwind utilities (58299ee)
- fix(client): point the plugin-name row at the repo instead of the releases page (7b09d5b)
- refactor(client): fold the responsive layout into Tailwind variants and intrinsic flex (ff10cff)
- refactor(client): move pure pseudo-state styling to Tailwind state variants (1718388)
- refactor(client): adopt Tailwind color tokens for the plugin's palette (75fada4)
- feat(build): emit the plugin accent palette as Tailwind color tokens (f1ab3a1)
- feat(build): compile Tailwind layout utilities into the client CSS channel (55aa1fe)
- docs: describe the models.dev-priced cost estimate and the stateVersion 18 upgrade (2379dd9)
- feat(stats): estimate session cost from models.dev prices (7cf9284)
- docs(readme): describe the Token card as composition around the billed total (0b14f79)
v0.50.0...v0.51.0 · 14 commits