# dsh-cost-meter 版本更新历史 > 本文是面向使用者的版本更新总览;逐条开发记录见 [CHANGELOG.md](../CHANGELOG.md),完整提交历史见 > [Commits](https://github.com/Han-1413141/dsh-cost-meter/commits/master)。 ## v1.5.19(2026-08-19)—— README×2 简介行补上峰/谷切换提醒 - **README×2 简介行补上峰/谷切换提醒**:中英简介此前只提"峰谷计价时段显示",现补齐"切换前弹窗与系统通知提醒(位置/提前量/提醒类型可配)";顺带把 Coding Plan 列表从旧的"六家(无 SCNet)"更正为七家(与 1.5.13 起 package.json 描述一致)。 - **package.json `description`(npm/插件 about)与 `dshhub.summary`(插件市场副标题)同步补上该功能**,中英双份。 ## v1.5.18(2026-08-19)—— 开启系统通知开关在旧版 Safari 可能抛错 - **开启系统通知开关在旧版 Safari 可能抛错**:`Notification.requestPermission()` 在旧 Safari 不返回 Promise,直接 `.catch` 会 TypeError;现以 `Promise.resolve(...)` 包裹,拒绝时静默。 - **清理 PeakAlert 遗留死代码**(1.5.17 开发过程中废弃的游离快照变量,无功能影响)。 ## v1.5.17(2026-08-19)—— 峰/谷切换弹窗改为原生 dsh 提醒风格 - **峰/谷切换弹窗改为原生 dsh 提醒风格**:全屏色条徽标弹窗(进入峰琥珀警示色 / 进入谷信息蓝 + 圆点状态徽标),圆角/阴影/动效对齐 dsh 设计 token;弹窗位置可选**右下角 / 屏幕中心**(新增 `peakAlertPosition`,默认右下角),同步更新 `scripts/peak-alert-preview.js` 预览脚本(支持切换峰/谷与位置)。 - **新增浏览器(系统)通知提醒**(`peakAlertWebNotify`,默认关):弹窗触发的同时利用 Web Notification API 向系统发送一条通知(标题/正文与弹窗一致),页面最小化或切走后仍能收到提醒;开启时若权限未授权会在设置页通过用户手势申请地址栏通知权限,每切换点只发一次。 ## v1.5.16(2026-08-19)—— 峰/谷切换前弹窗提醒 - **峰/谷切换前弹窗提醒**:距下次峰/谷档位切换不足设定提前量(默认 2 分钟)时,右下角弹出全局浮层(进入峰橙色 / 进入谷品牌色边条,含切换倒计时与「知道了」按钮);提醒类型可选**进入峰时 / 进入谷时 / 峰和谷**(默认峰和谷),提前量 1-30 分钟可配,同一切换点只提醒一次(手动关闭即记点,切换完成后浮层自然消失),峰谷计价未生效或切换提醒关闭时不打扰。设置项位于设置页「峰谷计价与提示」面板内(峰谷时段条样式旁):开关、提前分钟数、提醒类型三项;配置链(默认值/校验/清洗/typert 声明/客户端解析)全同步,verify.mjs 新增配置链与组件接线断言。 ## v1.5.15(2026-08-19)—— 安装前历史改为首次启动自动导入 - **安装前历史改为首次启动自动导入**(issue #27 跟进):不再需要手动点按钮——安装/升级后的首次启动会在按模型回填完成后自动导入一次安装前历史(同样的幂等规则:缺失日期整日重建、已有日期只补未知会话、绝不与实时计费重复),并在配置中打标 `legacyAutoImportedAt` 保证只跑一次(空结果同样打标,避免每次启动重扫);后续启动只做常规回填。设置页「数据与同步」保留手动重跑入口(如后续拷入了旧日志),说明文案同步更新。启动逻辑抽为可测的 `runStartupImports()`;verify.mjs 新增 e2e:首次启动导入/打标、后续启动跳过、标记随配置补丁保真、apply 定时器接线断言。 ## v1.5.14(2026-08-19)—— 导入安装前历史 - **导入安装前历史**(issue #27):设置页「数据与同步」新增「导入安装前历史」按钮(带确认),一键回放宿主全部会话日志(`$DSH_HOME/sessions`,明文/zstd 双格式),把**未装插件时期**的对话导入账本——dsh 原生日志完整记录了每次调用的 provider/model 与 token 用量,数据一直在磁盘上,本功能把它变成费用条目。规则(幂等,绝不与实时计费重复计数):缺失日期(账本无条目或为无用量空日)整日重建(合计 + 会话明细含标题/创建时间 + 按模型拆分);已有日期只追加账本完全未知的会话(安装前活跃、安装后未再用的「幽灵会话」),既有会话条目与合计结构绝不动;金额按事件时刻计价(峰谷分界前自动落 legacyBase 历史价);导入后日期键升序重排,重复点击无新增。已知局限(界面注明):历史价格按当前价目表回推,厂商中途调价会有偏差;已清理的日志无法回放;同一会话跨安装时刻时其安装前用量不计入(实时条目已存在,无法安全拆分)。新增 `costMeter.importLegacyHistory()` RPC(服务端 + typert 清单 + 客户端 descriptor 三侧同步,strict codec);verify.mjs 新增单测(缺失日期重建/未知会话追加/已知会话不动/幂等/升序)与真实 `apply()` 路径 e2e(RPC/明细拉取/幂等/网关 JSON 安全/双端清单断言)。 ## v1.5.13(2026-08-19)—— SCNet 超算互联网 Token Plan 本地 Credits 计量 - **SCNet 超算互联网 Token Plan 本地 Credits 计量**(issue #26):SCNet Token Plan 为 Credits 包月订阅(基础 60,000 / 标准 240,000 / 高级 600,000),平台仅有 `sk-tp-` 专属推理端点、额度用量只在控制台可见,**无 API-Key 化额度查询端点**——插件按**官方 Credits 抵扣表**(2026-08-11 生效)对本地账本当前计费周期的用量折算 Credits(未命中输入 = input+cacheWrite、命中缓存输入 = cacheRead、输出 = output;覆盖 GLM-5.x / DeepSeek-V4 / Kimi-K2.x/K3 / MiniMax-M2.x/M3 / Qwen3.8-max 等主力量型,模型名归一化匹配、跨 provider 归并)。Coding Plan 面板新增 SCNet 卡片:月度已用% 进度条 + 「已用 / 总额 Credits(est.)」文本;计费周期自「订阅起始日」(可配 `YYYY-MM-DD`,月末日期自动钳制)每月重置,留空按自然月;**无需任何凭据、不走网络**(端点白名单为空数组),本地纯函数同步重算随账本实时更新,实际消耗以控制台账单为准,抵扣表未覆盖的模型不计入。verify.mjs 新增抵扣表碰撞/折算数学/周期推进(含月末钳制与跨年)/跨 provider 归并/非法额度拒绝单测与真实 `apply()` 路径 e2e(getState 快照、refreshCodingPlan 幂等、网关 JSON 安全、planCredits 配置保真)。 ## v1.5.12(2026-08-19)—— 会话排行加载失败(真正根因) - **按会话统计面板「会话排行加载失败」**:Typert 网关对 RPC **返回值**做 JSON 安全校验,含 `undefined` 值的自有属性会被 `undefined is not JSON-safe` 拒绝(RPC result-invalid)。`getTopSessions` 组装行时对未命名会话/无时间戳(旧账本)会话写入 `title: undefined` / `at: undefined` 键,而 zod 会原样保留已声明 optional 键的 undefined 值——排行内只要混入任一未命名或无时间戳会话,整个面板即加载失败。现改为缺席时完全不写该键;`buildState` 的 codec 漂移降级路径同步改为解构剔除 `priceCatalog`。verify.mjs 固化网关 JSON 安全校验复刻 + 真实 `apply()` 路径(含未命名/无时间戳会话)回归。 ## v1.5.11(2026-08-19)—— 多币种账号余额显示 0 - **多币种账号余额显示 ¥0.00 / 0.00**(issues #24 #25,感谢 @chentianhai4、@yupengliuCU 的报告与定位):官方余额接口对多币种账号返回 CNY/USD 两条 `balance_infos` 且**排列顺序每次请求不稳定**,旧代码固定取首条——USD 排前时读到 `total_balance = 0`,余额在正确值与 0 之间跳变。现按「有余额优先、同有余额优先 CNY(开放平台主币种)、全为零时优先 CNY、兜底首条」确定性挑选(单币种账号行为不变;仅 USD 有余额的国际账号选 USD)。 - **余额差对账误报 ⚠**(issue #25 附带影响):选中条目币种切换(或升级前账本的旧参考点无币种标记)时金额不可比,原逻辑会把 USD 0.00 误读算成近百元「余额差」触发 drift;现参考点记录币种,币种不一致即静默重置基准,不对账不告警。 - **按会话统计面板「会话排行加载失败」**:Typert 网关对 RPC `args` 字段做精确匹配,`getTopSessions` 的 `sort`/`dir` 参数有函数默认值却未在清单声明 `acceptsUndefined`——浏览器端缓存旧版 client.js(单参数调用)或宿主进程滞后时,RPC 以 `missing "sort"/"dir"` 被网关拒绝,面板直接加载失败;现两端清单均声明可缺省,单参数调用回落默认 cost-desc。 ## v1.5.10(2026-08-18)—— 按会话排行不显示会话名称 - **按会话排行不显示会话名称**:`getTopSessions` 组装行数据时遗漏透传 `title` 字段(账本里已有标题但排行面板全回落成短 ID,连带「附显会话 ID」开关看似无效);已修复,同时透传会话时间戳 `at`(实时入账与回填双通道补齐,会话日志 `createdAt` 为权威来源)。 - **按会话排行排序可切换**:费用 高→低 / 低→高、时间 新→旧 / 旧→新、实时顺序(账本/侧边栏顺序),服务端排序后再截取条数(不同排序的 Top N 语义正确);`getTopSessions` 扩为三参数(limit/sort/dir),typert 清单与客户端 descriptor 同步。 - **历史记录改为三角折叠面板**(默认收起),与按模型统计/按会话统计/价格表风格统一;日期行的会话明细展开保留。 - verify.mjs 新增排序语义(费用升降/时间降/实时顺序/title 与 at 透传)、回放捕获 createdAt、纯标题通道补 at、schema 断言。 ## v1.5.9(2026-08-18)—— 会话名称显示与会话 ID 可选附显 - **会话名称显示与会话 ID 可选附显**:历史回填新增标题补齐通道——从会话日志的 `session/title` 事件提取每个会话的名称(同名多次取最后一次)写入账本会话条目,含「无回填需求但缺标题」的纯标题通道(实时新建会话下次启动补齐);三处会话列表(今日会话 / 历史各天展开明细 / 按会话排行)改为**标题为主行**(超出省略、悬停看完整标题与 ID),未命名会话回落显示短 ID;新增配置 `showSessionId`(默认关,显示设置 → 通用 可勾选附显等宽短 ID);verify.mjs 新增标题补齐/幂等/纯标题通道/配置链/schema 回归。 ## v1.5.8(2026-08-18)—— 历史各天的会话明细 - **历史各天的会话明细**(issue #22,感谢 @JokerQyou 的建议):历史记录表的日期行可点击展开,按需拉取当日各会话的调用次数 / token / 费用(与「今日会话」同口径);新增 `costMeter.getDaySessions(date)` RPC(服务端 + typert 清单 + 客户端 descriptor 三侧同步,strict codec),展开才拉取并缓存,不在 state 中预载避免膨胀;无会话明细的日期(早期数据/日志已清理)给出明确提示。 - **按会话统计(不分日期视角)**(issue #22):设置页新增「按会话统计(全部历史)」折叠面板(默认收起),跨全部日期按费用降序展示会话排行(每条带所属日期,可选 50/100/200 条),展开时按需拉取;新增 `costMeter.getTopSessions(limit)` RPC(同上三侧同步,服务端限制 1-500 条);verify.mjs 新增清单断言、copyDay/history 保真与排行语义回归。 ## v1.5.7(2026-08-18)—— MiniMax Token Plan `model_remains` 未解析 - **MiniMax Token Plan `model_remains` 未解析**(1.5.6 仍失败,follow-up of issue #20):现行接口返回 `{ model_remains: [{ model_name: "general"|"video", current_interval_remaining_percent, current_weekly_remaining_percent, ... }] }`,`total_count` 常为 0。1.5.6 只认根上平铺字段,旧计数路径又跳过 total=0,因而报「未解析出用量窗口」。现优先取 `general` 一行抽出 5h/7d 余量(`status=3` 无限量窗如 video 不展示),平铺/旧数组/旧计数形态仍兼容。 - **MiniMax 额度条改为一框两条**:侧边栏与设置页用同一个大框展示 **MiniMax Plan** 标题 + **5h / 7d** 两条余量进度条(小标题在条左侧,百分比在右侧),不再按模型各画一框;重置时间改为悬停 tooltip。 - **图框标题字重统一**:官方余额、自定义余额与 MiniMax Plan 标题均为 12px / 600。 ## v1.5.6(2026-08-18)—— MiniMax Token Plan 额度「未解析出用量窗口」 - **MiniMax Token Plan 额度「未解析出用量窗口」**(issue #20,感谢 @hi-wenw 的报告):接口现行响应为平铺结构(根节点或 `data.data` 直含 `current_interval_*` 5小时窗与 `current_weekly_*` 周窗字段、无窗口数组),旧解析器只认数组形态;修复:平铺形态优先(计数推导→剩余百分比反推,`*_remaining_percent` 为剩余口径、`status=3` 不限量窗不展示),旧数组/计数形态保留兜底(对照 OpenClaw 同端点实现);verify.mjs 新增 7 组断言。 ## v1.5.5(2026-08-18)—— 余额差交叉对账 - **余额差交叉对账**(issue #18 讨论,感谢 @Fantasymax 的设计建议):每日首次余额拉取打基准,之后用「官方余额当日变动」反推消费与本地账本今日合计比对,偏差超阈值(max($0.30, 15%))时展示对账提示(侧边栏余额 tooltip + ⚠、设置页余额面板警告行);充值/授信变动自动重置基准防误判;订阅/Coding Plan 消费不动官方余额时静默不对账(故不采用余额差替代今日费用的方案);开关 `balance.reconcile`(默认开启);基准随账本落盘、跨重启续对;verify.mjs 新增 8 组断言。 - **Coding Plan 「刷新」报 `refreshCodingPlan is not a function`**(issue #16,感谢 @Hchunjun 的精准诊断):客户端 CONTRIBUTION descriptor 漏注册该方法,已补齐(含 provider 参数 strict codec);verify.mjs 新增「客户端 descriptor 与服务端 typert 清单逐方法对齐」静态回归断言。 - **Z.ai / 智谱 GLM 额度查询 404**(issue #17,感谢 @Hchunjun 的报告与排查):接口已变更——带有效 Key 请求 v4 返 404、v3 存活;端点改为 z.ai / bigmodel.cn 双域 v3 优先、v4 保留兑底;非 2xx 错误信息带上实际请求 URL;200 但业务失败(如 `{code:1001,msg:...}` 错误信封)时透出服务端 msg;verify.mjs 新增双域白名单 + v3 优先断言。 - **订阅制模型被模糊匹配到同家族付费价导致费用虚增**(issue #18,感谢 @Fantasymax 的报告与高质量排查):模型名去后缀曾把裸数字后缀当版本后缀剥离(`glm-5.3`/`glm-5.2` 都退化成 `glm` 而互配),免费 GLM Coding Plan 调用被按 glm-5.2 单价实时记账;修复:仅剥带 v 的版本后缀(-v2),模型名本体的数字后缀(-5.3)保留;家族相似匹配在分歧位两侧均为数字 token 时也拒绝匹配(pricing.js/client.js 双实现同步);verify.mjs 新增跨版本误配/前缀式家族匹配回归。 - **历史回填对回放完整覆盖的日期重算金额**(issue #18):某日调用与 token 能被会话日志完整回放时,按事件时刻正确价重算当日总额与会话金额,修正旧版本误计费造成的历史虚高;`deepseek:legacy` 差额桶仅保留部分覆盖的差额,客户端文案改为「未分模型(早期数据 · 按当时记录计费)」;verify.mjs 新增完整覆盖重算回归。 - **自定义余额 headers 值类型防击穿**(代码审查发现):`customBalance.request.headers` 值非字符串时写入拒绝、加载剔除(此前会击穿 strict configSchema 导致所有 RPC 被拒、「账本不可用」);客户端 Headers JSON 输入同步前置校验;verify.mjs 新增回归。 - **自定义余额刷新按钮门控改用服务端已保存配置**:修复刚勾选启用未过防抖保存时点刷新被拒的时序错位。 - **`extract` 规则 `subtract` 空 paths 防 TypeError**(返回 null 而非抛 Reduce of empty array)。 - **历史回填改为异步分片**:每 8 份会话日志让出一次事件循环,会话多的用户启动后不再被同步卡住数秒。 - **补齐 GitHub 社区标准文件**:新增 CODE_OF_CONDUCT(Contributor Covenant 2.1)、CONTRIBUTING(含本项目的 strict codec / descriptor 对齐 / 发布产物 / 双语等集成坑位清单)、SECURITY(私有漏洞报告通道)、Issue 表单模板(bug/feature)与 PR 模板(自检清单)。 ## v1.5.4(2026-08-18)—— 自定义 Provider 余额查询 - **自定义 Provider 余额查询**(社区 PR by @hi-wenw):可配置 HTTP 请求 URL / Headers / 声明式 `extract` 规则查询第三方余额(凭证占位符 `{{ENV_VAR}}` 从 DSH 凭据库或环境变量解析);设置页可编辑中/英名称、币种(USD/CNY/EUR)、显示位置与刷新间隔;服务端 `refreshCustomBalance` RPC + strict config/state codec 全链路。 - **余额三段进度条(全局)**(社区 PR by @hi-wenw):`balance.showProgressBar` 开启后,官方余额与自定义余额在侧边栏均以预算图框同款进度条展示(蓝=剩余余额,橙=当日已用,灰=历史已用);可选 `balance.budgetCap` 手动额度上限,未配置时优先 API `max_budget`,仍无则整条蓝色。 - **设置页 UI 重排与折叠面板**:「界面语言」移至费用设置顶栏(打开即见);「Token 用量统计」与「按模型统计」上移至费用设置最上方,按模型统计改为与其余面板同款的圆角方框背景;「按模型统计」与「价格表」改为常规三角展开按钮的可折叠分节(均默认收起),价格表折叠区含第三方已挂载模型卡;「未命中模型」行的 provider:model 键同步展示归一。 - **provider 展示名归一**:历史请求携带的 `zen` 是错误叫法,界面展示统一为 `go`(仅展示层,账本键与价格覆盖键不变);价格目录文案中的「Zen 网关」同步改为「Go 网关」。 - **历史账本按模型统计回填**:按模型统计(`byProviderModel`)上线前的旧账本只有每日/会话合计;新增 `lib/backfill.js`,启动后回放宿主会话日志(`$DSH_HOME/sessions` 下的 `session.jsonl[.zstd]`,自实现拼接 zstd frame 扫描 + 逐帧解压,与宿主持久化格式一致),按与 `costUsage` 投影同规则的逐次重建(request/header 切换 provider/model、(turn, step) 去重、按事件时刻计价——峰谷时代前的旧调用按 `legacyBase` 历史价)回填空 `byProviderModel` 的日期与会话条目;日志已清理无法回放的调用以账本总量差额归入 `deepseek:legacy` 残差行,保证按模型合计与当日总量对齐;幂等(只填空条目,已有记录不改动、不重复计数),回填后调度落盘;verify.mjs 第 8 节固化回归(会话日志回放/历史价/残差/幂等/zstd)。 - 「按模型统计」口径说明去掉「(权威算法)」括号附注。 - **git/npm 安装产物缺失 `lib/backfill.js` 导致启动崩溃**(issue #14):`files` 白名单逐文件列举漏配新增模块,改为按 `lib` 目录整体发布,后续新增文件不再漏配;`npm pack` 产物已验证含全部 8 个 lib 模块。 ## v1.5.3(2026-08-18)—— opencode-go 目录去重 - Go 目录中的 DeepSeek V4 Flash/Pro 参考价与官方主表重复,以官方为准(含峰谷两档),从目录移除;旧账本挂载自动剔除;17 个非 DeepSeek 模型保留。 ## v1.5.2(2026-08-18)—— 修复路由模型费用为零 + 匹配放宽 + 默认全部挂载 - **修复:路由 provider(opencode/zen 等)下本会话费用为零**——按模型名跨厂商全库查找,DeepSeek 模型保留峰谷两档;宿主入账同步手动覆盖与匹配模式; - **模型名匹配放宽**:忽略大小写/空格/横杠/点号与括号附注,请求名包含价格表模型名即命中(如 `gpt5.6 luna(go)` → `gpt-5.6-luna`); - **默认挂载全部目录模型**:挂载≠直接显示,是否直接显示在费用设置由逐模型开关控制; - 价格卡逐模型「在费用设置直接显示」开关(仅决定展示位置,不影响挂载与计费)。 ## v1.5.1(2026-08-18)—— 经典收起态精修与配图整理 - **经典样式收起态精修**:去掉旗标箭头与进度填充叠层,上橙下蓝两段恒定满色(与展开态完全一致,任何主题下无色差);当前时段由描边标记与短词指示,倒计时悬停可见; - README 中英配图整理:峰谷段落改为「设置页峰谷面板 + 右下角显示设置」两图,新增真实界面截图; - 安装链固定 tag 同步至 v1.5.1。 ## v1.5.0(2026-08-18)—— 多厂商适配大版本:Coding Plan 六家 + 90+ 模型价格目录 ![峰谷时段条](peak-strip-zh.png) - **Coding Plan 额度查询(6 家)**:Anthropic Claude Pro/Max、Z.ai/智谱 GLM、MiniMax Token Plan、Kimi/Moonshot 余额、OpenRouter credits、SiliconFlow 余额;各家独立开关与 Key,凭据只发往官方端点;面板默认折叠且记住状态; - **模型名自动匹配计费**:未知模型 id 自动匹配价格表(去日期/版本后缀 → 前缀 → 家族相似),可切为仅精确;未命中模型可在设置中手动指定计费条目; - **拓展价格表(90+ 模型)**:内置各厂商、按模型家族分类的参考价格目录(含 OpenCode Go 订阅全部 18 个模型,价格与各厂官方价目交叉核对,无法核价的如实标注);点开展开、厂商默认折叠;一键挂载到费用设置价格表(与 DeepSeek 价格同区直接显示),DeepSeek 模型可取消挂载回退默认价; - **「账本不可用」根治**:目录条目 schema 修复 + 加载边界配置清洗 + 状态下发逐级降级兑底,附回归测试; - 模型与 Plan 适配的完整矩阵、匹配机制与数据来源见 [model-and-plan-adaptation.md](model-and-plan-adaptation.md)([English](model-and-plan-adaptation.en.md))。 ## v1.4.1(2026-08-18)—— 峰谷时段条与双样式切换(适配 PR #9) - **峰时/平价时段条**:展开态升级为单行紧凑时段条(细轨道左橙右蓝 + 标记线 + 倒计时文字,30 秒刷新),竖向占用约一行; - **收起态竖向时段条**:侧边栏收起(rail)时显示同构竖向条,下方横排短词「峰时 / 平价」,倒计时与完整文案悬停可见(不采纳 PR #9 的 rail 隐藏方案); - **双样式可切换**(`peakStyle`):简洁(单行紧凑,默认)与经典(分段轨道 + 旗标 + 胶囊芯片;收起态为竖向胶囊条,满色橙/蓝与展开态一致)两代样式均保留,设置页下拉切换; - 峰时色改亮橙 #ff9800;取消非当前段淡化(两段恒定满色);峰谷设置与预算分离为独立面板,含随草稿即时刷新的时段条预览;设置页字段按五组重排;Coding Plan 面板默认折叠。 ## v1.4.0(2026-08-17)—— 官方纯峰谷两档计价与峰时显著提示 - **官方纯峰谷两档计价**:官方取消基础价档与生效时间,改为两档即时生效(空闲 = 高峰一半):flash 空闲 0.007/0.22/0.66、峰值 0.014/0.44/1.32;pro 空闲 0.022/0.66/1.98、峰值 0.044/1.32/3.96;官方价格一键同步适配新页面; - **历史计费正确性**:2026-08-16 16:00 UTC(峰谷时代分界)之前的调用按当时的基础价计费(`legacyBase`),之后按峰谷两档;会话徽章改为按每次调用实际时刻**精确计费**(不再估算); - **峰时高价时段显著提示(PR #8)**:侧边栏预算框、今日费用区域与设置页预算面板在峰时段显示一行警示提示,中英双语,rail 窄栏不显示;新增独立开关(`peakNotice`,默认开启)可一键关闭;README 同步加入真实中英文界面截图; - **价格表适配更多模型计费方式**:支持 `input`/`output` 两档简写(Anthropic / Gemini / Mistral 等无缓存折扣模型),`cacheHit` 缺省自动取未命中价,不再误判非法或按 0 计费; - 修复:编辑价格表保存不再抹掉模型的 `legacyBase`;账本入账对非法 token 归一化,防聚合污染。 ## v1.3.1(2026-08-16)—— Token 用量统计 ![Token 用量统计](screenshot-usage-grid.png) - **类 Codex 的 26 周每日用量方格热图**:费用设置内新增 Token 用量统计——历史累计总量(输入 / 缓存 / 输出 / 调用次数)一行总览,下方方格热图横向铺满整个设置页宽度; - 无用量日为**半透明玻璃格**(带宿主风格边框),有用量按四档蓝色渐进,今天描边高亮;悬停任意格子见当日 token 明细、调用次数与费用;月份标签随网格对齐; - **多窗口配置互覆修复**:设置保存改为只提交改动的顶层键(diff 补丁),多个 dsh 窗口同开时不再互相覆盖;设置页打开期间的周期轮询也不再覆盖未保存的草稿。 ## v1.3.0(2026-08-16)—— OpenCode Go 订阅额度 ![合并卡片](screenshot-sidebar-footer-v2.png) - **OpenCode Go 订阅额度进侧边栏**:滚动 5 小时 / 本周 / 本月用量百分比与重置时间;与预算图框同款圆角样式,各自独立开关,两者同开自动**合并为一张卡片**(仅 Go / 仅预算 / 合并三态随意切); - **收起更紧凑**:「图框详细信息」开关收起次要行,只留 标签 + 已用% + 进度条;主档位(5h/周/月)可配;窄栏(rail)收成百分比方块; - **右下角 dock chips**:5h / 周 / 月额度、预算已用% 四项独立开关; - **Key 自动发现**:显式配置 → DSH 凭据库(`OPENCODE_GO_API_KEY`)→ 环境变量 → opencode 登录态,基本零配置; - 修复社区反馈 #2、#3(见文末),文档截图全面翻新(v2)。 ## v1.2.0(2026-08-14)—— 中英双语界面 - 插件界面全面接入 i18n:简体中文 / English / 跟随浏览器,切换即时生效;服务端消息(余额、价格同步、校验错误)同语言输出; - 安全加固:余额查询凭据仅发往官方域名 `api.deepseek.com`,非官方 baseURL 直接拒绝;安装链固定到发布 tag 与 pnpm 版本,可审计可复现; - 新增 `dshhub` 清单,接入 DSH Hub 收录。 ## v1.1.2(2026-08-14)—— 一键安装 - 内置 `install.ps1`:`irm … | iex` 一行直装(自动补齐 pnpm / 探测 git / 无 git 走 tag 打包直链);重跑即为更新; - 支持 `dsh plugin add github:Han-1413141/dsh-cost-meter` 与 GitHub 打包直链安装; - CI 新增 `install-smoke`:Windows / Linux 真机验证一键安装;README 英文版上线。 ## v1.1.0 – 1.1.1(2026-08-14)—— 布局打磨 - 余额行移到预算图框上方;预算图框新增「今日费用与占预算%」;修复合并渲染与 `normalizePrice` 峰谷价清零问题;侧边栏截图改紧凑版。 ## v1.0.0(2026-08-14)—— 首个正式版 - 功能全览:会话徽章(输入区下方 / 标题栏)、当日费用、预算(额度 + 周期 + 预警色)、官方余额、汇总卡片、今日会话明细、按天历史、价格表、峰谷计价、官方价格一键同步、AI 价格同步提示词。 ## v0.4.0(2026-08-14)—— 官方余额 - 侧边栏 / 设置页显示官方开放平台余额(总 / 赠送 / 充值),刷新间隔可配 + 手动刷新;设置改即时自动保存;峰谷计价状态提示。 ## v0.3.0(2026-08-14)—— 预算图框 - 自定义预算周期(今日 / 本月 / 累计 / 自定义区间);侧边栏圆角预算图框(已用%、进度条、≥80% 预警、≥100% 超支),窄栏为百分比方块。 ## v0.2.0(2026-08-14)—— 预算与缓存分计 - 设置页预算面板;输入 / 缓存 / 输出 token 分列统计,缓存读写按命中价计费。 ## v0.1.0(2026-08-13)—— 首发 - 本会话费用徽章、当日费用徽章、设置 → 费用页(汇总 / 明细 / 历史 / 价格表)、峰谷计价、官方价格同步、账本持久化。 --- ## 社区 issue 处理记录 > 按编号倒序;处理详情以对应 issue 页为准。 | # | 类型 | 标题 | 提出者 | 处理 | 版本 | |---|---|---|---|---|---| | [#3](https://github.com/Han-1413141/dsh-cost-meter/issues/3) | issue | 客户端无轮询:侧边栏「今日费用/余额」冻结在页面加载时刻 | Silence-Jun | 已修复:60s 周期轮询(隐藏跳过)+ visibilitychange 可见即刷新 + reload 并发防抖 + 卸载清理([05dfcfa](https://github.com/Han-1413141/dsh-cost-meter/commit/05dfcfa)) | v1.3.0 | | [#2](https://github.com/Han-1413141/dsh-cost-meter/issues/2) | issue | OpenCode Go 额度显示 HTTP 403(key 解析未走 DSH 凭据库 + 请求缺 User-Agent 被 Cloudflare 拦截) | mlosun | 已修复:Key 解析优先级对齐余额路径(显式配置 → DSH 凭据库 `OPENCODE_GO_API_KEY` → 环境变量 → 兼容旧名 → auth.json)+ 浏览器 User-Agent 绕过 Cloudflare 1010([ad3aaf7](https://github.com/Han-1413141/dsh-cost-meter/commit/ad3aaf7)) | v1.3.0 | | [#1](https://github.com/Han-1413141/dsh-cost-meter/pull/1) | PR | 侧边栏 rail 改用钱包图标(官方填充式 SVG) | zhtx2024 | 已合并:窄栏余额行由 ¥ 文本符号改为官方风格钱包图标(currentColor 跟随主题)([0d55fa1](https://github.com/Han-1413141/dsh-cost-meter/commit/0d55fa1)) | v1.2.0 前 |