# 发布流程(维护者) > 从 README 移出:这属于维护者/代理文档,不是使用者要看的。 > 发版前的红线与坑位仍以仓库根目录 [`AGENTS.md`](../AGENTS.md) 为准。 ## 发布方式(维护者) npm 发布走 **Trusted Publishing (OIDC)**,仓库内不存任何 token: ```sh # package.json 版本改好并提交后 git tag v1.3.2 && git push origin v1.3.2 ``` `.github/workflows/publish.yml` 会校验「tag 与 package.json 版本一致」「dependencies 为空」 「语法」「全套测试全绿」,全过才发布,并附带 provenance 溯源。 首次使用需先在 npm 网页把本仓库配成 Trusted Publisher(详见该 workflow 顶部注释)。 v1.3.3 — **修复「一键更新」按钮无响应**(DSHA webview 拦截 `window.confirm` 导致点击后函数在第一行 return):去掉确认弹窗,直接执行安装;更新结果改为醒目横幅(成功绿底/失败红底),不再只显示 11px 灰色字;`already up to date` 返回 200 而非 500 v1.3.4 — **DeepSeek 价格表对齐官方 2026-09-10 调价 + 模型名收敛**(对照 [官方定价页](https://api-docs.deepseek.com/zh-cn/quick_start/pricing) 与 `GET https://api.deepseek.com/models` 实测):① **Flash 系列降价 60%** —— `deepseek-flash` 高峰 ¥2/¥8、空闲 ¥1/¥4(原 ¥3/¥9、¥1.5/¥4.5),**USD 表同步改为官方直发价**高峰 $0.3/$1.2、空闲 $0.15/$0.6(此前 USD 是 ÷7 近似,官方实际口径约 1 USD ≈ 6.67 CNY,差距不小);`deepseek-v4-pro` 价未变动(¥9/¥27、¥4.5/¥13.5)。② **模型名收敛** —— 官方现役仅 `deepseek-flash` / `deepseek-v4-pro`(与 `/models` 返回一致),旧名 `deepseek-v4-flash` / `deepseek-v4-flash-vision-exp` 仍可调用但由 V4.1-Flash 服务、按 Flash 价计费,解析层统一映射到 flash 档(故价格卡不再单列旧名);官方公告 2026-09-14 12:00 后 `deepseek-v4-pro` 请求将全部路由到 V4.1-Flash 并按 Flash 价计费。③ 新增 7 条 DeepSeek 回归断言(新旧名同价、chat/reasoner 不被劫持、缓存读低于输入价)。④ **通用价格表按用户自持中转站实时 `/v1/models` 报价校正**(tokenrhythm / mhsapi 等多平台交叉比对;国内厂商 CNY 价 ÷7 入 USD 基准):**新增 7 个模型** —— `glm-5.3` / `glm-5.1`(¥8/¥28)、`kimi-k2.7-code`(¥6.5/¥27)、`seed-2.1-turbo` / `seed-2.1-pro`(¥3/¥15、¥6/¥30)、`minimax-m2.7`(¥2.1/¥8.4,无缓存报价→`cacheHit=cacheMiss`)、`longcat-2.0`(¥5/¥20);**修正 5 处偏差 + 1 处缓存读** —— `glm-5.2`(¥9.8/¥30.8→¥8/¥28)、`glm-5.3-flash`(¥1.05/¥3.5→¥0.8/¥2.8)、`qwen3.8-flash`、`qwen3.8-27b`(输出虚高 43%)、`kimi-k2.6`,另 `qwen3.8-max` 缓存读 1.71→0.2143(实时 ¥1.5,原值缺缓存折扣);`qwen3.7-max`(5 折促销)与 `qwen3.7-flash`(0-32k 档)保留原值并注明实时报价差异,待官方分档核实。⑤ 🔴 **修复小米 MiMo 系「除两次 7」严重错价** —— `mimo-v2.5` / `mimo-v2.5-pro` 原值(0.020/0.041、0.061/0.122)是把官方 ¥1/¥2、¥3/¥6 **又除了一次 7** 的结果,面板把 MiMo 消耗少算成实际的 **1/7**;经中转站实时报价(mimo-v2.5-pro ¥3/¥6)交叉印证后修正为 0.1429/0.2857 与 0.4286/0.8571。⑥ `DOMESTIC_MODEL_PREFIXES` 补 `seed-` / `longcat`(产地判定),`modelToPlatform` 补 `seed-*` → 豆包映射。全套 10 文件 **208 断言** v1.4.0 — **原生币种价格表 + 一批准确性/事件语义修复 + 子代理消耗可见 + 设置界面控件统一 + 大肥鱼挂件与状态条三处交互修复**(本轮把各厂商官方定价页抓了原文逐条复核:DeepSeek 中英双页、`platform.kimi.com`、`platform.minimaxi.com`、`platform.stepfun.com`、`docs.bigmodel.cn`、`help.aliyun.com`(百炼)、小米 MiMo 官方降价公告): ① 💱 **价格表不再统一存 USD 基准,改为按「模型原生币种」存储** —— 国内厂商官方页是 CNY 就直接写 CNY 原值,海外是 USD 就写 USD 原值(币种由 `modelRegion` 判定,见新增导出 `nativeCurrencyOf`)。**这从结构上消灭了「÷7 又 ×7」这一类错价**:MiMo 与 glm-4-plus 两次事故都是同一个成因。同时 `overseasCurrency` 默认值由 `'follow'` 改为 `'USD'`,即**国内用国内价(CNY)、海外用海外价(USD)**,默认配置下两边都不做任何换算(想要 v1.2.x 的老行为,显式设成 `'follow'` 即可)。 ② 🔴 **修复「历史/参考」段整段被高估 7 倍** —— 该段国内条目历来填的就是官方 **CNY 原值**,在旧的 USD 基准口径下被又 ×7 了一次。已核对样本:`glm-4-plus` ¥2.5/¥5/¥5(旧显示 ¥17.5/¥35/¥35)、`qwen-plus` ¥0.8/¥2、`qwen-turbo` ¥0.3/¥0.6、`qwen2.5-72b` ¥4/¥12 均与官方页逐项吻合。另修 `qwen-max`(官方现价 ¥2.4/¥9.6,旧值 20/60 是远古价)。 ③ **按官方页修正现役模型错价**:`glm-5-turbo`(旧值两档都不符 → ≥32K 档 ¥7/¥26/¥1.8)、`kimi-k2.6` 缓存读(误抄 k2.7-code 的 ¥1.3 → 官方 ¥1.1)、`kimi-k3`(全线 +5% → ¥2/¥20/¥100)、`minimax-m2.7` 缓存读(**旧值拿 cacheMiss ¥2.1 顶替,长会话高估 5 倍** → 官方 ¥0.42,同 AGENTS.md 红线 4)、`qwen3.7-max`(删掉查无实据的 5 折值 → 官方 ¥12/¥36)、`qwen3.7-plus`(官方限时 8 折 ¥1.6/¥6.4)、`qwen3.7-flash`(→ 官方 ¥0.2/¥0.8)、`qwen3.8-27b` 缓存读(→ 10% 规则 ¥0.3)。新增 `kimi-k2.7-code-highspeed`、`minimax-m2.7-highspeed`。历史 Claude 缓存读由 50%(OpenAI 口径)改为 10%、Gemini 改为 25%。 ④ 🐛 **前缀兜底会吞掉未收录模型** —— 旧实现「取最长前缀」只保证同族内选最长,实测 `gpt-4.1` / `gpt-4.5-preview` 被 `gpt-4` 键吞掉($15/$30/$60,真价 $0.40/$1.60,**输出虚高约 37 倍**)、`gemini-2.5-flash-lite` 被 `gemini-2.5-flash` 吞掉。改为只接受「安全后缀」(日期/版本/`-latest`/`-preview`/`-exp`),其余落 `defaultPrices`。 ⑤ 🐛 **会话消耗漏计重试/失败尝试的 token**(会直接少算钱)—— 旧代码读的 `assistant/chunk` **不在框架 `KNOWN_SESSION_EVENT_TYPES` 里**,是死分支;真正带用量的 `assistant/attempt`(失败/重试/取消的尝试)完全没处理,且 `llm/retry-started` 未清空替换槽位 → 重试时第二次上报**替换**而非累加。已按 `dsh-token-meter` 的 `usage-projection` 语义对齐(实测:20 万 token 的失败尝试原先记为 $0)。 ⑥ 🐛 **余额解析红线修复**:`kimi` 曾把「套餐窗口上限」当余额下发(客户端只看 `total`)→ **配额耗尽仍显示满额 + 绿灯**,改为 `total = remaining`;`glm` 兜底曾把「限流填充度」当余额且方向相反(88% 已用 → 判「绿灯余额充足」),改为返回 `null` 走「未开放」;`openrouter` 守卫由 `&&` 改 `||`(只缺 `total_credits` 时会伪造**负数余额**);`deepseek` 补 `total_balance` 存在性校验。 ⑦ 🐛 **`computeProviderKinds` 不再按 provider 名字猜「官方直连」** —— 该兜底与 AGENTS.md 铁律 9(没写 baseURL 的 provider 不表态、交 `-official` 后缀兜底)冲突,会把同名中转站会话顶上官方余额。客户端抽屉文案硬编码的「· 配额正常」也改为按三色灯 `level` 取标签(原先 GLM 配额耗尽会显示成「…已用完 · 配额正常」)。 ⑧ 🆕 **子代理(subagent)消耗现在能看到** —— 此前投影只折叠**本会话**的事件,而子代理跑在自己的子会话里,它烧的 token 完全不在主板数字里。现在输入框下方的主状态条**下面换行**多出一行子代理胶囊,**按创建顺序从左到右**排列(顺序取自父会话的 `subagentCatalog` 投影,即父会话里的 catalog 事件顺序,客户端不重排)。 金额是「该子代理 **+ 其后代**」的向上汇总(孙代理并进它的直接父代理那一条,深度封顶 4 层、行数封顶 12 条),计价口径与主板数字**完全同一套函数**(`summarize`),因此峰谷、原生币种、缓存读写分桶全部一致;子代理用海外模型时按原生 `$` 显示,不折算合并。 ⚠️ **主板数字仍是「本会话」**,不含子代理 —— 两者分开展示,避免一个数字混了两种口径。 ⑨ 🐛 **修掉一个会让新默认值对老用户失效的坑**:配置持久化在 `~/.dsh/dsh-api-dashboard.json`,老状态文件里写着 `"overseasCurrency": "follow"`(那是**旧默认值**被存下来的,不是用户的显式选择),会把 ① 里的新默认值 `'USD'` 钉死。已引入状态文件结构版本 `configVersion` 并在加载时迁移(1 → 2):把旧默认值改写成 `'USD'`;迁移后用户再手动选 `follow` 会被正常尊重。 ⑩ 🐛 **修掉子代理显示 `~—`**(⑧ 的实测缺陷):子代理跑完就**由热转冷** —— 框架的 `SubagentListEntry.activity` 只有 `'running' | 'inactive'`,**`inactive` = 只存在于持久化里**,此时它已不在 `ctx.sessions` 的常驻表里,`sessions.get()` 取不到 → 读不到消耗 → 面板显示 `~—`。 已加**冷路径兜底**:同步读持久化投影缓存 `storages/session_projcache/sessions/.json`(形状取自实测)。热路径仍优先(更新鲜),冷路径只在热路径拿不到数据时启用,带 3 秒 TTL 内存缓存,避免每次投影变化都读盘。 ✅ 用本机真实缓存验证:同一个子代理从 `~—` 变成 **`~¥0.588`**(13.7 万未缓存输入 + 974 万缓存读 + 6.4 万输出,deepseek-flash)。 ⚠️ 为什么不用框架自己的 `listChildren()`:它走投影缓存读、能处理冷会话,但是 **async**,而投影的 `view()` 契约要求**同步**。 ⑪ 🎨 **设置界面控件统一**(此前用的是浏览器默认控件,与整体风格不搭;**只动外观、不动结构**):去掉 `` 换成插件自己的分段按钮(`.dshadb_segbtn`)—— 在 2 列网格里「人民币」被截成「人民…」,**观感反而更差**(用户原话「还不如不改」),**已回退成 `