Skip to content

Releases: eghrhegpe/dsh-connect-modelscope-token-plan

v0.7.0 — 出图开关当场生效,不用再重启 DSH

Choose a tag to compare

@eghrhegpe eghrhegpe released this 25 Oct 18:56

🎨 v0.7.0 — 出图开关当场生效,不用再重启 DSH

本版主线是纠正一句写错了很久的话:面板一直提示「开关保存后要下次启动 DSH 才挂载」,理由是「peer 的 tools registry 没有 unregister」。实测并非如此——宿主的 tools.register() 返回的是注销句柄(register(definition: ToolDefinition): () => void),兄弟插件早就在用它热挂热卸。是我们把这个返回值丢掉了,于是「没接线」被讲成了「宿主不支持」。

升级提醒:插件本身更新仍然要完全重启一次 DSH。重启之后,出图开关的每次翻转都是当场生效。

一、出图开关当场生效

翻开「出图工具」开关,工具立刻可用;关掉立刻从工具列表消失。此前面板只能提示「下次启动才挂载」——而工具挂上就摘不掉,于是关掉开关之后,它还会被 agent 调起。

二、卸载即摘掉,不留僵尸条目

卸载插件或热重载时,工具随之下线。旧行为下注册句柄被丢弃、注册结果留在宿主里,插件走了工具还在,同名重挂会被宿主拒绝。

三、旧 Host:挂得上、摘不掉,就直说

若宿主不返回注销句柄,开关仍能挂上但摘不掉:面板给出「本机 Host 不支持卸载」这个原因,而不是假装已经关掉。

四、面板:「下次启动」的提示只剩失败场景

这条提示改成瞬时读数:只在开关已开、几秒内还没挂上、且还查不出原因时出现;查得出原因的(缺 tools 服务 / 模块加载失败 / 注册被拒 / 不可摘)直接把原因写在卡上。

五、工程:门禁自己的一处静默 bug

全量测试首跑时,host-range 与 peer-imports 同时报「src/host/draw-register.ts 少了一条 @deepseek-ai/dsh-tools 动态导入」——AST 路看得见、词法路看不见。根因是 token 扫描器没处理模板字面量续扫(reScanTemplateToken),成对的反引号互相错位后把中间的动态 import() 吞掉了;旧文件反引号奇偶碰巧配对,所以一直是绿的。已修,并补了夹具回归与变异对照(修复前数出 0 个导入点、修复后 1 个)。


完整变更:CHANGELOG.md · 过程档案:docs/archive/2026-10-26-0.7.0-process.md

v0.6.6 — 胶囊可以点开了,两个新上架模型不再停在 128k 兜底

Choose a tag to compare

@eghrhegpe eghrhegpe released this 23 Oct 06:40

🎨 v0.6.6 — 胶囊可以点开了,两个新上架模型不再停在 128k 兜底

本版主线是面板诚实度的两处补强:对话框里的魔搭胶囊此前只是个读数、点它没反应,现在点开是一张详情卡;模型窗口方面,DeepSeek-V4.1-Flash-1017(视觉)与 Step-5-Preview 上架时不在内置策展表里,面板只能显示 128k 兜底——而它们在 models.dev 各厂 host 下的共识是 1M,现在按共识显示。

另有一条维护者向的改动:新增策展表漂移检查器,每周一自动把内置表与上游对账,「上游动了、表没跟上」从此不再依赖人手动发现。


一、对话框胶囊可以点开,还多了「· N 新模型」

胶囊此前只是读数、点它没反应;现在点开是一张小卡:官方余额、今日本地调用、数据时间与口径说明都在里面,向上弹不遮草稿,Esc 或点外面收起。

目录里出现本机第一次见到的模型时,胶囊末尾多一段 · 2 新模型,面板里列出名字。口径是本机首见,不是网关新增——目录不返回「何时上架」,只能记「我何时第一次看到它」。只报最近 7 天内首见的;首次运行只播种、不宣布,不会把整个目录报成新。

