Skip to content

Releases: Drhushi/dsh-plugin-tav2

dsh-plugin-tav2 0.2.2

Choose a tag to compare

@Drhushi Drhushi released this 12 Sep 07:37

dsh-plugin-tav2 0.2.2

发布日期:2026-09-12

0.2.2 = 0.2.1 的全部内容(dsh 0.1.5 适配)+ 本次设置卡交互修复。
已经装了 0.2.1 的用户建议升到 0.2.2;0.2.0 及更早版本请直接升 0.2.2。

兼容性

要求
DeepSeek Harness ≥ 0.1.5-rc.1(0.1.5-rc.2 实机验证;rc.1 经逐符号核对通过)
Node.js ≥ 22.19
引擎 Ren'Py(其他引擎待适配)

dsh < 0.1.5 上服务端工具仍可用,但设置卡会显示「Remote 通道缺失」降级提示
(0.1.5 起客户端才提供 remote.settings / remote.credentials 通道)。

本次修复:设置卡「点添加渠道后面板消失」

症状:在「设置 → 插件 → dsh-plugin-tav2」卡片里点「+ 添加渠道」后,面板(卡片正文)
消失;刷新页面后配置仍在(服务器数据没丢,丢的是界面状态)。

根因:宿主/父级重渲染会重新挂载这张卡片,组件内 state 随之复位——折叠标记
open 变回 false(面板收起,看起来就是「配置消失」),刚添加的渠道行与已输入的密钥草稿一并丢失。
顺带修掉同一类隐患:渠道名校验函数对畸形数据会抛错((7).trim() → TypeError),
而它在渲染期逐行调用——渲染期抛错会让 React 卸载整张卡片,表现同样是「面板消失」。

改法

  • 卡片草稿(展开状态 / 渠道列表 / 当前渠道 / SDK 路径 / 各渠道展开状态 / 密钥输入 / 保存基线)
    缓存到模块级,重挂载时先恢复;只有草稿不脏时才允许用服务器状态覆盖
    draftIsDirty:只填了密钥也算脏,否则刷新会把密钥输入冲掉)。
  • 渠道行渲染改为消费纯函数视图 channelRowViewsOf(永不抛错):畸形渠道数据也必须能画出一行。
  • channelProblem 防御化:非字符串字段先转换再 trim。
  • 「添加渠道」改用函数式状态更新取长度(重挂载/快速连点时闭包里的列表可能已过期),
    新行照旧默认展开便于直接填写。

0.2.1 的内容(包含在本版)

  1. 设置卡不可用(「命名空间 tav2 不可用」):客户端半迁移到 dsh 0.1.5 的 Remote 设置通道
    ctx.remote.settings / ctx.remote.credentials{ok,value} 信封、方法签名按宿主参数表
    严格校验实参个数),并把「通道缺失 / 读取失败 / 命名空间未注册」三类问题分开提示。
  2. 子代理译文被吞(静默失败)session.events 已被 snapshotEvents() 取代;
    旧写法让分批翻译(tav2_translate_batch)整批报「子代理运行失败」。
  3. persona 段落名:对齐 deployment:persona-prefix / -suffix(否则两段 persona 并存)。
  4. 子代理运行期归属agents.createparentAgent
  5. 依赖版本对齐:devDeps 精确锁到宿主实际版本,运行时依赖写成显式 peerDependencies
  6. 发布面补齐 skills/skills/tav2/{SKILL.md,AGENTS.md} 此前不在发布白名单里。

安装 / 升级

方式 A:本 Release 的预构建资产(推荐,无需自己构建)

$ver = '0.2.2'
$tgz = "https://github.com/Drhushi/dsh-plugin-tav2/releases/download/v$ver/dsh-plugin-tav2-$ver.tgz"
pnpm -C "$env:USERPROFILE\.dsh\profiles\web" add $tgz

首次安装后确认 profile 放行了原生模块构建:pnpm.onlyBuiltDependenciesbetter-sqlite3
(或 pnpm-workspace.yamlallowBuilds: better-sqlite3: true),否则启动报 sqlite 绑定错误。

方式 B:从仓库安装(改代码/跟 main)

