Repository navigation
dsh-model-surplus v0.4.1 — 跟着路由解析密钥(修「未配置密钥」)
修一个会让人以为「插件没装好」的 bug
症状:切到另一个数据目录(例如把数据目录改成「跟随系统」)后,即使卸载再重装本插件,
会话标题旁也不显示 Command Code 的余量,而是显示 「未配置密钥」。
原因:插件找密钥用的是写死的名字 COMMANDCODE_GOAT_API_KEY(当年那条路由叫
commandcode-goat)。而引擎是按路由自己声明的 apiKeyEnv 取密钥的 —— 换了数据目录之后,
路由名变成了 commandcode(这正是本插件自己的补丁声明的名字),GUI 给这个路由推导出的密钥名是
COMMANDCODE_API_KEY。
于是同一个密钥:聊天完全正常(引擎按路由取到了),余量却报「未配置密钥」(插件按写死的
名字去找,找不到)。重装插件没用 —— 那个名字在插件默认值里,不在你的配置里。
修法:插件现在跟着路由走 —— 先读该路由自己声明的 apiKeyEnv,找不到才回退到插件里那个
默认名。这样它和引擎用的是同一个名字,不可能再出现「聊天能用、余量说没密钥」的分歧。
三个分区(OpenCode Go / Command Code / DeepSeek)都受益:任何路由只要自己声明了
apiKeyEnv,插件就会照着用。找不到密钥时的诊断也更准了 —— 现在会列出它找过的所有名字。
实测(真实 ~/.dsh 数据):
路由: commandcode apiKeyEnv=COMMANDCODE_API_KEY (默认模型就是它)
查找顺序: HIT COMMANDCODE_API_KEY → miss COMMANDCODE_GOAT_API_KEY
额度接口: HTTP 200 credits=63.10 windows=yes
安装
# 推荐:直接从 GitHub 装(记进 profile,之后可跟着更新)
dsh plugin --profile web add github:itchenshi/dsh-model-surplus
# 备选:本 Release 的 tarball(git 协议走不通、但 HTTPS 能通时用这条)
dsh plugin --profile web add https://github.com/itchenshi/dsh-model-surplus/releases/download/v0.4.1/dsh-model-surplus-0.4.1.tar.gz升级
- 用 DSH Ready GUI:随包版本已抬高到 0.4.1,下次启动 GUI 时会自动重装,不需要手动操作。
- 自己装的:按上面任一命令重装即可。
验证
npm test:33 项通过(新增 credentialRefsFor 的用例,覆盖「路由名优先、默认名兜底、
多个候选去重、没有 settings 服务时的回退」等)。