Skip to content

Releases

v0.3.0 — 多语言(中文 / English)+ 真实使用例子

Choose a tag to compare

@lanqi677 lanqi677 released this 18 Sep 12:42

给 DSH(DeepSeek Harness)用的「学习模式」插件:
一棵由 AI 维护、可无限下钻的学习树 —— 节点带自动摘要、每轮对话自动带上"我在哪"、
点一下就能跳回讲它的那一轮对话。

这一版有什么

新增:多语言(中文 / English)

面板文案、每轮注入给模型的指令、9 个 outline_* 工具的 description 与回执、摘要提示词、
教程树种子 —— 全部跟随 DSH 当前语言;语言改了下一次调用就生效(工具 description 在挂载时
定型,需重启进程)。

  • 约定:中文原文就是字典的 key(代码里 t('尚未绑定学习树'),英文表
    EN = { '尚未绑定学习树': '...' },中文表由英文表的 key 恒等派生)。这样漏翻必被测试抓住,
    且中文路径零改动。
  • 语言来源优先级:浏览器上报的 active locale > settings 的 locale.preference > 默认中文。
  • 新增两套测试:test/i18n.mjs(key 齐全 / 英文值不含中文 / 占位符对齐 / 字典无重复 key)、
    test/i18n-host.mjs(真跑 store,验证英文下播种的教程树、每轮注入块、错误文案确实是英文)。

修复

  • 暗色主题下 NEW 角标"白底白字":--dsw-alias-brand-primary 是设计系统的中性 brand
    (暗色下近白 #f9fafb),配上硬编码 color:#fff 就成了白底白字 —— 角标渲染成一块没有文字的
    纯白色药丸。改用配对 token --dsw-alias-label-primary-foreground。
  • 面板顶部"整棵树的进度"多算 1:那里对合成根调了 rollup(),而 rollup 会把传进去的
    节点也算 1 个(行内角标要的正是"这一支含自己")。真机症状:同一棵树,下拉框写 1/45、
    进度行写 1/46。新增不含"自己"的 rollupAll。
  • 兜底翻译不插值 → {done}/{total} 占位符原样漏到界面上。
  • 英文会话下的摘要哨兵与前缀:英文提示词让模型回 NO_CONTENT,而插件只认「无内容」→
    会把字面量当摘要存下来;Summary: 前缀也清不掉。
  • outline_focus 的 "root" 哨兵:中文界面认「根」,英文参数说明承诺的 "root" 会失败。
  • test/mount.mjs 的时间炸弹:假会话时间戳写死成绝对时刻,系统时钟走过之后每次跑都挂
    (把时钟拨回去就 ALL PASS,属于测试自身的坑)。

文档

  • 根 README 中英双语(中文在上、English 在下),新增一个真实例子:
    4 轮对话 → 45 个节点的论文树(含真实摘要原文、两张面板截图、来源坐标跳转)。
  • 继续开发说明.md 增至 19 条真实踩过的坑,每条都有根因与判据。

安装

见 README 的「装起来(5 步)」。本仓库是插件源码 + 文档:
node_modules/ 是指向本机 harness 安装目录的软链,故意没有提交,换机器要重跑第 1 步。

测试

七套断言全部 ALL PASS:

node test/smoke.mjs      数据层
node test/mount.mjs      宿主半边集成(挂载 → 工具 → 摘要管道 → 注入 → 面板 RPC)
node test/summary.mjs    摘要管道
node test/client.mjs     浏览器半边渲染
node test/i18n.mjs       多语言完整性守卫
node test/i18n-host.mjs  英文行为
node test/probe.mjs      最小挂载探针

许可

MIT,见 LICENSE。