Repository navigation
Releases: ShanWuYinShe/dsh-plugins
Releases · ShanWuYinShe/dsh-plugins
Release list
@chaoset/session-archive v0.3.26-alpha.6
修复
- 批量删除在畸形应答下谎报成功数:
useArchiveActions.runBatch原用result.deleted || result.restored || []取值,是「真值即取」——{deleted: "x", restored: ["r"]}会取到字符串"x",随后doneIds.length得到的是字符串长度而非删除条数,面板会把 1 个失败项报成成功。改为按「是数组才取」回退,并把决策核抽成纯函数summarizeBatchResult(另过滤非字符串元素作纵深防御)。正常应答逐例与旧实现等价(已用旧实现逐字复刻对拍确认)。 - 旧版配置迁移会覆盖用户的行编辑:迁移改用
edit(current)以 Loader 侧当前值为合并基,不再用apply时刻的配置快照——否则apply与迁移完成之间发生的一次行 reload(用户新编辑)会被旧快照覆盖。
变更
- sessionQuery 可选探测收敛为单一来源:新增
session-query-bridge.ts,host 上下文不再直接 import 官方 query 类型。服务缺席(返回null→ 逐行回退直读)的语义逐字不变;保留该快路径是因为list()是徽标关闭态每 5 秒每标签页的轮询端点,删掉会让轮询退化成「每条会话开整条事件流取标题」。 - client 远程贡献描述符的最小类型收敛:新增
passthroughCodec(typeSymbol): TypertCodec取代any泛滥的passthroughSchema;描述符本身保持逐条内联字面量——仓根typert-surface-parity用正则从源码文本解析路由键,抽工厂会让静态解析漏条目。 - 删除
@deepseek-ai/dsh-session-projectiondevDependency(包内零引用,且其实测并非类型链必要件)。
@chaoset/sandbox-extra-roots v0.4.22-alpha.5
修复
- macOS 上配了额外可写根的会话,每条受限 bash 命令都执行不了:
confine-runners.ts的seatbeltArgv重建 argv 时用a.slice(sbSep + 1)取--之后的 inner 命令,却没把"--"本身补回去——sandbox-exec收到[-p, <profile>, bash, -c, …]会把bash当 profile/参数解析,命令无法执行。触发条件是三条同时成立(macOS + 配了extraWritableRoots+ profile 文本通过漂移自检),Linux 侧走 bwrap/Landlock 不受影响。该缺陷自 0.4.11 起的所有已发布版本都存在(引入于修复: 全仓审查问题集中修复),本轮补测时发现:既有用例只覆盖「拒绝重建」的 fail-closed 分支,成功路径零覆盖,故长期未被发现。修复为补回"--",并补成功路径回归(断言分隔符保留且位置为 3、inner 命令原样、额外根进 profile)。
@chaoset/provider-usage v0.1.7-alpha.5
变更
- 环回 IP 判定委托宿主:
route.ts的 IP 字面量判定改用宿主isLoopbackHost(127/8 全段、::1及 IPv4-mapped 形态),localhost主机名宿主不认故显式允许;provider-usage 侧不再持有本地 4 词名单。 - 账户契约具名化:
deepseekAccount改为具名消费 +optionalDependencies版本声明 + 真AccountClientMetadata参数。
修复
dsh-agent精确钉改回^0.2.1-alpha.2:精确钉违反dsh-baseline的^<版本>形态铁律(该脚本只认 caret 形态,精确版直接 exit 1)。实测改回^后 branding 冲突未复活(typecheck 绿、全量用例绿),且0.2.1-alpha.2是 registry 上当前最高的 alpha 版本,无漂移风险。该可选依赖的真实作用是让dsh-deepseek-account的account-tasks.d.ts能解析@deepseek-ai/dsh-agent类型(其声明为 optional peer,无人直接依赖时 bun 不会安装)。
@chaoset/dsh-any-connect v0.4.14-alpha.9
变更
- 错误文案统一走
httpStatusLabel:wire 层 HTTP 状态渲染改用共享助手的HTTP_xxx形态,常量收敛到共享层。 - client 两处 fetch 错误拼装抽取
fetchJsonOrThrow:JSON 响应读取与非 2xx 抛错收敛为一处。
修复
probe-store状态持久化改走官方原子写:改用dsh-atomic-write,set/clear转为 async,避免自建写入在中断时留下半截文件。
测试
- 补根
test/loopback-parity.test.ts的回环守卫一致性锁:改为实测两包公开面的绝对真值表(不拿一边当基准,防「两边一起改坏仍相等」),并逐项登记实测的 4 处语义差(provider-usage 委托宿主后的 3 项放宽 + 空串 Origin 那一处收紧)。
@chaoset/session-archive v0.3.26-alpha.5
修复
- client 打包按行缩进污染模板字面量:
scripts/build.mjs的按行缩进会把 esbuild minify 产出的跨行模板字面量(join("\n")被 minify 成含真换行的模板字面量)内部注入缩进空格,归档条目文本的分隔符被改写。打包改为 body 直接嵌入不做按行缩进(单测直跑源码不经 minify+缩进故未覆盖,端到端核查发现)。
变更
- 配置持久化切换官方 configEditor:与 sandbox-extra-roots 同批改造(config-store.ts 两包逐字一致)——退役自建的
~/.dsh/plugins/session-archive/config.json,0.3.x 的旧配置在启动时一次性并入 profile patch,旧文件改名*.imported保留。 - 配置作用域从全局一份变为 per-profile(官方 patch 模型即如此)。该包远程服务本无配置写入端点,此变化主要影响启动时旧配置文件的读取位置。
@chaoset/sandbox-extra-roots v0.4.22-alpha.4
修复
- 设置页保存的目录列表整体失效:client 打包脚本(
scripts/build.mjs)对 bundle 按行加缩进时,会把 esbuild minify 产出的跨行模板字面量(split("\n")被 minify 成含真换行的模板字面量)内部注入缩进空格,分隔符变成split("\n ")——多行文本不再被拆分成数组,整段文本作为单元素落库后被normalizeRoots拒绝,保存静默失效。打包改为 body 直接嵌入不做按行缩进(该缺陷影响所有 client 源码含\n字面量的包,单测直跑源码不经 minify+缩进故未覆盖,端到端核查发现)。
变更
- 配置持久化切换官方 configEditor:设置页保存经
ctx.configEditor.edit()写入当前 profile 的cordis.patch.yml本行 config(与 Web 设置编辑器同一途径,dsh-base 内置),由 Loader 对账后 reload 生效。退役自建的~/.dsh/plugins/<name>/config.json目录(harness 官方目录布局中不存在该目录,清理时会连带丢配置;且$DSH_HOME只读环境变量、未走宿主完整解析链)。 - 配置作用域从全局一份变为 per-profile(官方 patch 模型即如此):desktop 与 web profile 各自保存各自的插件配置。
- 旧配置自动迁移:0.4.x 的
~/.dsh/plugins/sandbox-extra-roots/config.json在启动时一次性并入 profile patch,旧文件改名*.imported保留(官方 settings.yaml.imported 同款模式)。
@chaoset/dsh-any-connect v0.4.14-alpha.5
新增
- Coding Plan 的 5 小时 / 7 天 / 工具调用额度窗口:pill 此前只报订阅有效性(「有效」),用户看不到用量窗口。反编译 ZCode 客户端定位到它自己的取数端点
GET bigmodel.cn/api/monitor/usage/quota/limit(Authorization 用 coding-plan 的 api-key),实测返回TOKENS_LIMIT(unit=3/number=5 → 5 小时)、TOKENS_LIMIT(unit=6/number=1 → 7 天)、TIME_LIMIT(工具调用次数),其中percentage是已用百分比。现在 pill 展示这三条窗口(剩余百分比 + 进度条 + 重置时间);端点不可用或响应形状不符时回退订阅有效性窗口,绝不编数字。
修复
- Start Plan 未领取时不再显示「该 provider 不上报额度」:每日 00:00 后新池子尚未发放/领取时
billing/balance如实返回空 balances,pill 落到通用文案会让用户以为额度功能坏了。现在如实显示「Start Plan: 今日待领取」;有当日池子时照旧显示真实 token 数。 - 启动时按白名单过滤 saved 名单:saved 目录可能由旧版本写入(那时还没有产品面白名单),实测升级用户的 saved 里躺着 11 个 Coding Plan 模型(客户端只提供 2 个),启动时会先于 live 拉取被发布出来,用户先看到一整屏越界模型。现在启动即用同一份白名单过滤,白名单不可得时保持原样。
@chaoset/dsh-any-connect v0.4.14-alpha.4
修复
- Start Plan 额度 pill 显示真实剩余 token 数:composer dock 的额度 pill 在窗口缺
remain时只渲染「套餐名: 有效」,而 Start Plan 的当日 token 池(billing/balance的remain/size是真实数字)被currentPlanWindow丢弃——卡片显示 93M tokens 额度、聊天框下方却看不到剩余额度(用户报告)。现在sameDay池带remain/limit/unit: 'tokens':pill 显示「X tokens 剩余」并画进度条,当日用完是红色空条(正确语义);Coding Plan 订阅的remain/size恒为 1(有效性标志而非用量),维持「有效」展示。 - CLI 的 ZCode 额度输出按变体口径:
dsh-any-connect status此前打印裸total——Coding Plan 显示「Remaining credit: 1」(订阅有效性计数被当积分),Start Plan 是无单位 token 数;且 CLI 的凭据 store 缺transformCredential(运行时有),会把zcode-start-plan的额度查询指到 coding 池子(反之亦然)。现在与运行时同口径固定计划语义,人读行按 pill 语义输出(Start Plan 带 token 数字 / 上限 / 到期时间,Coding Plan 报订阅名与有效性),--json新增quotaWindows(total保留兼容)。 - Start Plan 空名单分钟级自愈:上游偶发对
billing/balance答一个空活动清单(实测 catalog 拉得live/empty的同一时刻,直调同端点却有 active 活动与模型授权,余额也正常),分组诚实隐藏后唯一的恢复路径是小时刷新——最长消失一小时,且卡片同屏出现「93M tokens 额度」与「今日没有有效的 Start Plan 活动」的自相矛盾。现在 sweep 里对「目录空 + 领取探测无翻转 + 距上次拉取 ≥ 5 分钟」再拉一拍(拉取无论结果都前移fetchedAtMs,不会打环);空名单文案改为中性表述,不再断言「无活动」。
文档
- README 的 ZCode 段重写为双变体现状(
zcode/zcode-start-plan两个独立连接、专属通道已接入且失败如实报错、两变体各自的模型名单口径),并补--provider列表漏掉的zcode-start-plan。此前还停留在「Start Plan 按普通 ZCode 通道使用」「专属模型通道未接入(被风控拦截)」的旧口径。
@chaoset/dsh-any-connect v0.4.14-alpha.3
修复
- Coding Plan 模型名单以客户端内置目录为白名单,不再混入开放平台越界模型:
/api/paas/v4/models是 BigModel 开放平台 API 的模型目录,不是 Coding Plan 订阅的产品面——实测对 coding-plan key 返回 11 个 id,其中 7 个(glm-4.5 / 4.5-air / 4.6 / 4.7 / 5 / 5.1 / 5.3-flashx)在官方客户端配置里完全没有绑定到 coding-plan;端点层放行(实测 glm-4.5 在 anthropic 通道返回 200)≠ 订阅覆盖,其订阅内费率/额度语义未经验证,选中即有按 API 余额计费的风险。名单真源改为本机 ZCode 客户端的zcode-builtin.json(权威来源,随客户端发版更新):fetchModels先取白名单再过滤上游并集与本地保留行;白名单不可得(客户端未装 / 结构演进)时回退已注册名单且不发上游请求。实测名单由 11 个收敛到官方产品面的 2 个(GLM-5.3、GLM-5.3-Flash),已验证参数(128K / 费率 / 徽章)不受影响。路径口:macOS 标准安装位置 +ZCODE_BUILTIN_CONFIG显式覆盖;其余平台未经实测不猜路径,一律保守降级。
测试
- 白名单解析(真实 revision 30 结构 / 大小写空白容忍 / 结构缺失与空名单降级 / Z.AI 系不纳入 /
ZCODE_BUILTIN_CONFIG覆盖口)、白名单外的上游 id 拦截、本地保留行同样受白名单约束、白名单不可得时回退且零上游请求等用例全覆盖;另含读本机真实客户端文件的 darwin smoke 用例(未安装则跳过语义)。
@chaoset/session-archive v0.3.26-alpha.2
修复
- 依赖树整体对齐宿主
0.2.1-alpha.1线,清除旧基线残留:bun.lock从零重新解析,清掉上一轮适配遗留的0.2.0-rc.2旧线子树(packages条目 611 → 362),@deepseek-ai/*不再同名双版本并存;cordis可选 peer 随之修正(cordis-plugin-include1.0.9 → 1.0.10-alpha.1、cordis-plugin-group1.0.4 → 1.0.5-alpha.1)。 - 工具链依赖升到最新补丁:
@types/node^26.6.3→^26.6.4、jsdom^30.1.1→^30.1.2。