pnpm install && pnpm build
powershell -ExecutionPolicy Bypass -File scripts/install-plugin.ps1 `
  -ProfileDir "$env:USERPROFILE\.dsh\profiles\web" -PluginPath "<本仓库路径>" -Apply

升级后必须做的一步

彻底重启 harness(客户端 bundle 是启动时的快照,只重开聊天/新建会话不算),然后刷新页面

验证清单

  • 设置 → 插件 → dsh-plugin-tav2:卡片能显示渠道列表与 Ren'Py SDK 路径,可保存;
  • 点「+ 添加渠道」:面板保持展开、新行默认展开(本版修复点);
  • 任意问一句:应为简体中文(插件 persona 生效);
  • 跑一次 tav2_status:引擎/项目/翻译通道/运行时层字段齐全。

资产内容

dsh-plugin-tav2-0.2.2.tgznpm pack 生成,含 dist/(含 dist/client.js 客户端 bundle)、
skills/tav2/python/tav2/cordis.patch.ymlREADME.md;发布脚本逐个校验必需条目与
版本号后才创建 Release。

dsh-plugin-tav2 0.2.1

Choose a tag to compare

@Drhushi Drhushi released this 12 Sep 04:47

dsh-plugin-tav2 0.2.1

发布日期:2026-09-12

兼容性(重要)

要求
DeepSeek Harness ≥ 0.1.5-rc.1(0.1.5-rc.2 实机验证;rc.1 经逐符号核对通过)
Node.js ≥ 22.19
引擎 Ren'Py(其他引擎待适配)

dsh < 0.1.5 上服务端工具仍可用,但设置卡会显示「Remote 通道缺失」降级提示——
0.1.5 起客户端才提供 Remote 设置通道(remote.settings / remote.credentials)。
如果你在设置卡上看到与「通道」「命名空间」相关的提示,请先升级 dsh 并重启 harness。

本次修复

0.1.5 把宿主的一批 API 改名/替换了,其中几处不报错、只是行为错或界面不可用
本版本把它们全部对齐(并补了离线单测钉住契约):

  1. 设置卡不可用(用户可见症状:「命名空间 tav2 不可用」)
    客户端半的调用通道已随 dsh 升级更换:connection.api 被移除,改为 Remote 命名空间
    ctx.remote.settings / ctx.remote.credentials,结果信封由 {result:{value}} 改为
    {ok,value},且方法签名按宿主参数表严格校验实参个数。本版本迁移完毕,并把
    「通道缺失 / 读取失败 / 命名空间未注册」三类问题分开提示(旧版把它们混成一句,
    最误导排查)。
  2. 子代理译文被吞(静默失败)session.events 在 0.1.5 已被 snapshotEvents() 取代;
    旧写法读到 undefined,导致分批翻译(tav2_translate_batch)的子代理结果被判为
    「子代理运行失败」,整批报失败
  3. persona 段落名:0.1.5 把部署 persona 拆成 deployment:persona-prefix / -suffix
    插件若沿用旧名就不再遮蔽宿主 persona,模型会同时读到两段 persona(职责/语气冲突)。
  4. 子代理运行期归属agents.createparentAgent(不传则子代理成为运行时根,
    父会话卸载不连带回收,异常路径会留下孤儿 agent)。
  5. 依赖版本对齐:devDeps 精确锁到宿主实际版本(dsh-*@0.1.5-rc.2cordis@4.0.2
    schemastery@3.18.2),并把三个运行时依赖的 dsh 包写成显式 peerDependencies
    >=0.1.5-rc.1 <0.2.0)——此前它们只声明为 devDeps,装机后靠宿主模块兜底解析,
    失败时只会在运行时报 ERR_MODULE_NOT_FOUND
  6. 发布面补齐 skills/skills/tav2/SKILL.md(zcode skill 形态)与
    skills/tav2/AGENTS.md(codex 等通用 agent 形态)此前不在发布白名单里,仓库与 Release 资产
    都缺这两个文件,而 package.json.files 声明要发它们。本次连同发布链路一起修:
    正式面 README 改由 docs/PLUGIN-README.md 复制(此前发布脚本会把 dev 的 tav2kit CLI 文档
    覆盖到插件的用户文档上),并新增预构建资产 + gh release 联动、dist 新鲜度闸门、
    资产条目与版本号校验。

安装 / 升级

方式 A:本 Release 的预构建资产(推荐,无需自己构建)

$ver = '0.2.1'
$tgz = "https://github.com/Drhushi/dsh-plugin-tav2/releases/download/v$ver/dsh-plugin-tav2-$ver.tgz"
pnpm -C "$env:USERPROFILE\.dsh\profiles\web" add $tgz

首次安装后确认 profile 放行了原生模块构建:pnpm.onlyBuiltDependenciesbetter-sqlite3
(或 pnpm-workspace.yamlallowBuilds: better-sqlite3: true),否则启动报 sqlite 绑定错误。

方式 B:从仓库安装(改代码/跟 main)

pnpm install && pnpm build
powershell -ExecutionPolicy Bypass -File scripts/install-plugin.ps1 `
  -ProfileDir "$env:USERPROFILE\.dsh\profiles\web" -PluginPath "<本仓库路径>" -Apply

升级后必须做的一步

彻底重启 harness(客户端 bundle 是启动时的快照,只重开聊天/新建会话不算),
然后刷新页面。否则你会继续看到旧界面——这也是旧版「改了不生效」类问题的根源。

验证清单

  • 设置 → 插件 → dsh-plugin-tav2:卡片能显示渠道列表与 Ren'Py SDK 路径,可保存;
  • 任意问一句:应为简体中文(插件 persona 生效);
  • 跑一次 tav2_status:引擎/项目/翻译通道/运行时层字段齐全。

资产校验

Release 资产为 npm pack 产物(dsh-plugin-tav2-0.2.1.tgz),内含:
dist/(含 dist/client.js 客户端 bundle)、skills/tav2/python/tav2/
cordis.patch.ymlREADME.md。发布脚本会逐条校验这些必需条目与版本号后才创建 Release。