dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Unofficial DSH Desktop patch: token usage, last 7 days and activity under Settings → Account非官方 DSH 桌面补丁:在 设置 → 账户 下查看token使用情况、最近 7 天和活动
为 DSH Desktop(DeepSeek Harness)准备的社区补丁:在 设置 → 账号与余额 下方增加一块本地用量面板, 包含 Token 统计、近 7 天用量与活跃度。
简体中文 · English
[!NOTE]
这是社区补丁,不是 DeepSeek 官方功能。它只修改你自己机器上 DSH Desktop 安装目录里的一个文件,
应用升级后补丁会失效,重跑一次即可。
浅色 / 深色静态预览:docs/preview.html(下载后用浏览器打开)。
卡片 · 内容 · 数据来源 Token 统计 · 累计计费 tokens、四段构成条(输入 / 缓存命中 / 缓存写入 / 输出)及占比、模型请求数 · 官方 tokenUsage 会话投影;缺失时退回 contextActivity 按天账本 近 7 天用量 · 每个本地日历日一根柱、7 天合计与日均 · contextActivity.days(dsh-context 注册的按天账本) 活跃度 · 近 7 天强度格、活跃天数 x/7、连续天数、回合数、工具调用数 · 同上(requests / turns / toolCalls)
POST api/dsh-context/backfill(同源、dsh-context 插件的回填路由)。
· DSH Desktop · 已安装的桌面版;锚点针对 0.2.1-rc.2 验证 Node.js · 18 或更高(仅补丁脚本需要) dsh-context 插件 · 可选。未安装时:累计 Token 仍可用,按天窗口/活跃度可能为空
补丁修改的是安装目录里的这个文件:
<resources>/app/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js显式传路径、传 resources 目录,或用环境变量:
# Windows 通常在 %LOCALAPPDATA%\Programs\DSH Desktop\resources
node src/patch.mjs status --bundle "<install>/resources/app/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js"
node src/patch.mjs verify --bundle "<...>/client.js" # 只校验锚点与语法,不写文件
node src/patch.mjs apply --bundle "<...>/client.js" # 备份后打补丁# 或指向 resources 目录
node src/patch.mjs apply --resources "<install>/resources"
# 或用环境变量
$env:DSH_ACCOUNT_BUNDLE = "<...>/client.js" # PowerShell
# export DSH_ACCOUNT_BUNDLE="<...>/client.js" # bash/zshapply 是幂等的:已打补丁会直接跳过。每次写入前都会备份到 backups/,并在替换文件前用 node --check 做语法门禁。
然后完全退出并重新启动 DSH Desktop(Web 外壳在 host 启动时对插件 bundle 做快照,刷新页面不会重新读取), 打开 设置 → 账号与余额。
自动探测只覆盖默认位置(Windows 的 %LOCALAPPDATA%\Programs、Program Files;macOS 的 /Applications;Linux 的 /opt、/usr/lib、~/.local/share)。如果 status 提示找不到 bundle, 按上面的方式传 --bundle 或 --resources。
如果你用的是源码启动或全局 npm 安装的 DSH,把 --bundle 指向那份安装里的 node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js。
node src/patch.mjs revert # 还原最近一次备份backups/(已被 .gitignore 忽略),命名 client.js..bak。apply 即可。apply 会以anchor "" matched 0 time(s) 中止,且不修改文件。此时应补充锚点表(或提 PR),不要强行套用。
账号设置页是一个 settings.section slot 条目,自身没有子 slot,所以面板通过五处锚点修改已编译的 client bundle 插入:
en / zh 账号字典追加面板文案;AccountSection 区域前插入自包含模块(src/snippet.js);AccountSectionMain;AccountSection,用 Fragment 同时渲染原组件与用量面板;settings.section 注册项的注入里追加 refreshSessions(回填后重新读取会话列表)。面板读取框架的 useSessions 标准钩子(root scope 标准 kit),自带错误边界(面板出错不会连累账号与余额卡片), 钩子缺失时整块不渲染。
npm run check # CI 门禁:语法 + 补丁引擎测试 + 聚合逻辑测试(无需安装)
npm run engine-test # 锚点处理、插入、幂等、拒绝路径、安装路径探测
npm run logic-test # 窗口 / 连续天数 / 四桶 / 敌意数据降级
npm run load-test # 按 __ModuleLoader__ 协议执行补丁后 bundle(需要安装)
npm run render-test # 用 React 垫片渲染面板并断言文案与数字
npm run preview # 重新生成 docs/preview.html(浅色 + 深色,中文);加 -- --locale en 生成英文版需要真实安装的测试在找不到安装时会以退出码 0 跳过。已验证版本登记在 src/anchors.mjs 的 VERIFIED_VERSIONS 中。
DSH 版本 · 状态 0.2.1-rc.2 · 已验证(锚点端到端测试) 其它版本 · 会尝试套用;锚点移动则安全中止
参与贡献:CONTRIBUTING.md