Releases: SkylerFee/dsh-llm-opencode-go-live
Release list
v0.1.0-alpha.4
Fourth alpha of the OpenCode Go live model catalog plugin for DeepSeek Harness. This release updates installation and release documentation; plugin runtime behavior is unchanged.
Changed
- The English and Chinese quick starts and usage guides now show a direct source installation from the DSH repository root. The commands clone the default
mainbranch beside DSH, build the plugin, and install its directory without shell variables. - The guides recommend a built source checkout or its tarball. Installing directly from GitHub source still requires build-script approval in the consuming pnpm profile.
- The development and release guides document the PR, CI, tag, and pre-release flow.
- The package version, README badges, and tarball examples are updated to
0.1.0-alpha.4.
Verification
pnpm run check: TypeScript build and 20 offline tests passed.pnpm pack --dry-run: the package includeslib/index.jsand excludes tests andnode_modules.- The
0.1.0-alpha.4tarball installed into an isolated DSH Web profile; the profile lists the plugin, and its built entry point passesnode --check. - Live Models.dev refresh, the Web settings page, and real OpenCode Go model calls were not rerun for this documentation-only release.
v0.1.0-alpha.3
Third alpha of the OpenCode Go live model catalog plugin for DeepSeek Harness. This one is a packaging fix: installing from git now produces a plugin that loads.
Added
- The usage guide documents the pnpm build-script allowlist a git install needs, how to confirm the build actually ran, and the fact that pnpm 10 and pnpm 11 print different allowlist keys for a git-hosted dependency. The READMEs and both guides now reference
v0.1.0-alpha.3. - A regression test asserts the package builds
lib/throughprepack, so the fix cannot silently revert.
Fixed
- Installing from git now produces a usable plugin. A git install fetches sources rather than built artifacts, and pnpm runs a git dependency's
prepublish,prepack, andpublishhooks — but not itspreparehook — so the build never ran: the install reported success whilemainandexportspointed at alib/index.jsthat did not exist, and the plugin could not load at all. The build hook is nowprepack, which pnpm does run;pnpm packand local checkouts build exactly as before.
v0.1.0-alpha.2
Second alpha of the OpenCode Go live model catalog plugin for DeepSeek Harness.
The plugin reads the opencode-go provider catalog from Models.dev, validates the whole batch, and registers a separate opencode-go-live route with its own Models settings card. The built-in opencode-go route is untouched, and the two routes never share a credential record.
What it does
- Restores the last saved catalog snapshot at startup, then refreshes from Models.dev (up to four retries, 15 seconds apart) and every 6 hours afterwards (
catalog.refreshIntervalMs). - Publishes a snapshot only after the full batch validates and converts, replacing it atomically; a failed fetch, conversion, or save keeps the last successful catalog instead of clearing it.
- Gives every catalog model an explicit policy: known models inherit protocol, endpoint, and compatibility fields from the installed pi-ai table, unknown models use the generic OpenCode Completions endpoint, and entries that are deprecated, lack usable limits, or cannot accept text are rejected with a diagnostic rather than silently skipped.
- Resolves media inputs through the host's durable attachment service: a
read_imagetool result or a pasted screenshot is decoded, sized to the profile's request-image budget, and sent as image content the way it is on the built-in routes. With no attachment service mounted a request carrying an image fails withUNSUPPORTED_CONTENTinstead of being silently dropped, and file attachments are never sent as bytes — request assembly projects them to handle text. - Reuses pi-ai's OpenCode Go transport for requests and passes the DSH session id as
x-opencode-session. - Ships its own browser entry, so the API key is edited in Settings → Models instead of a config file.
Install
pnpm dsh plugin --profile web add github:SkylerFee/dsh-llm-opencode-go-live#v0.1.0-alpha.2A local checkout, or a tarball built with pnpm pack, installs with the same command.
Credentials and local state
- The API key is resolved per request through the DSH credentials service under
OPENCODE_GO_LIVE_API_KEY. That reference is deliberately distinct from theOPENCODE_GO_API_KEYthat the Models page derives for the built-inopencode-goroute, so the two routes never read one credential record. - The catalog snapshot lives at
cache/opencode-go-live.jsonunder the Harness home —~/.dsh/cache/opencode-go-live.jsonby default, or under$DSH_HOMEwhen that variable is set. It contains the check time, the converted models, and diagnostics; it never contains the key, conversation requests, or responses. - Installation does not change the default model.
Requirements
- DeepSeek Harness with the
llmandcredentialsservices; the Models card also needssettings. - Node.js 22.19 or newer (the floor pi-ai declares) and pnpm.
Notes
- Pre-release: the catalog contents follow whatever Models.dev publishes for
opencode-go, so the model list can change between plugin versions. - Fetching the catalog needs no API key; the key is resolved only when a request reaches the OpenCode Go API.
- Listing a model does not establish that the upstream API will authorize it.
- This package is not published to a registry. Install it from git, a tarball, or a local checkout.
- The README now shows the card's key editor and model list, plus the session model picker, as screenshots.
中文说明
DeepSeek Harness 的 OpenCode Go 动态模型目录插件第二个 alpha 版本。
插件从 Models.dev 读取 opencode-go 供应商目录,整批校验后注册独立的 opencode-go-live 路由,并提供插件自己的 Models 设置卡片。内置 opencode-go 路由不受影响,两条路由不会共用同一条凭据记录。
功能
- 启动时先恢复上次保存的目录快照,随后从 Models.dev 刷新(失败最多重试 4 次,间隔 15 秒),之后每 6 小时刷新一次(
catalog.refreshIntervalMs)。 - 只有整批校验与转换都通过后才发布快照,并以原子方式替换;抓取、转换或保存失败时保留上一次成功目录,而不是清空。
- 每个目录模型都有明确策略:已知模型从 pi-ai 内置表继承协议、端点与兼容字段,未知模型使用通用 OpenCode Completions 端点;已弃用、缺少可用上限,或无法接受文本输入的条目会带诊断被拒绝,而不是静默跳过。
- 媒体输入经宿主的 durable 附件服务解析:
read_image工具结果或粘贴的截图会按 profile 的请求图片预算解码缩放后作为图片内容发送,与内置路由一致。未挂载附件服务时,携带图片的请求以UNSUPPORTED_CONTENT明确失败而不是被静默丢弃;文件附件从不以原始字节发送,由请求组装层投影为句柄文本。 - 请求复用 pi-ai 的 OpenCode Go 传输实现,并把 DSH 会话 ID 作为
x-opencode-session传给上游。 - 自带浏览器入口,API Key 在 Settings → Models 页面编辑,无需改配置文件。
安装
pnpm dsh plugin --profile web add github:SkylerFee/dsh-llm-opencode-go-live#v0.1.0-alpha.2本地 checkout 或 pnpm pack 产出的 tarball 用同样的命令安装。
凭据与本地状态
- API Key 在每次请求时由 DSH 凭据服务按
OPENCODE_GO_LIVE_API_KEY解析。该引用刻意区别于 Models 页为内置opencode-go路由派生的OPENCODE_GO_API_KEY,两条路由不会读取同一条凭据记录。 - 目录快照位于 Harness home 下的
cache/opencode-go-live.json(默认即~/.dsh/cache/opencode-go-live.json,设置$DSH_HOME时位于其下)。快照只包含检查时间、转换后的模型和诊断,不含密钥、对话请求或响应内容。 - 安装不会更改默认模型。
环境要求
- 需要带
llm与credentials服务的 DeepSeek Harness;Models 卡片还需要settings服务。 - Node.js 22.19 及以上(pi-ai 声明的最低版本)和 pnpm。
说明
- 预发布版本:目录内容取决于 Models.dev 为
opencode-go发布的内容,因此模型列表可能随插件版本变化。 - 获取目录不需要 API Key;只有请求真正到达 OpenCode Go API 时才会解析密钥。
- 能列出模型不代表上游 API 会授权该请求。
- 本包未发布到 registry,请从 git、tarball 或本地 checkout 安装。
- README 现在以截图展示了卡片的密钥编辑与模型列表,以及会话中的模型选择器。
v0.1.0-alpha.1
First release of the OpenCode Go live model catalog plugin for DeepSeek Harness.
The plugin reads the opencode-go provider catalog from Models.dev, validates the whole batch, and registers a separate opencode-go-live route with its own Models settings card. The built-in opencode-go route is untouched, and the two routes never share a credential record.
What it does
- Restores the last saved catalog snapshot at startup, then refreshes from Models.dev (up to four retries, 15 seconds apart) and every 6 hours afterwards (
catalog.refreshIntervalMs). - Publishes a snapshot only after the full batch validates and converts, replacing it atomically; a failed fetch, conversion, or save keeps the last successful catalog instead of clearing it.
- Gives every catalog model an explicit policy: known models inherit protocol, endpoint, and compatibility fields from the installed pi-ai table, unknown models use the generic OpenCode Completions endpoint, and entries that are deprecated, lack usable limits, or cannot accept text are rejected with a diagnostic rather than silently skipped.
- Reuses pi-ai's OpenCode Go transport for requests and passes the DSH session id as
x-opencode-session. - Ships its own browser entry, so the API key is edited in Settings → Models instead of a config file.
Install
pnpm dsh plugin --profile web add github:SkylerFee/dsh-llm-opencode-go-live#v0.1.0-alpha.1A local checkout, or a tarball built with pnpm pack, installs with the same command.
Credentials and local state
- The API key is resolved per request through the DSH credentials service under
OPENCODE_GO_LIVE_API_KEY. That reference is deliberately distinct from theOPENCODE_GO_API_KEYthat the Models page derives for the built-inopencode-goroute, so the two routes never read one credential record. - The catalog snapshot lives at
cache/opencode-go-live.jsonunder the Harness home —~/.dsh/cache/opencode-go-live.jsonby default, or under$DSH_HOMEwhen that variable is set. It contains the check time, the converted models, and diagnostics; it never contains the key, conversation requests, or responses. - Installation does not change the default model.
Requirements
- DeepSeek Harness with the
llmandcredentialsservices; the Models card also needssettings. - Node.js 22.19 or newer (the floor pi-ai declares) and pnpm.
Notes
- Pre-release: the catalog contents follow whatever Models.dev publishes for
opencode-go, so the model list can change between plugin versions. - Fetching the catalog needs no API key; the key is resolved only when a request reaches the OpenCode Go API.
- Listing a model does not establish that the upstream API will authorize it.
- This package is not published to a registry. Install it from git, a tarball, or a local checkout.
中文说明
DeepSeek Harness 的 OpenCode Go 动态模型目录插件首个版本。
插件从 Models.dev 读取 opencode-go 供应商目录,整批校验后注册独立的 opencode-go-live 路由,并提供插件自己的 Models 设置卡片。内置 opencode-go 路由不受影响,两条路由不会共用同一条凭据记录。
功能
- 启动时先恢复上次保存的目录快照,随后从 Models.dev 刷新(失败最多重试 4 次,间隔 15 秒),之后每 6 小时刷新一次(
catalog.refreshIntervalMs)。 - 只有整批校验与转换都通过后才发布快照,并以原子方式替换;抓取、转换或保存失败时保留上一次成功目录,而不是清空。
- 每个目录模型都有明确策略:已知模型从 pi-ai 内置表继承协议、端点与兼容字段,未知模型使用通用 OpenCode Completions 端点;已弃用、缺少可用上限,或无法接受文本输入的条目会带诊断被拒绝,而不是静默跳过。
- 请求复用 pi-ai 的 OpenCode Go 传输实现,并把 DSH 会话 ID 作为
x-opencode-session传给上游。 - 自带浏览器入口,API Key 在 Settings → Models 页面编辑,无需改配置文件。
安装
pnpm dsh plugin --profile web add github:SkylerFee/dsh-llm-opencode-go-live#v0.1.0-alpha.1本地 checkout 或 pnpm pack 产出的 tarball 用同样的命令安装。
凭据与本地状态
- API Key 在每次请求时由 DSH 凭据服务按
OPENCODE_GO_LIVE_API_KEY解析。该引用刻意区别于 Models 页为内置opencode-go路由派生的OPENCODE_GO_API_KEY,两条路由不会读取同一条凭据记录。 - 目录快照位于 Harness home 下的
cache/opencode-go-live.json(默认即~/.dsh/cache/opencode-go-live.json,设置$DSH_HOME时位于其下)。快照只包含检查时间、转换后的模型和诊断,不含密钥、对话请求或响应内容。 - 安装不会更改默认模型。
环境要求
- 需要带
llm与credentials服务的 DeepSeek Harness;Models 卡片还需要settings服务。 - Node.js 22.19 及以上(pi-ai 声明的最低版本)和 pnpm。
说明
- 预发布版本:目录内容取决于 Models.dev 为
opencode-go发布的内容,因此模型列表可能随插件版本变化。 - 获取目录不需要 API Key;只有请求真正到达 OpenCode Go API 时才会解析密钥。
- 能列出模型不代表上游 API 会授权该请求。
- 本包未发布到 registry,请从 git、tarball 或本地 checkout 安装。