Skip to content

Releases

dsh-ofm-balance 0.8.4

Choose a tag to compare

@Shen-18 Shen-18 released this 21 Oct 03:39

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

Choose a tag to compare

@Shen-18 Shen-18 released this 21 Oct 02:52

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

Choose a tag to compare

@Shen-18 Shen-18 released this 21 Oct 02:40

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,按已登录账号显示渠道

Choose a tag to compare

@Shen-18 Shen-18 released this 20 Oct 09:08

本次变更

支持两套 Our Free Model 数据源

「Our Free Model」这个名字下有两个产品,账号池互不相通:

  • DSH 插件(dsh-our-free-model):渠道与账号在 DSH 进程内,余额经内核 channel-pack RPC 暴露
  • 桌面应用:独立进程,网关在 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 — 剩余百分比与分母修正

Choose a tag to compare

@Shen-18 Shen-18 released this 20 Oct 03:28

预构建安装包,供插件市场免构建安装。

本次修正

  • 重叠的 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。