二、模型窗口:两个新上架模型不再停在 128k 兜底

DeepSeek-V4.1-Flash-1017(视觉)与 Step-5-Preview 上架时不在内置上下文窗口策展表里,面板只能显示 128k 兜底值,而它们在 models.dev 各厂 host 下的共识窗口是 1M。现在按上游共识显示 1M。

三、诊断:多认一个状态文件

npm run doctor 现在也盘点 roster-seen.json(每个 profile 记了多少模型、其中几个是最近 7 天内首见)。文件损坏或版本不认识时与其他状态文件同款报出,不再只是「少了那句标记」而没有痕迹。

四、工程:策展表有了自动对账

新增 npm run context-catalog:check:把内置窗口策展表与 models.dev 上游、魔搭 live 目录做 diff——缺条目、值漂移、条目下架都会点名;每周一自动跑一次(.github/workflows/context-catalog-check.yml),改表或改脚本时也会即时触发。本版第二条修复正是它要防的那类问题:表是静态知识,而上游会动。

v0.6.5 — 出图回显先脱敏,计数写盘失败不再悄悄冻住

Choose a tag to compare

@eghrhegpe eghrhegpe released this 21 Oct 09:43

🎨 v0.6.5 — 出图回显先脱敏,计数写盘失败不再悄悄冻住

本版主线是两处「面板不诚实」的修复:被拒的图片地址此前原样回显(它可能带着签名串或令牌,凭据就此进日志也进面板);本地计数写入失败此前被吞掉,面板继续显示上一次成功写下的数字——数字看着在涨,其实早就冻住,且没有半点痕迹。

附带一条工程改动:插件声明的 AI 运行时依赖范围从 ^0.85.1 放宽到 >=0.85.0 <2.0.0,与当前宿主随附的版本对齐,装上时不再被标成「超出上界」。


一、出图:被拒的图片地址不再原样回显

输入的图片地址校验不过时,此前原样回显你给的地址——它可能带着签名串或令牌,于是凭据进日志也进面板。现在先脱敏再截断:诊断信息(协议、主机、路径)留着,凭据那部分显示为 [REDACTED]。

二、面板:计数写盘失败会说出来

本地计数的写入失败此前被吞掉,面板继续显示上一次成功写下的数字——数字看着在涨,其实早就冻住,且没有半点痕迹。现在写入失败会记一条异常送进面板(并留一条日志),只有真正落盘的写入才算数。

三、工程:依赖范围放宽

插件声明的 AI 运行时依赖范围从 ^0.85.1 放宽到 >=0.85.0 <2.0.0,与当前宿主随附的版本对齐,装上时不再被标成「超出上界」。

v0.6.4 — 出图抗边缘抖动 + 本地计数依赖说明 + 卡片介绍中英同源

Choose a tag to compare

@eghrhegpe eghrhegpe released this 19 Oct 17:51

[0.6.4] — 2026-10-19

出图:上游边缘抖动不再杀死任务

  • 轮询遇到 5xx / 429 / 408 不再判失败:与传输层抖动同一纪律,在本次等待预算内
    继续等,等不到才以 pending + jobId 收场(带 jobId 续查即可,不必重新出图)。
    此前同一种 CDN 边缘抖动只因表现为 503 就杀作业并进 60s 冷却。4xx 仍是终局。
  • 出图作业表淘汰时跳过仍在续查窗内的作业(越过总放弃线的才优先丢)——能续查的
    作业被杀,两段式就残缺了;并发 pending 再多也不会杀到活作业。
  • 余额缓存键改用完整令牌指纹(此前只取末 6 位,极小概率把一个身份的余额当成
    另一个的返回)。无界面变化。

面板:本地计数的依赖说在明面上

  • 未开启「接入为 DSH 模型」时,「本地」区块现在给出一条提示说明计数从接入后
    开始记录——此前新装用户看到的是恒为 0/空的四块计数,与「插件坏了」不可区分;
    开了但没注册成功时提示改说注册状态;provider 状态读不到时不出这条,不替
    Host 断言。

