Skip to content

Releases

v0.1.4 — DSH 0.2.1-rc.2 compatibility

Choose a tag to compare

@RGarrido03 RGarrido03 released this 17 Oct 23:17
857fef2

Compatibility with the DSH 0.2.1 release candidate. No behaviour changes — the plugin's own code needed no edits; what changed is the metadata the runtime checks before it will load a plugin at all.

Why 0.1.3 would not install on 0.2.1-rc.2. DSH refuses any plugin whose @deepseek-ai/dsh-* peer ranges the running version does not satisfy, before installing it, and this package pinned 0.2.1-alpha.2 exactly. The whole 0.2.1 line is now one range (^0.2.1-alpha.2), checked with semver against alpha.2, rc.2, rc.3 and the final 0.2.1, with both verified runtimes listed in dsh.compatibility.

Verified rather than assumed. The adapter contract is unchanged in rc.2: LlmAdapter's members, the StreamChunk vocabulary, registerAdapter / registerConfigurableProviders / registerModelDiscovery, the credentials/describe|set|unset remote ids, and the Models page's settings.models.provider-card seat — including that the row still renders the seat followed by the provider editor, which is the structure the settings card observes. The source type-checks and passes its 54 tests against the rc.2 packages.

Also in this release: development dependencies moved to rc.2, so type-checking runs against the runtime that loads the plugin; and pnpm-workspace.yaml records why the rc.2 packages clear pnpm's release-age policy (they were published the day this was built), so installs no longer print a stale-lockfile warning.

Verified in both profiles under rc.2 — the desktop profile and the web profile each boot with the plugin composed and no activation warnings.

v0.1.3 — Claude Sonnet 5, tool results, honest quota errors, prompt caching

Choose a tag to compare

@RGarrido03 RGarrido03 released this 14 Oct 21:51
520e4cf

Zed models, fixed where the gateway was stricter or more expensive than expected.

Claude Sonnet 5 / 4.6 and newer work again. Zed's model list says that a model thinks, not how it wants thinking expressed, and the two dialects are mutually exclusive: the 4.6+ generation refuses thinking.type.enabled, the older one refuses adaptive thinking. The dialect is now guessed from the generation and a wrong guess is corrected once, invisibly, from the provider's own refusal — and remembered. Both wordings were captured against the live endpoint.

Turns following a tool call work. Anthropic treats is_error on a tool result as optional; Zed's request parser requires it, so the first tool follow-up was refused with HTTP 400: missing field is_error. Every tool result now carries it.

An exhausted balance says so. Zed answers spent credits with 403 token_spend_limit_reached, which classified by status alone became an authentication failure — reported to the user as "API key is invalid". Classification now reads Zed's error code first and reports a quota condition with the account URL.

Turns cost what they should. Anthropic's prompt caching is opt-in and no request carried a breakpoint, so every step re-sent the whole conversation at full input price — a 15-step turn billed 2.5M input tokens at a 0% cache hit. The request now ends with one cache breakpoint, which caches tools, system prompt and every message up to it; if a parser ever refuses the field, caching is turned off for the process rather than failing the turn.

Verified with 54 tests and live runs against Zed Cloud: adaptive and budget dialects on both Claude generations, a two-turn tool exchange, and the refusal wordings. Published with npm provenance via trusted publishing.

v0.1.2: First release

Choose a tag to compare

@RGarrido03 RGarrido03 released this 13 Oct 12:07
0ad1662

Check the README.