Skip to content

Releases: Fishsb/dsh-voice-prompt-enhancer

v3.4.2

Choose a tag to compare

@Fishsb Fishsb released this 09 Oct 11:25

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):job test 全绿,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 上 ✨/🎤 与设置页恢复)

Choose a tag to compare

@Fishsb Fishsb released this 06 Oct 01:58

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):根因有两条,叠加才致功能整体消失——

    1. @deepseek-ai/dsh-client-runtime 自 DSH 0.2.0 起已从官方发行物中移除,而插件仍把它声明为依赖(同时写在 peerDependencies 与客户端注入表里)。这是一个历史遗留声明:插件代码从未真正使用过它(客户端产物里对它的引用为 0 次,唯一的运行期依赖是 React)。
    2. 语言包 @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 — 兼容性修复版(✨ 按钮恢复 + 云端语音修复)

Choose a tag to compare

@Fishsb Fishsb released this 18 Sep 22:25

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.0

v3.3.3

Choose a tag to compare

@Fishsb Fishsb released this 01 Sep 16:19

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 — 稳定性大修 + 语音体验升级 + 治理加固

Choose a tag to compare

@Fishsb Fishsb released this 24 Aug 10:56

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.2

v3.3.1

Choose a tag to compare

@Fishsb Fishsb released this 21 Aug 12:26

v3.3.1 — 语音设置体验完善 + 本地引擎一键部署

语音设置 UI 精细化、语音总开关、本地引擎一键部署(GitHub #4)、llm 注入修复(GitHub #3)。

✨ 新增

  • 语音总开关:识别引擎新增「关闭」选项,关闭后隐藏输入框旁的 🎤 按钮与语音配置;默认引擎改为本地(仅新环境生效)
  • 本地引擎一键部署:本地语音引擎运行时(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 — 语音识别正式版

Choose a tag to compare

@Fishsb Fishsb released this 21 Aug 06:44

✨ 语音识别正式版(💬)

语音识别从实验模块晋升为插件两大核心功能之一,与提示词增强并列:

  • 双引擎:云端 Qwen3-ASR / 本地离线 SenseVoice(框架 + 可选下载,发布物精简)
  • 说完自动停(VAD 静音检测),录音仅内存中转不落盘
  • 快捷键唤醒(点按 / 长按双触发)
  • 文本规整(去口语化)+ 识别后自动触发提示词增强

✨ 提示词增强(主功能)

  • 一键增强 / 5 种优化模式 / 记忆开关 / 模型链,不满意可撤回

🔁 一键重启(附带独立工具)

DSH 服务异常、网页打不开时,仍可命令行恢复。

📝 文档重构

README 重构为「两大核心功能」突出结构(提示词增强 + 语音识别),英文版同步至 v3.3.0 并补语音内容;仓库 About 已更新为强调两大主功能。

📦 安装

dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer#v3.3.0

详见 README 与 CHANGELOG。

v3.2.4

Choose a tag to compare

@Fishsb Fishsb released this 19 Aug 13:55

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

Choose a tag to compare

@Fishsb Fishsb released this 19 Aug 12:30

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 — 一键重启独立功能 + 桌面快捷方式图标根治

Choose a tag to compare

@Fishsb Fishsb released this 18 Aug 04:02

v3.2.0 — 桌面快捷方式 + 跨平台服务化 + 模板体系细化

✨ 新增

  • 桌面快捷方式「重启DSH」:页面打不开时双击即可重启服务(鲸鱼图标,中英文名自动跟随界面语言)
  • 支持 Linux / macOS 服务化部署(systemd / launchctl),端口重启与一键更新跨平台可用
  • 更新执行器端口被占用时自动切换动态端口,不再启动失败
  • 模板体系升级:每个优化模式独立 3 个内置模板 + 可添加多个自定义模板
  • 上下文预算、超时、输出上限按模式独立档位,支持「无限制」

🐛 修复

  • 快捷方式图标白纸问题(Windows 图标格式修正)
  • 重启链路在服务慢停止时误判失败

⚙️ 变更

  • 「恢复默认」模型链固定为官方两个模型
  • 设置界面提示文案精简、下拉框交互修复