卡片介绍:中英文同源

  • 卡片介绍(locale/zh.json、locale/en.json、package.json 的 description)此前是三份
    不同步的文本:中文里「默认关」挂在上下文窗口上(开关关的是模型接入,不是自动填入的窗口),
    英文另有一段与中文对不上的译文。现在三处与投稿拟稿逐字相同,中文为准、英文逐句对应。

实施过程(病灶取证、判据、为何两处不改)在
docs/archive/2026-10-19-0.6.4-process.md
。

v0.6.3 — 插件卡头部收敛 + 出图失败文案诚实化 + 读不到不再假装知道

Choose a tag to compare

@eghrhegpe eghrhegpe released this 19 Oct 11:31

[0.6.3] — 2026-10-19

插件卡头部收敛:「魔搭模型接入」不再在同一屏出现两次

  • 卡内那个与外壳标题同名的大标题删掉了。插件名只由外壳在插件区正上方打印(取自
    locale/<lang>.json 的 meta.title),卡内复述它会让同一个字符串在一屏出现两次、
    中间隔着外壳给所有插件的 32px 固定间隔,读起来像一个断成两半的表头。
  • 原先独占一行、左半边空着的「更新于 / 刷新」并入 tab 行右侧;tab 条下方那条分隔线
    改由整行承担,激活 tab 的 2px 下划线正好压在线上。刷新按钮与「更新于」留在
    role="tablist" 之外——读屏不会再把它们当成 tab 念。
  • 卡内自带的 16/56 纵向内边距一并归零:它们叠加在外壳已给的 32px 段间距与 48px
    页底之上,使描述到 tab 之间空了 48px、页尾空了 104px。横向留白本来就由外壳负责,
    卡内一直是 0,本次不动。

出图工具:失败文案不再替上游编原因,「停止」立即生效

  • 出图报 401/403 时不再一律附注「账号未完成邮箱验证/实名」:只有上游 body 点名了邮箱或
    实名(含英文 email verification)才照说,否则只说「令牌无效或无权访问该模型」。同一个
    401 也覆盖令牌过期,把实测遇到过一次的形态写成固定附注,等于替上游编造原因。
  • 轮询遇到非 2xx 不再报「任务停在 RUNNING(非终态),已超过截止时间」:上一轮的读数
    只是上下文,本轮没读到就是没读到,HTTP 状态码与上游 body 照实带出。
  • 等待中被撤下(插件卸载 / 热重挂)立即以 pending 收场并交回 jobId,不再等满等待
    预算;停止也能中止在途的轮询请求,不再只是中断本地 sleep。
  • 出图作业表改由装配处统一创建与销毁:卸载后不再残留作业记录,jobId 续查读的也
    始终是同一张表。jobId 只在本次挂载内有效,pending 提示现在把这点写明(重启 DSH
    或重挂插件后要重新提交)。一次出图调用的硬超时不再可能比 drawTimeoutMs 上限多出 10 秒。
  • 上游任务 FAILED 且响应体里真写了原因时照实报出(此前一律说「未给出失败原因」,
    把 sensitive content detected 这类 body 一起吞掉),且失败响应体一律附上——这是
    全函数唯一不附 body 的分支。

面板与胶囊:读不到的时候不再假装知道

  • 面板读失败时错误行照常显示,不再要求「上一轮的数据还在」;数据还在时另起一句
    「下面是上次读到的数据」。此前首屏成功过、Host 随后挂掉时,界面是「上一轮的数字
    • 完好的状态簇 + 一句沉默」:故障窗口越长,越像一份可信的实时读数——胶囊在同一
      情形下是挂「上次数据」标的,同一种「读不到」两种待遇。
  • 模型目录读不到时 provider 卡现在说明原因。此前是「已注册 · 0 个模型」加一片空白:
    0 个模型是真的,而「为什么是 0」没人说,旧 roster 其实还在服务。
  • 对话框胶囊只在本帧真有读数时才标「上次数据」。连续读失败时两个读数是「—」,
    此前仍给「—」挂这个标签——它在描述一份屏幕上并不存在的数据。
  • 粘贴带前后空白的令牌不再存成一个发不出去的 Authorization 头(此前校验时忽略空白、
    落库时保留原值,面板还显示「已保存」)。

