Skip to content

Releases: ashz555/dsh-term-glossary

v0.3.9 — 并发上限 4

Choose a tag to compare

@ashz555 ashz555 released this 31 Oct 15:05

并发上限从 2 提到 4。

多框并存之后,连开第三个框就会撞上限流(TOO_MANY_REQUESTS),体验偏紧;现在允许同时 4 个查询,第 5 个才会被拒。每分钟 20 次的总额度不变。

刷新页面(Ctrl + Shift + R)后生效;如果重启过 DSH,Host 侧也是新的上限。

v0.3.8 — 多框并存

Choose a tag to compare

@ashz555 ashz555 released this 31 Oct 15:02

多个解释框可以同时存在。

  • 查完一个词再查下一个时,新开一个框而不是替换已有的框;多个框可同时显示、各自拖动、各自关闭。
  • 每个框只有自己的 × 能关,关闭只中止它自己那次模型调用,其他框不受影响。
  • 同一术语 + 同一句子已经有框时,那一次「搜索」按钮不出现,避免叠出重复框。
  • 新框会按打开顺序轻微错开摆放,不会完全叠在一起;最近打开或拖动的框在最上层。
  • 并发上限仍是同时 2 个 / 每分钟 20 次,短时间内连开很多框时靠后的会显示限流提示。

刷新页面(Ctrl + Shift + R)后生效。

v0.3.7 — 只由 × 关闭

Choose a tag to compare

@ashz555 ashz555 released this 31 Oct 14:00

关闭方式改为只认右上角 ×。

  • 点击框外、点击正文、按 Esc 都不再关闭解释框 —— 这样你可以留着当前解释,继续选下一个术语。
  • 拖动过的位置在切换术语时也会保留,只有点 × 关闭后才复位(没拖动过时仍跟随选区)。
  • 代价是框会一直留到你主动关闭;它随时可拖动,也可以随时点 ×。

刷新页面(Ctrl + Shift + R)后生效。

v0.3.6 — 答案缓存

Choose a tag to compare

@ashz555 ashz555 released this 31 Oct 09:55

关掉小窗后想再看同一个词,不必重新花钱。

  • Host 侧缓存:键由「路由 + 术语 + 所在句子 + 追问 + 历史 + 会话线索」共同决定——任何一项变化都会重新调用,不会把别的领域/别的会话的答案错给你。命中时直接返回,不消耗并发额度与每分钟额度,也不产生模型调用。默认 30 分钟 / 50 条(LRU),可用行配置 cacheTtlMs(0 关闭)与 cacheMax 调整。
  • 客户端缓存:关掉小窗后再选同一个词,是瞬开、连请求都不发(40 条 / 30 分钟)。
  • 框底在命中时显示「缓存命中 · 本次未调用模型」,不再把上一次的 token 数当作这次的成本。

刷新页面后生效(Host 侧缓存刷新后仍然有效)。

v0.3.5 — 解释框可拖动

Choose a tag to compare

@ashz555 ashz555 released this 31 Oct 09:44

小窗可以拖动了。

  • 按住标题栏拖动:把解释框挪到不挡正文的位置,自动限制在视口内(四周 8 px),窗口缩放后也会被拉回可见区域。
  • 双击标题栏复位:回到默认位置(选区下方)。
  • 位置在本次打开期间保持不变(回答回来不会跳回原位);打开新术语会重新贴回选区。
  • 关闭按钮和框内文本选区不受影响(按下按钮不会触发拖动)。
  • 标题栏提示:「拖动标题栏移动位置 · 双击标题栏复位」。

升级后刷新页面(Ctrl+Shift+R)即可生效;若仍是旧行为,重启一次 DSH 让客户端 bundle 重新载入。

v0.3.4 — 限流与会话线索限制

Choose a tag to compare

@ashz555 ashz555 released this 18 Oct 08:32

继续加固(A/B/F/G 四项):

  • 限流:同时最多 2 个查询、每分钟最多 20 次,超限返回 429(TOO_MANY_REQUESTS / RATE_LIMITED)。这条路由此前可被本地进程或同源页面循环调用、直接消耗 reader 的 token。
  • 会话线索只读「挂载中的会话」:此前任何 sessionId 都会去读该会话的标题与用户消息;现在只有 agents.get 能命中的会话才会读取,随便传一个不存在的 id 什么也读不到(查询本身照常工作)。
  • 客户端上下文截取:选区上下文改为先定位、切片(约 1.4 KB)再归一化,长对话页面不再在每次选区变化时对整段正文跑正则。
  • README 安全边界:写明路由仅监听回环、无额外鉴权,不要把 DSH Web 端点经反代/非回环地址暴露到不可信网络。

