Repository navigation
Releases: a2580vb/dsh-llm-opencode-go
Releases · a2580vb/dsh-llm-opencode-go
Release list
0.2.3
0.2.2
An interface release, and the release process is part of it: the quota rhythm is
editable on the page, the capsule's gear opens the settings dialog rather than the
plugins list, and a tag publishes the package and its notes without a stored
token.
Fixed
- The quota rhythm section reads as one row. Its two intervals are labelled
Shortest/Longest quota update interval, share a line at the same width, and
no longer carry the three explanatory paragraphs; a row that reports no
intervals at all says so instead of waiting on them forever. - The capsule's gear opens Settings on the plugin's row, not the Plugins
page. It presses the shell's own way in — its trigger, or the account
launcher's Settings row where a package has taken that seat — then this
plugin's nav row; the usage panel's Plugin settings button does the same, and
both fall back to the Plugins page where the shell answers neither press.
Added
- The quota rhythm is editable on the page. The two intervals were
config-file-only; they now have a section of their own, saved as one setting,
with a floor above its ceiling refused where the reader can see it. - A tag publishes the release.
release.ymlchecks the tag against the
manifest, re-runs the suite, and publishes to npm through trusted publishing —
no token is stored — then opens the release page from the changelog section. npm run check:pack, which packs the tarball and reads it, because
filesis an allowlist whose two failure modes are both silent.- The activation suite runs in CI, on the harness packages from npm when no
DSH installation is present. - CI reads either line ending. A checkout on Windows has CRLF by default, and
the suite's workflow parser found nothing in one — worth a case, since that
reads as "CI does not run the tests" on one platform only. - The workflows use current actions.
checkoutandsetup-nodemoved to v7,
which is what makes the publish path OIDC alone: before v7setup-nodeleft a
dummyNODE_AUTH_TOKENin the environment.
Changed
- 398 offline checks, up from 370.
- The workflows are checked too, by a new
cisuite: an action pinned to a
branch, a tab in the YAML, or a release that could publish before comparing the
tag with the manifest fails the suite rather than a release.
0.2.0
An interface release: the usage panel can be dismissed, the configuration page is
reachable from Settings, and the package card reads in Chinese. The adapter's
behaviour is unchanged from 0.1.1.
Added
- The package card in Chinese.
locale/zh.jsonandlocale/en.jsonship with
the package; the Harness reads them without activating the plugin, and a
language with no file falls back to the manifest. - The usage panel can be dismissed. Its title row is pinned to the top of the
scroll and carries a × that returns to the Conversation. - The configuration page sits in Settings. It is a row of Settings' own
navigation, beside the pages the shell ships.
Changed
- A pass over the panel's copy and layout. Shorter sentences, shared by the
configuration page, the usage panel and the settings tab; re-read quota moved
beside the heading it belongs to. - Model variants: fields fold away. A row's fields sit behind its Edit
control, and the add form keeps its fields together with the name rules under
them. - The training-gate badge now reads conversations used for training, in the
warning colour. - The credential-reference hint now says what it sets.
- The changelog ships in English and Chinese, and both files go into the
published package, held in step by a case. - 349 offline checks, up from 331.
- Both development pages name all six files that restate the check count.
0.1.0
First release, published to npm as dsh-llm-opencode-go.
Added
- Provider route — OpenCode Go (
https://opencode.ai/zen/go/v1) registered on
the harness LLM runtime under theopencode-goroute id (configurable), with a
runtime health check that reports the base URL and credential reference. - Three wire protocols — OpenAI Responses, OpenAI-compatible Chat Completions,
and Anthropic Messages, each implemented by the plugin: harness messages, tools
and reasoning are translated into the protocol's request, and its streamed
response is translated back into DSHStreamChunkvalues. - Model discovery —
GET /modelswith an in-memory and an on-disk cache, a
built-in fallback catalog, and per-model protocol selection measured against the
live service. x-opencode-session— one stable id per conversation, derived from the DSH
session id by default, which is what keeps a conversation's turns on the same
upstream backend and the same prompt cache.- Tool calling — a full round trip for every dispatched call: definitions,
fragmented arguments, tool results, and the follow-up turn. - Reasoning — per-protocol effort mapping, including Anthropic thinking budgets.
- Streaming — SSE to
StreamChunkwith usage, finish reason, and an idle
watchdog. - Failures — provider-neutral codes (
AUTH,RATE_LIMIT,QUOTA,
CONTEXT_WINDOW_EXCEEDED, …) so the harness can act on a failure without knowing
which protocol produced it. - Configuration page — a page in the web client's Plugins list: API key,
credential reference, per-model visibility, model variants, re-reading the
service's model list, and what this route has spent. The key goes to the
credential store, never intocordis.patch.yml. - Usage entries — the quota capsule at the sidebar's foot (one ring per window:
5H / Wk / Mo), a usage panel of its own, and a usage tab under Settings. - Test suites — 326 offline checks across config, SSE framing, catalog, all
three protocols, the adapter, the plugin body, the settings bridge and the client
bundle, replaying response bodies captured from the live service
(tests/golden/); 43 further checks mounting the plugin on the harness's own
cordis; and a live suite that spends real quota. - Zero runtime dependencies — the adapter implements the harness contract with
its own error and brand helpers, so it installs into any DSH version.