Skip to content

Releases: Yuuyuko-uu/dsh-tts-bridge

v1.3.2

Choose a tag to compare

@Yuuyuko-uu Yuuyuko-uu released this 29 Oct 15:05

1.3.2 — 2026-10-29

DSH NEXT 把插件路由整片拦成 403 → 扩展改走插件自己的本机通道

  • 🐛 根因:DSH NEXT(2.0.19-next 起)的桌面宿主给每一个插件注册的 HTTP 路由都套了「浏览器访问」闸 ——
    请求里没有 Electron 渲染进程的 x-dsh-desktop-renderer、设置里又没开「允许浏览器访问」时,
    一律 403 Browser access is disabled。扩展是普通浏览器客户端,拿不到那个令牌,
    所以 /state、/next 全是 403;/where 走的是插件自己 listen 的端口,不归那道闸管,一直通。
  • ✅ 宿主:在问路端口(19387 / 39871 / 39872)上再开一份「本机小门」,把扩展要用的接口也挂上去
    (/state、/next、/ack、/playing、/auto、/say、/hello)。
    只 listen 127.0.0.1、只认 chrome-extension:// 来源(网页连 403 都读不到),
    除 /where 外都要带每次启动新发的令牌;令牌只在内存里,不写日志、不落盘。
  • ✅ 扩展:403 不再当成「不是它」—— 先记成「被拦」,去问 19387 的 /where 拿新地址和令牌,
    带上令牌重试;问路每轮最多问一次,同一波 403 最多 5 秒重找一次,不会把重找做成死循环。
  • ✅ /where 保留原来的 base(老扩展照旧能用),新增 bridge(本机通道)和 token。
  • ✅ 扩展在后台跟每个窝打个招呼(/hello):卡片能分清「没装扩展」和「装了但 DeepSeek 页面没开」。
  • 🔧 新增 lib/local-gate.js(本机小门,能单测)。
  • 测试:新增 test/local-gate.test.mjs 12 项、test/find-gated.test.mjs 4 项
    (真的起两个 HTTP 服务,在 vm 里加载真的 extension/find.js);连同原有 35 项,共 51 项全过。
  • ⚠ 宿主半边改完要重启一次 DSH;扩展要在 chrome://extensions 里重载(⟳),再刷新 DeepSeek 页面。两半都要更新。

v1.3.1 · 正文和「这一轮结束」落在两次轮询之间时,不再丢掉朗读

Choose a tag to compare

@Yuuyuko-uu Yuuyuko-uu released this 26 Oct 11:59

正文和「这一轮结束」落在两次轮询之间时,不再丢掉朗读

  • 🐛 扫描是每 1.5 秒读一次会话新增的事件。正文(assistant/message)和 turn/end 落在两次扫描里时,
    第一次攒到的正文随扫描结束就没了;第二次只看到「结束」、没有正文 → 这一轮干脆不念。
  • ✅ 每个会话每个回合的正文改成跨扫描保留,turn/end 时才拼起来念;
    失败/中断/空回合也照常释放缓冲,不会越攒越多。
  • ✅ 顺手修了会话序号变小(重开、换一份存档)之后游标卡死不再前进的问题;重看时以当前序号为基线,不补念历史。
  • 🔧 扫描逻辑抽成 lib/turn-scanner.js(能单测)。
  • 测试:node --test tests/turn-scanner.test.mjs 9 项全过。

安装 / 升级

dsh plugin --profile desktop add github:Yuuyuko-uu/dsh-tts-bridge

装过的直接重装一次就行(配置和记忆都在 ~/.dsh/,不会被覆盖);装完重启一次 DSH 生效。