自检新增:第三个并发请求被拒且只有 2 次到达模型、第 21 次请求被拒、非 live 会话零读取且提示词不含其内容、客户端截取式上下文。

v0.3.3 — 安全加固

Choose a tag to compare

@ashz555 ashz555 released this 18 Oct 08:09

安全加固三项(都先实测复现、再修):

  • 读者关掉解释框就中止模型调用:此前关闭后调用仍会空跑到 60 秒超时,白花 token。现在用响应对象的 close 事件建 AbortController,并与超时信号合并;响应已关闭时不再向死连接写数据。
  • 已产出文本的失败不再换路由重试:此前流式产出后遇到传输层错误会换下一条路由重试,同一次点击可能被计两次费。现在只有「完全没产出文本」的传输失败才回退。
  • 错误信息脱敏:响应体里的错误去除控制字符、把 http(s) URL 换成 [url]、截断到 400 字以内;完整错误只写宿主日志。

自检新增三组回归断言(断连后信号被 abort 且不换路由、半途失败不重试、错误文案不含 URL)。其余检查项(405/403/400/413、无 XSS、无路径穿越、零依赖、发布面)本轮复测均通过。

v0.3.2 — 文档同步(代码同 0.3.1)

Choose a tag to compare

@ashz555 ashz555 released this 18 Oct 07:08

文档版本:代码与 0.3.1 完全一致,仅 README 同步了插件市场收录信息与三种安装方式,让 npm 页面上的说明与仓库一致。

Docs-only release: identical code to 0.3.1, with the README brought in line with the plugin-market listing.

v0.3.1 — 模型路由自适应修复

Choose a tag to compare

@ashz555 ashz555 released this 11 Oct 07:48

修复:插件此前固定使用 profile 的默认模型发起请求。当该路由在本机不可达(而当前会话的对话功能正常)时,解释框会直接显示宿主的英文报错 DeepSeek Messages transport failed。

本次更新调整了模型路由的选择方式:

  • 按 行 config 显式指定的路由(优先级最高)→ 当前会话正在使用的路由 → profile 默认模型 的顺序选择,并去除重复路由;
  • 仅在传输层失败时自动换用下一条路由重试一次;此类失败发生在生成之前,不额外消耗 token;
  • 失败信息本地化,并列出已尝试的 provider/model,同时说明这是宿主的模型请求出错,而非插件本身的问题。

Fix: the plugin previously always called the profile default model. On a machine where that route was unreachable (while the conversation itself worked), the box showed the host's raw DeepSeek Messages transport failed. Route selection now tries the route pinned in the row config first, then the route the current session is using, then the profile default, with duplicates removed; it retries once on a transport failure only; and the error message is localized and names the routes tried.

v0.3.0 — 术语速查(选中后在原处解释,附 token 用量)

Choose a tag to compare

@ashz555 ashz555 released this 11 Oct 06:51

在 DSH 对话中选中一个术语,点击选区旁的 搜索 按钮,就地查看该术语的解释:基本含义、用途、常见用法,并附带本次回答的 token 用量。解释通过旁路模型调用完成,不占用当前会话的轮次与上下文。

Select a term in a DeepSeek Harness conversation, press the Search button beside it, and read the explanation in place — meaning, purpose, usage — with the token cost of that answer.

  • 旁路调用:不写入会话日志、不进入 Agent 上下文、不打断当前任务。
  • 领域自适应:Host 半边以当前会话的标题与读者发送的消息判断术语所属领域。
  • 框内不提供追问输入;按 Esc、点击 × 或点击框外关闭。

安装

dsh plugin --profile <profile 名称> add dsh-term-glossary

或直接从本 Release 的预构建包安装:

dsh plugin --profile <profile 名称> add https://github.com/ashz555/dsh-term-glossary/releases/download/v0.3.0/dsh-term-glossary-0.3.0.tgz

本包的 package.json 声明了 dsh.bundle,因此可被 dsh plugin add 与插件市场直接安装。