Repository navigation
Releases
dsh-ofm-balance 0.8.4
0.8.4
修复:折叠态显示的是别的会话的渠道
侧栏卡片是所有会话共用的一个元素,而路由记忆只有一个全局值。
session/event 的回调是 (session, event),会话参数此前被忽略(写作 _session)。于是同时开两个会话时,卡片显示的是「最近发过请求的那个会话」的渠道,不是用户正在看的那个——实测卡片显示 buddy,而当前对话在 codearts。
现在的做法
| 环节 | 机制 |
|---|---|
| 记录 | session/event 传入的 session.id 逐会话保存渠道 |
| 识别 | 客户端从宿主 sessions 服务的 retainedBy.mainView 读出主视图会话 |
| 报告 | 经 POST /view-session 告诉宿主 |
| 显示 | 折叠态只显示该会话的渠道 |
该会话尚未发过请求时显示空值,不顶替别的会话。客户端拿不到 sessions 服务时回退到旧的全局行为,不会变成空白。
sessions故意不写进inject:Cordis 视inject里的名字为必需依赖,缺了会导致插件根本不激活、卡片直接消失。改用ctx.get("sessions")可选读取。
测试 96 → 102。
dsh-ofm-balance 0.8.3
0.8.3
插件成为默认主数据源
source 默认值 auto → plugin。插件跑在 DSH 里,账号就是在 DSH 里登录的那些,读它不需要另开进程,因此首次安装不再询问「用哪一套」。
| 情况 | 行为 |
|---|---|
| 插件在 | 直接读插件,不问 |
| 插件不在、桌面应用在 | 自动回退读桌面应用,不显示空卡片 |
| 两套都在、想自己选 | 把 source 设为 auto,首次运行问一次 |
| 之后想改 | 插件详情页 → 数据源 |
修复默认值变更暴露的回归
旧判据 value.source !== 'auto' 在默认变成 plugin 之后,会让用户存盘的选择被跳过:选了桌面应用、重启后又读回插件。现在优先级为「设置里的显式非默认值 → 界面存盘的选择 → 插件默认」。
跨数据源不再点亮渠道
两套产品的同名渠道背后是不同账号池。读插件时走桌面网关的对话(反之亦然)现在会明确清空高亮,而不是显示另一个账号的数字;切换数据源时一并清空记住的路由。source 尚未解析(auto/none)时两种形状都接受。
测试 89 → 96。
v0.8.2 — 修复折叠态认错渠道,兼容 DSH 0.2.0
0.8.2
修复:折叠态在插件数据源下认错渠道
两套 Our Free Model 上报路由的形状不同,而代码只认第一种:
| 产品 | provider | model | 渠道在 |
|---|---|---|---|
| 桌面应用 | ourfreemodel |
buddy/deepseek-v4.1-flash |
model 前缀 |
| 官方插件 | workbuddy |
deepseek-v4.1-flash |
provider 本身 |
官方插件为每个渠道注册独立的 LLM provider 路由,所以 model id 不带渠道前缀。按前缀取会得到 deepseek-v4.1-flash,匹配不到任何行,currentChannel 恒为 undefined,折叠态于是回退到「快用完的那个渠道」,与当前对话不符。
现在:provider 本身是已知渠道则取 provider(仅限 plugin 源,避免用户自配的同名 provider 点亮渠道行);插件自有的 our-free-model 免费通道明确清空而不沿用上一个渠道;其余仍按 model 前缀取。
合并社区修复:兼容 DSH 0.2.0(#1)
感谢 @ZhangHJ01。0.2.0-rc.2 里 owner Peer 的字段名是 connection.operator,0.2.1 才改名为 connection.browserPeer;只读新名字会让整个 plugin 数据源静默失效。现在两个名字都接受,engines.dsh 放宽为 >=0.2.0-rc.2。
合并前修正了原 PR 的两处不严谨:测试把两版内核当成同一形状(真实 0.2.0 的 fetch 只收一个参数、没有 principal),以及 README.en.md 缺 0.6.0 / 0.7.0 / 0.8.0 三条日志。
安装
dsh plugin --profile desktop add https://github.com/Shen-18/dsh-ofm-balance/releases/latest/download/dsh-ofm-balance.tgz
校验
size 431793
sha256 B9F69BF45C6E4085928C02BD7B786B4CDCA2EDA5552AC3550B912A2F8B524C68
89 个测试全部通过。
v0.8.0 — 兼容两套 Our Free Model,按已登录账号显示渠道
本次变更
支持两套 Our Free Model 数据源
「Our Free Model」这个名字下有两个产品,账号池互不相通:
- DSH 插件(
dsh-our-free-model):渠道与账号在 DSH 进程内,余额经内核channel-packRPC 暴露 - 桌面应用:独立进程,网关在
127.0.0.1:18900
此前卡片固定读桌面应用,装了插件后显示的是另一套账号。现在会先探测,只探测到一套就直接用,两套都在才询问一次。
插件源的接口锁在 connection.admit() 之后,外部 HTTP 调用一律 401(实测包括回环地址、匹配 Origin、以及凭据库里的 browser-session 密钥),因此改走进程内 RPC。
渠道显示判据改为「是否已登录账号」
从 provider.status 的 accounts.total > 0 判断,不再依据 DSH profile 声明的模型 id。旧判据两个方向都会错:profile 是快照,账号没了还一直声明;刚登录的渠道又可能还没写进 profile。
其他
- 数据源询问只问一次:关闭提示也算已回答,但「关闭」不等于「选择」,之后仍按
auto自动选 - 提示里注明后续在「插件详情页 → 数据源」切换
- 单位单复数合并(
credit/credits→credits) - 文案去掉「仅可查看」这类无用描述
安装
dsh plugin --profile desktop add https://github.com/Shen-18/dsh-ofm-balance/releases/latest/download/dsh-ofm-balance.tgz
或使用 GitHub 源:
dsh plugin --profile desktop add github:Shen-18/dsh-ofm-balance
测试:76 个全部通过。
v0.5.1 — 剩余百分比与分母修正
预构建安装包,供插件市场免构建安装。
本次修正
- 重叠的 used 不再重复计入分母:同一个
used会同时出现在聚合包与子包里(codearts 的「总积分包」与「赠送积分包」都是 349.31),相加会把分母从真实的 7500 抬到 7849.31。改为取remaining等于balance.total的聚合包、用它自己的used。 - 失效包不计入分母:网关把已过期的包标为
active: false(buddy 有 4 个),它们已不属于本周期额度。 - 形状无法解释时不猜:网关未返回积分包明细、或明细与总量不自洽时,不产出百分比,而不是编造一个 100%。
实测:codearts 91.1% → 95.3%,buddy 78.9% → 85.8%。33 项单测通过。
安装:dsh plugin --profile <profile> add <本仓库地址>,或直接使用下面附带的 tgz。