实施过程(病灶取证、判据、为何不抵消外壳间距)在
docs/archive/2026-10-19-0.6.3-process.md
。

v0.6.2 — 命名与文案定稿

Choose a tag to compare

@eghrhegpe eghrhegpe released this 18 Oct 15:47

v0.6.2 — 命名与文案定稿版

纯展示文案版本:功能、数据与流程同 0.6.1,无行为变化。

  • 卡片标题 / 面板页头:「魔搭接入 · 额度面板」→「魔搭模型接入」(英文同步 ModelScope Model Access)
  • 卡片描述重排:以「模型接入」为本体——一键注册魔搭语言模型与生图工具,自动填入图片识别与上下文窗口,注册即可用(均默认关);免费额度面板(官方魔粒余额、本地调用计数 / 趋势 / 限流事件)降为加分项,不注册也能看
  • provider 注册不再挂过时的「(路线图)」标签(实际已交付),改按 opt-in 如实写「均默认关」

升级生效:DSH 插件更新后完全重启 DSH(版本号在宿主侧,重启后面板才会显示 0.6.2)。

v0.6.1 — 迁移窗口期旧数据可见、趋势读数规范进位;额度耗尽模型不再进选择器

Choose a tag to compare

@eghrhegpe eghrhegpe released this 18 Oct 09:46

v0.6.1

本次发布覆盖 0.6.0 与 0.6.1 两节的公开变化(上一版 latest 为 0.5.0)。

迁移窗口期不再看不见旧数据

宿主开始按 profile 分段后(或从旧版升级到支持分段的版本),npm run doctor 只报新的
profile 目录、把旧共享目录里的状态整份藏了——操作者看到的「干净机器」与磁盘事实不符。
现在共享目录在场就报(shared (legacy) 作用域),旧文件里的损坏 / 未知版本也进症状表。
趋势图的显示天数今后会从 pre-profile 共享目录里一次性继承;本地计数历史故意不搬,
但 doctor 让它可见。

趋势图的 token 读数不再写出 1000k

接近百万的读数(如 999_999)过去在千位档四舍五入溢出成 1000k,现在按进位后量级
分档,显示规范的 1m。两个跨档进位点已钉进测试。

额度耗尽的模型不再进选择器(0.6.0)

面板「模型」tab 的灰显与禁勾选逻辑早已存在,但「谁算额度耗尽」一直缺生产者。现在接上:
最近一次真耗尽(quota 类 429 事件,重分类后口径)落在推断窗口内(默认 60 分钟,
exhaustionWindowMinutes 可调)的模型,选择器不再提供、面板 roster 灰显且禁勾选,
移出窗口即恢复。这是从事件流推断的保守口径——「已恢复」不可观测,模型最多灰显满一个
窗口,且带原因而非静默消失。

安装

dsh plugin add dsh-connect-modelscope-token-plan

完整变更与实施档案见 CHANGELOG.md。

v0.5.0 — 模型清单按厂商分组、趋势图重做、读数与标签不再自相矛盾

Choose a tag to compare

@eghrhegpe eghrhegpe released this 17 Oct 15:03

面板「模型」tab 的清单重做:模型按厂商分组,组头可折叠并带「几个 / 已选几个」,组内只显示模型名(完整 id 留在悬停里),顶部加了搜索框;推荐的三家(深度求索 / 智谱 / 通义千问)置顶。

卡片顶部原先分两行说「已接入」「已注册」,加上区块标题一共说了三遍,现在并成一行。「上下文窗口」选择器改名为「上下文窗口覆盖」并沉到卡片最底——它本来就是盖过目录与内置策展表的那一级,旧名字「默认(跟随目录)」名不副实。

窗口徽标不再把上游写的十进制数换算成另一个样子:256000 从 250K 改为 256K、1000000 从 977K 改为 1M、200000 从 195K 改为 200K。

