概览
dsh-client-ui-tweaks
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- **fiber 映射兜底** — 行↔会话精确映射依赖 React 内部结构(`__reactFiber$` 属性、`SessionNodeItem` props);若未来 DSH 构建改变它们,插件静默退回 (标题, 时间标签) 键匹配——当非家族会话同时撞上退化标题与时间桶时可能误认领一行。 - **CSS-module 选择器** — 行内子元素按本地名后缀查找(`[class*="_title"]`、`[class*="_time"]`),对哈希变化稳定、对本地名重命名不稳定。 - **K3 档的新鲜度** — kimi OAuth 凭据按设计只读;mimo-migration 之后令牌只在 Kimi Code 活跃时新鲜(约 15 分钟),K3 出题档经常被跳过、由 flash 档接棒。 - **内置失败是静默的** — DSH 的标题生成器失败时不发任何结果事件;插件只能从"沉默"推断失败(12s 等待)并兜底。 - **浏览器半人工验证** — 自动化套件经路由覆盖宿主半(29 个 spec,`npm test`);客户端 DOM 行为靠文档化的 CDP 检查清单(编辑流程、家族行、箭头、宿主路由),使用一次性测试会话执行。 - **未验证的安装路径** — 只验证了上述 `link:` 安装;npm 发布与 `dsh plugin` 安装未实测。 - **待做:对话过程信息折叠** — 用展开器折叠对话过程信息是一个已知方向,尚未实现。 ### Dev Note <details> <summary>维护者工作上下文</summary> 源码即运行时:包经 `link:` 从本目录加载,改文件就是改线上。`index.js` 改动需重启 DSH Desktop;`lib/client.js` 改动页面 reload 即生效。五处命名必须一致:`package.json` 的 name、`index.js` 导出、client 的 ModuleLoader id、`cordis.patch.yml` 的 name、profile 注册。 行匹配 key 的分隔符是不可见字符 `\001`——文本编辑器与搜索替换工具可能静默吞掉它;key 构造行的改动必须按字节核对。宿主数据目录优先解析 `~/.dsh`、回退到插件上两级。每次编辑后对两半各跑 `node --check`,保持每个提交可工作。 </details> **Runtime invariant:** 插件绝不改写对话内容——变更只经文档化的会话 API(`fork`、`rename`、`updateQueue`),fork 锚点始终落在前一回合的 `turn/end`,用户钉住的标题绝不覆盖。
