Repository navigation
Releases
Releases · lanqi677/dsh-learning-mode
v0.3.0 — 多语言(中文 / English)+ 真实使用例子
给 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。