Repository navigation
Releases: Fishsb/dsh-voice-prompt-enhancer
Release list
v3.4.2
v3.4.2 — Windows 平台修复版(宿主启动约 5 秒被自己的 worker 清扫杀掉)
本版主线是一处只在 Windows 上成立、且会把宿主进程直接杀掉的缺陷:插件启动 5 秒后自动执行的 worker 清理逻辑,在 Windows 上会把本机全部 node 进程(含宿主自身)当成待回收的 worker,随后把发现集里除「保留者」以外的进程逐一
process.kill()—— 宿主把自己杀掉了。
本版无破坏性变更,配置与既有功能无需迁移。
🐛 修复
-
Windows 上宿主启动约 5 秒后静默退出,界面永久停在「自动重连中」:现象是 Windows 上宿主启动后约 5 秒静默退出——stdout / stderr 无任何读数、无栈、无
fatal load failure;前端页面已渲染(主题、宠物、通知桥均正常),但连接永不成代,用户侧表现为"服务起不来"。根因是
workerPidsByProcessScan()两条平台分支的判据不一致:平台 判据 结果 posix 遍历 /proc/<pid>/cmdline,只认「某参数等于 worker 脚本路径或以<sep>asr-worker.cjs结尾」正确 win32 只按进程名 Get-CimInstance Win32_Process -Filter "Name='node.exe'"枚举返回本机全部 node 进程 这与该函数的自述判据(「命令行里出现本插件的
asr-worker.cjs路径」)相悖。后果不是「少发现」而是「全都发现」:清理函数sweepStaleWorkers()(挂在ensureWorker()入口最前、无条件执行)按「只留一个」把发现集其余项逐一process.kill()⇒ 宿主把自己杀掉。该 win32 分支自
8abe49c引入起从未被执行(开发机为 Linux;上游 CI 只跑ubuntu-latest;既有回归用例全用pgrep//proc/ 硬编码路径,Windows 上跑不了)。本版按最小改动修复三处:① win32 分支补上命令行过滤(
$_.CommandLine -like '*asr-worker.cjs*'),与 posix 分支同源;② 枚举结果排除process.pid;③ 清理循环增加pid === process.pid跳过(纵深防御:发现面将来再退化也不得自杀)。未改 posix 分支、未改保留者挑选策略、未改 worker 启停语义、未引入新依赖。
✅ 本修复的实测方式
- Windows 侧真实环境实测(本机 win32,真进程非夹具):改前
workerPidsByProcessScan()把本机当时的 node 进程全部入列(含调用者自身),改后返回空集;process.kill拦截实测到宿主对自身 pid 发出 kill(改前),改后零 kill;端到端复现「调用ensureWorker()后进程静默死亡」(改前)与「进程存活、正常返回」(改后)。 - 新增回归判据
test/asr-worker-reap-win32.test.cjs(3 条,已登记进npm test列表):结构腿(win32 必须按命令行过滤 + 清理必须跳过自身)+ 反向行为腿(扫描不得返回非 worker 进程,含自身)+ 正向行为腿(命令行携带 worker 脚本路径的进程必须被发现,防「改成return []」这类假修复)。有牙实测:把修复还原为改前版本后,结构腿与反向行为腿在真实 Windows 上报红。 - CI 读数(
ubuntu-latest):jobtest全绿,23 个测试文件 / 307 项 / 306 通过 / 0 失败。 - 边界(如实声明):上游 CI 只跑
ubuntu-latest,win32 分支在 CI 上不被执行;上述 win32 读数均为本机实测(非 CI 覆盖),结构腿即为 CI 上可见的对应信号。
📦 安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.4.2升级已有安装:
dsh plugin --profile web update dsh-prompt-enhancer
⚠️ 插件在本机运行环境里生效需要重启 DSH;Windows 用户升级到本版后,此前「启动约 5 秒后服务起不来」的问题即消除。
v3.4.1 — 兼容性修复版(DSH 0.2.x 上 ✨/🎤 与设置页恢复)
v3.4.1 — 兼容性修复版(DSH 0.2.x 上 ✨ / 🎤 与设置页恢复)
本版主线是一处让插件在新版 DSH 上被整体拒绝装载的问题:DSH 升到
0.2.0及以后,插件在 profile 启动阶段被宿主的兼容性门直接跳过,✨、🎤 与设置页卡片全部消失(且界面无任何提示)。已在市场版本(v3.4.0)上复现并被用户报告(Issue #11 / #12)。
本版无破坏性变更,配置与既有功能无需迁移。
🐛 修复
-
插件在 DSH
0.2.0+ 上被拒绝装载,✨ / 🎤 / 设置页全部不出现(Issue #11 / #12):根因有两条,叠加才致功能整体消失——@deepseek-ai/dsh-client-runtime自 DSH0.2.0起已从官方发行物中移除,而插件仍把它声明为依赖(同时写在peerDependencies与客户端注入表里)。这是一个历史遗留声明:插件代码从未真正使用过它(客户端产物里对它的引用为 0 次,唯一的运行期依赖是 React)。- 语言包
@deepseek-ai/dsh-client-locale的版本范围写成了^0.1.0-rc.6。语义化版本里^前缀在0.x上只允许同一小版本(即 0.1.x),因此对0.2.x一律判定为「不满足」。
两条叠加后,宿主在启动时就把整个插件判为不兼容并跳过——所以你看到的是「插件装在那里,但什么都点不出来」,而不是一条错误提示。本版按官方处置:移除已不存在的依赖声明(而非放宽它的版本),并把语言包范围改为
>=0.1.0-rc.6,同时覆盖 0.1.x 与 0.2.x 两代宿主。升级后无需任何手工操作:装上新版重启 DSH 即可。若你此前安装的是 v3.4.0,重启后那行
skipping profile bundle "dsh-prompt-enhancer"警告会消失。
🛡️ 稳定性与平台修复(自 v3.4.0 起累计)
- 本地语音引擎的 worker 进程泄漏(Linux / WSL 通道,问题严重):语音识别在 Linux 上启动本地引擎时,有一处进程发现逻辑只在 Windows 成立——它无条件调用
netstat且只认LISTENING字样,而 Linux 上该命令往往不存在、输出也是LISTEN。结果是「引擎是否已在运行」永远判为「没在运行」,于是每次启动都新开一个约 420MB 的识别进程,且全链路没有任何回收机制(进程以脱离父子关系的方式启动,卸载插件也不清理)。实测一台机器累积到 30 个进程、合计约 9.6GB,把内存与交换空间压满,曾导致整机卡死。本版修好了 Linux 侧的进程发现(ss -ltnp主路径 +netstat -tlnp退路),并补上两道防护:进程扫描发现面(不再依赖「最多只能看到两个进程」的端口文件)与启动时清扫(枚举全部识别进程,只保留正在服务的那一个)。内存占用自此稳定。 - 同一处泄漏的连带修复:因上述「永远判为没在运行」,每次启动都会重复拉起新进程。发现面与清扫就位后,重复拉起同时消除;启动路径的清扫挂在入口最前,即使模型未安装也会先收敛残留进程。
说明:本版 CHANGELOG 中另有若干条 2026-09-26/27 的门禁与文档治理条目(gate 环状态出口、退出码三态、投影漂移归因等),属仓库内部工程质量工作,不影响插件在 DSH 中的行为,故不在本发布说明中展开。
📦 安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.4.1升级已有安装:
dsh plugin --profile web update dsh-prompt-enhancer
⚠️ 插件在本机运行环境里生效需要重启 DSH(host 半部变更);浏览器端刷新页面即可加载新的客户端半部。
v3.4.0 — 兼容性修复版(✨ 按钮恢复 + 云端语音修复)
v3.4.0 — 兼容性修复版(✨ 按钮恢复 + 云端语音修复)
本版主线是两处让功能整体不可用的问题:DSH 宿主升级后 ✨ 增强按钮不再渲染、云端语音识别恒失败。两者都已在市场版本(v3.3.3)上复现并被用户报告(Issue #8 / #10 / #9)。
⚠️ 同时含一处破坏性变更(移除插件内重启能力),详见文末「升级注意」。
🐛 修复
- ✨ 增强按钮 / EnhanceBar 在 DSH Desktop 与运行时 1.0.61+ 上不渲染(Issue #8 / #10):宿主槽位渲染器已改为 hook 契约——向槽位组件注入
useSession/useInput选择器 hook 与inputActions,不再传props.session;插件仍按旧取法取值,组件直接返回 null,表现为「设置页里插件正常、输入框上的 ✨ 却消失」。本版按新契约取值,并向下兼容旧宿主(仍提供props.session/props.input的运行时照常工作)。 - 云端语音识别恒失败(Issue #9):chat 协议请求体里音频字段名写成了
audio,应为input_audio,服务端一律拒绝。修复后云端 ASR 恢复;本版同时补上了针对该出网契约的自动化断言,防止同类字段名笔误再次静默上线。
🛡️ 稳定性与平台修复
- 非 Windows 平台三处真缺陷:① 环境探测的工具白名单缺
which,导致非 Windows 侧整套探测走「工具不可达」早退;② 端口监听者探测依赖的lsof既不在常见镜像里、其输出格式又与解析正则不匹配,导致永远拿不到 pid;③ 错误日志尾部读取被一处平台判断整条短路,连平台无关的降级日志也读不到。三处均已修(Windows 行为不变)。 - 一键更新的拉取清单与发布树对齐:清单里残留一个已下线的文件,而校验要求「恰好覆盖清单全项」——意味着该路径此前不可能成功。
- 内部:CI 从「长时间不出结论」改为每次推送给出完整读数,并新增「用例注册数 ≥ runner 上报数」不变量(防「用例静默消失但 CI 报绿」);死层清理使发布物体积下降约 27%。
⚠️ 升级注意(BREAKING)
- 移除插件内的重启能力:一键更新完成后不再由插件自动重启 DSH,改为提示你手动重启;原先的「重启服务/端口」按钮与「桌面快捷方式」入口一并下线。
- 对外 RPC 变更:
update/portRestart、update/makeShortcut不再提供;新增update/install(安装已下载的新版本,返回restartNeeded: true)。 - 若你此前依赖快捷方式或插件内重启,请在更新后改为手动重启 DSH(
dsh web)。其余功能与配置无需迁移。
📦 安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.4.0v3.3.3
v3.3.3 — 一键更新修复版
追加重发:修复一键更新 executor 崩溃(依赖缺失 + 端口链路),同步纳入批次A–D 与外部贡献处理。
🐛 修复
- 一键更新 executor 崩溃:独立执行器补足 undici 依赖(自包含同步);undici 缺失时降级直连、不再崩进程;executor.port 陈旧时无条件验证——端口被占自动落到动态端口
- 增强易断链修复:看门狗 15s / 探测 12s / 失败缓存 5s,链耗尽整链重试一次——「慢但健康」模型不再被误杀
- 恢复被批次D 误删的 require 绑定(asrDeploy/sys)+ package.json 描述 emoji 乱码修复
🛡️ 稳定性加固
- 更新器自动链熔断(显式代理 + 指数退避 + kill-switch + 重启防抖)
- 部署账本 + 自愈版本守卫 + 一致性自检
- probeEnv 全异步化(事件循环阻塞降至毫秒级)+ net 探测熔断冷却
- 日志全链 ISO 时间戳 + 发布物 BOM 收口
✨ 其他
- 外部 fork/PR 贡献评估与 README 采纳(badge 链接 + VAD 说明)
- package-lock 根版本同步(3.2.4→3.3.2)
v3.3.2 — 稳定性大修 + 语音体验升级 + 治理加固
v3.3.2 — 稳定性大修 + 语音体验升级 + 治理加固
43 项迭代攒批:提示词增强管线服务化、语音识别本地引擎与多步检索、端口重启加固、配置磁盘持久化,以及「优化完成但草稿未替换」等关键修复。
✨ 新增
- 语音识别模块:云端双协议(Qwen3-ASR chat / OpenAI)+ 本地引擎(sherpa-onnx 离线);模型市场内置 sense-voice/paraformer 一键下载,多源 fallback 与显式下载代理;识别结果可选 LLM 规整(失败降级原文)
- 一键发布模式(publish):粗想法 → IEEE/GDD 九章需求规格,多步网络检索 + 跨轮记忆回注
- 会话切换增强保持:优化中切走后台继续、回归自动恢复现场、localStorage 结果持久化
- 单快捷方式三功能:Start Web / Repair port / One-click update 全自动;维护菜单同步瘦身
- nssm 异常自愈阶梯:软重启→强停借力→末次重试→卸载兜底(带确认门),并发闸防双实例
- 救援五步流程:依赖冲突诊断 → 快照 → 三档处置 → 干跑闸门 → 验证拉起,附恢复报告
- 供应链加固:staging tgz sha256 强校验;web/desktop 双实例隔离
🎨 界面
- 设置状态即时刷新:改任何设置后引擎检测 ● 即时重查(不再停留旧值)
- 输入条 ✨/🎤/模型选择器零间距紧贴;声波条光学对齐
- 参数页模式默认档显式可见;环境检测 unsupported 态接入文案
- 语音开关自述式直显状态;快捷键录制交互优化
🐛 修复
- 优化完成但草稿未替换:会话切换增强保持的接线补全(活动会话登记/actions ref/持久化三路断线)
- 语音设置白屏:状态刷新补丁引用未声明变量的渲染期崩溃
- 本地引擎 workerPort 缓存:传输失败立即重探,动态口 worker 重挂不再等 60s TTL
- 端口重启链路:非管理员预检/强停升级/双实例取证/插件加载健康嗅探
- 配置持久化:DSH Desktop 动态端口下配置丢失(磁盘双写+启动恢复)
🔧 治理
- 死代码门禁 + 增强模块浏览器端到端验证脚本 + client 完成回调行为级测试(229 项)
安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.3.2v3.3.1
v3.3.1 — 语音设置体验完善 + 本地引擎一键部署
✨ 新增
- 语音总开关:识别引擎新增「关闭」选项,关闭后隐藏输入框旁的 🎤 按钮与语音配置;默认引擎改为本地(仅新环境生效)
- 本地引擎一键部署:本地语音引擎运行时(worker + 底层依赖)缺失时,设置页出现「部署本地引擎」按钮,一键安装并启动,无需手动跑部署脚本
🎨 界面
- 语音设置各下拉统一为与提示词增强一致的样式(含箭头、超长滚动)
- 窄屏不再重叠;标签精简为两字;恢复「打开文件夹」按钮;「语言」与「打开文件夹」对调位置
- 修复快捷键清除后输入框不立即清空的问题
🐛 修复
- llm 服务未就绪(NO_LLM):插件声明
llm为注入依赖,等待服务就绪后再激活,消除启动竞态导致的「LLM 服务不可用」
安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.3.1安装后重启 dsh web 生效(桌面端重启客户端并按 Ctrl+F5 刷新)。
v3.3.0 — 语音识别正式版
✨ 语音识别正式版(💬)
语音识别从实验模块晋升为插件两大核心功能之一,与提示词增强并列:
- 双引擎:云端 Qwen3-ASR / 本地离线 SenseVoice(框架 + 可选下载,发布物精简)
- 说完自动停(VAD 静音检测),录音仅内存中转不落盘
- 快捷键唤醒(点按 / 长按双触发)
- 文本规整(去口语化)+ 识别后自动触发提示词增强
✨ 提示词增强(主功能)
- 一键增强 / 5 种优化模式 / 记忆开关 / 模型链,不满意可撤回
🔁 一键重启(附带独立工具)
DSH 服务异常、网页打不开时,仍可命令行恢复。
📝 文档重构
README 重构为「两大核心功能」突出结构(提示词增强 + 语音识别),英文版同步至 v3.3.0 并补语音内容;仓库 About 已更新为强调两大主功能。
📦 安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.3.0v3.2.4
v3.2.4 — 修复桌面端配置丢失
修复 DSH 桌面版(Desktop)每次重启后插件设置被重置的问题(GitHub Issue #1)。
🐛 修复
- 桌面端设置不再丢失:修复 DSH Desktop 每次重启后模型链、优化参数、自定义模板被重置为默认值的问题
- 配置磁盘持久化:配置改为跨端口共享的磁盘存储,桌面端动态端口切换后自动恢复,无需重新配置
- 网页版零影响:固定端口(网页版)原有配置自动迁移到磁盘,行为不变
安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.2.4安装后重启 dsh web 生效。
v3.2.3
v3.2.3 — 稳定性大修 + 一键服务化接管
自 v3.2.0 以来的累计更新:端口重启链路全面根治、一键更新不再卡死、支持一键安装为 Windows 系统服务。
✨ 新功能
- 一键服务化:未安装系统服务时,页面直接引导一键安装(弹一次 UAC),重启电脑后自动接管端口,支持开机自启
- 崩溃自动拉起:无系统服务时,DSH 意外退出会自动重启,不再需要手动处理
- 桌面快捷方式:一键生成「重启 DSH」快捷方式,双击即重启(自动区分服务 / 前台模式)
- 环境检测面板:一键检查重启工具、网络、端口托管模式与当前 PID,服务 / 前台模式一目了然
- 更新体验提升:下载显示实时进度,失败自动切换镜像源;安装改为本地解包,不再长时间卡死
🐛 修复
- 端口重启:服务模式下挂死、界面卡「正在重启」、倒计时卡顿,均已根治
- 一键更新:90 秒超时、安装不生效、更新后按钮无法点击、版本检测不准
- 重启电脑后首次端口重启误报失败
- 环境检测在服务模式下误报「未安装 nssm」
⚙️ 变更
- 端口重启自动判断模式:已装系统服务走服务重启,否则前台重启
- 安装服务后改为「重启电脑接管」,不再引导注销
- 环境检测术语规范化:服务模式(nssm · Session 0)/ 前台模式(用户会话)
安装
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.2.3安装后重启 dsh web 生效。
v3.2.0 — 一键重启独立功能 + 桌面快捷方式图标根治
v3.2.0 — 桌面快捷方式 + 跨平台服务化 + 模板体系细化
✨ 新增
- 桌面快捷方式「重启DSH」:页面打不开时双击即可重启服务(鲸鱼图标,中英文名自动跟随界面语言)
- 支持 Linux / macOS 服务化部署(systemd / launchctl),端口重启与一键更新跨平台可用
- 更新执行器端口被占用时自动切换动态端口,不再启动失败
- 模板体系升级:每个优化模式独立 3 个内置模板 + 可添加多个自定义模板
- 上下文预算、超时、输出上限按模式独立档位,支持「无限制」
🐛 修复
- 快捷方式图标白纸问题(Windows 图标格式修正)
- 重启链路在服务慢停止时误判失败
⚙️ 变更
- 「恢复默认」模型链固定为官方两个模型
- 设置界面提示文案精简、下拉框交互修复