「额度」tab 的趋势图改竖向柱状图(柱顶标次数),新增「显示天数」选择器(默认 / 7 / 14 / 30 / 90)——它与决定「能回看多久」的保留窗口是两件事。单模型排行的读数补上单位:2 · 21,695t 改为 2 次 · 21,695 token。

本地计数是「本客户端」的口径:桌面端与 Web 端各记各的账、互不可见(此前文档写成「覆盖全部 DSH 魔搭调用」,实测不成立)。想并排看各客户端的账用 npm run doctor。

v0.4.0 — 出图两段式 + 出图设置守卫 + 状态读取不再编值

Choose a tag to compare

@eghrhegpe eghrhegpe released this 17 Oct 00:49

出图工具不再让整轮对话干等:一次调用只等约 90 秒(新增 drawWaitMs 可调),图没出好就
返回 jobId,稍后带上它再查——只查询,不会重复出图。15 分钟总预算改为「从提交时刻起
累计」。

出图设置(开关 / 出图模型)不再丢保存:两项并发修改会串行写入;设置文件存在却读不懂时
拒写并说明原因,读侧把「保存的值被忽略」明说成一条警告,npm run doctor 也会盘点该文件。

provider 状态读不到时,面板不再拿编出来的默认值顶上,而是改用独立的状态查询取真值,
并把「读不到」的原因列进警告——操作者能区分「没接入」与「插件读不到自己的状态」。

出图失败消息的脱敏与插件其余部分共用同一份规则(补上 sk- 密钥与 password=… 键值对
两组)。

面板保存不再被瞬时网络故障打断:魔搭目录拉取失败时只保留当前已服务的模型并自动重试,
不会再把已注册模型整体撤下;保存与后台轮询合并为单一的收敛流程。

v0.3.0 — 面板胶囊 + 上下文窗口三级真值链

Choose a tag to compare

@eghrhegpe eghrhegpe released this 16 Oct 11:52

这次更新围绕两件事:让面板上的额度信息随手可见,把「模型到底有多大上下文」从拍脑袋变成有依据的声明。

输入框用量胶囊(默认随 provider 注册出现)

  • 输入框工具栏多一枚轻量读数,例如「魔搭 · 143 魔粒 · 今日本地 7 次」:前半是官方魔粒余额,后半是经本插件发出的本地当日计数——两半各标各的来源,官方口径与本地口径不再混写。
  • 读不到时显示「—」而不是 0(0 是"余额确实耗尽",是另一个信号);读失败保留上一次数值并标注「上次数据」。

上下文窗口:三级真值链
魔搭目录接口不返回任何窗口字段,此前所有模型一律按 128K 兜底声明。现在按顺序取值:

  1. 目录真声明了就用目录值;
  2. 面板新增「上下文窗口」选择器(默认/128K/256K/512K/1M),对目录未声明的模型全局生效,保存即重注册;
  3. 用户没设时查内置策展表(来源 models.dev 各厂同 id 交叉比对,2026-10-16 核对,覆盖当前目录 19 个 id:DeepSeek-V4 全系 1M、Qwen3.5 系/Step 3.x 256K、GLM-5.2 1M 等);表里也没有才落 128K。
  • 模型列表每行标注当前生效窗口;策展表得出的值带 * 号(平台未亲口声明,与目录声明/用户覆盖区分开)。

修

  • 保存窗口覆盖后,后台目录轮询不再把它每 30 秒回退一次(发版前复核抓出,已带回归测试)。
  • CI 门禁两处「上游数据引发的红」修复;新增两档真 DOM 渲染门禁(mini 替身 + 真 React 18.3.1)。
  • 写守卫与注册状态机六处修正(空清单判据、版本守卫 fail-open、回滚漏 release 等,每条带阴性对照测试)。

安装照旧:DSH 插件市场或 dsh plugin add github:eghrhegpe/dsh-connect-modelscope-token-plan。完整明细见 CHANGELOG。