Repository navigation
Releases: Nothree-code/voco-input-sh
Release list
v0.2.2 — 修复麦克风按钮不显示(客户端必须声明 inject)
修复(关键)
麦克风按钮完全不显示 —— 这是本版本真正解决的问题。
根因
客户端的 apply(ctx) 依赖 ctx.get('slots'),但插件对象只导出了 apply,没有声明 inject:
exports.apply = apply; ← 修复前只有这一行
cordis 因此不会等待服务就绪就调用 apply。调用发生时 slots 尚未注册,ctx.get('slots')
返回 undefined,而代码写的是静默返回:if (slots === undefined) return; ——
按钮没了,控制台也一声不吭,从外部几乎无法自查。
对照:同一台机器上 dsh-prompt-enhancer 声明了 inject: ['timer'],因此不受影响,
它的「开始录音」按钮一直正常显示在同一个槽位上。
修复
exports.inject = ['slots', 'timer']—— 让 cordis 等到两个服务就绪后再调用apply- 兜底分支由静默
return改为console.error(...),契约再变时会出声 - 两处 slot 注册补上
label,order由10调整为12(让开dsh-prompt-enhancer已占用的 10/11)
验证
真机验证(无头 Chrome + CDP,连接运行中的 dsh 0.1.5-rc.2 实例):
| 检查项 | 修复前 | 修复后 |
|---|---|---|
.voco-mic-btn 计数 |
0 | 1 |
| 页面 console 报错 | 无 | 无 |
沙箱验证:exports 键为 ['inject','apply'],slots.register 命中 2 次
(conversation.input.right#vocotype-paste、conversation.input.dock#vocotype-panel)。
更正 v0.2.1
v0.2.1 判断「无需改动代码即可兼容 dsh 0.1.5-rc.2」。该结论只对 host 端成立——路由层契约确实未变,
实测 /dsh-voco-token、/dsh-voco-baseline 均返回 200;但客户端并不成立。
v0.2.1 的按钮在 dsh 0.1.5-rc.2 上是不可见的,请升级到 v0.2.2。
升级
dsh plugin --profile web add github:Nothree-code/voco-input-sh本插件支持 HMR:同步文件后浏览器会自动重载插件 bundle,通常无需重启 dsh web。
Full Changelog: v0.2.1...v0.2.2
v0.2.1 — DSH 0.1.5-rc.2 兼容性验证 + 日志轮转修复
适配
验证 DSH 0.1.5-rc.2 兼容性,结论是无需改动代码即可工作。
| 依赖面 | 0.1.5-rc.2 现状 |
|---|---|
dsh.client 清单(platform: "web" + exports["./client"]) |
未变 |
客户端 bundle 入口 window.__ModuleLoader__.load({ id, factory }) |
未变 |
插槽 conversation.input.right / conversation.input.dock |
仍存在 |
插槽 props(InputZone + InputState.draft + inputActions.setDraft) |
未变 |
Host 路由 webServer.register({ kind: 'exact' }) |
未变 |
运行时实证:/dsh-voco-token 与 /dsh-voco-baseline 在当前实例上均返回 HTTP 200。
修复
- VocoType 重启或日志轮转后语音不再插入:日志条目数回退会让客户端持有的
after游标越过文件末尾,
/dsh-voco-poll会持续返回「无新内容」,表现为「点了麦克风、说了话,却再也没有文字插入」,
必须重新点一次麦克风才能恢复。现在 host 端比较相邻两次读取的条目数,检测到回退时返回rotated: true
并清空增量,客户端收到后把游标重设到当前末尾。(lib/index.js、lib/client.js)
文档
- README 新增「DSH 兼容性」章节:契约核对表 + 已知行为边界
(输入框引用 chip 会被降级为纯文本;语音插入依赖 VocoType 日志格式)。 - 新增
CHANGELOG.md。
安装 / 升级
dsh plugin --profile web add github:Nothree-code/voco-input-sh升级后需完全重启 dsh web 生效。
校验
node --check通过(host 与 client 两半)- 源码与运行副本(
node_modules/voco-input-sh)字节一致 package.json无 BOM
Full Changelog: 8ffb189...fa3f2df