# DSH 安装与验收指南 ## 前置条件 - Node.js(本地已验证 v22) - `pnpm`(`dsh plugin` 是 pnpm 转发器;`npm install -g pnpm`) - DeepSeek Harness 0.1.0-rc.7(已 pin,见 COMPATIBILITY.md) - 一个可用的 DSH web profile(`~/.dsh/profiles/web`) ## 构建 ```sh npm install npm run build:dsh # 生成 dist/dsh/client.js + host 文件 npm run check # 重新构建并运行完整 DSH 测试 ``` ## 安装到 web profile ```sh # 直接从 GitHub 安装 npx @deepseek-ai/dsh plugin --profile web add github:ZanderKong/look-here # 或者在本仓库根目录安装本地 checkout npx @deepseek-ai/dsh plugin --profile web add . # 确认插件层出现 npx @deepseek-ai/dsh --profile web --dump-config # 应包含: # # == look-here # - id: look-here-dsh # name: look-here ``` 重启 web 服务(静态客户端插件在服务启动时加载): ```sh npx @deepseek-ai/dsh --profile web # 打开 http://127.0.0.1:3080 ``` ## 更新已安装的插件 ```sh npm run build:dsh npx @deepseek-ai/dsh plugin --profile web add . # 重新链接 # 重启 web 服务 ``` ## 快速诊断 浏览器 DevTools console 执行: ```js await __LOOK_HERE_DSH_DIAGNOSTICS__.health() await __LOOK_HERE_DSH_DIAGNOSTICS__.selfTest() await __LOOK_HERE_DSH_DIAGNOSTICS__.quickExplainJobs() await __LOOK_HERE_DSH_DIAGNOSTICS__.storage() ``` `health()` 应显示 `overlayMounted / sessionDetected / composerAvailable / quickExplainAvailable` 全 true。 ## 手动 E2E 验收(对应 PARITY_CHECKLIST.md) 1. 新建 DSH 会话 2. 让 Agent 输出几段 Markdown 3. 选中一个词 4. 确认圆点 5. 点击(短按) 6. 确认 streaming Quick Explain(模型走当前会话的 provider/model) 7. 追问 8. 保存 9. 重新选到相同词 10. 检查 history hint 11. 选第一段文字 12. 添加 annotation 13. 选第二段文字 14. 添加 annotation 15. 检查 basket 16. 打开 drawer 17. 修改 annotation 18. 拖 basket 到 composer 19. 检查 draft 20. 确认没有自动发送 21. 手动发送 22. 设置页 → 插件卡片:语言/手势/保存范围/主题色 即时生效 23. 设置卡片 → 查看历史解释 / 查看历史批注(scope pill:全部/当前会话/当前工作区) 24. reduced-motion(系统开启减弱动效时无 morph 动画) ## 已知限制(v1) - 引用锚点、native ReferenceInsert 属于后续 enhancement(见 ARCHITECTURE.md 末尾) - Quick Explain RPC channel `/look-here` 仅允许 loopback authority(默认 127.0.0.1 部署) - 历史数据存 localStorage(容量约 5MB);仅当前会话/工作区/全局三个 scope