概览
dsh-taskwatch
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- 界面文案目前是**中文**,还没有做多语言。 - `/taskwatch/session` 只覆盖内存中的活跃会话(见上)。 - 服务没有鉴权,**不要**把它直接暴露到公网;请自行在前面加一层。 - 会话、任务、子代理各列表最多渲染 40 条(GUI 面板是 30 条,且不像手机页那样提示 「还有 N 条未显示」),避免长会话把页面拖慢。工作流列表目前没有上限——宿主只收 运行中的工作流,通常很小,但契约上没有上界。 - 单条消息文本超过 4000 字符会被截断。 - **手机页只能对话,不能审批**。状态条会告诉你「有 N 件事在等你」,但批准/回答仍然 只能在桌面上做 —— 也可以直接在对话里让 agent 继续,那才是它的等价物。 - **子代理会话不出现在手机列表里**。它们是宿主内部的干活会话(`origin: subagent`), 没有父地址连日志都读不了(分页会报 `subagent Sessions require their durable parent address`),混进列表只会让"该点哪个"更难。 - 冷会话标题要现读一次事件日志(每个会话 1~2 次持久化读,实测约 0.5 秒/次)。宿主侧 缓存 10 分钟、手机侧缓存在 `localStorage`,所以只有第一次打开会话列表会花一两秒, 而且是每 4 个一批刷出来、不是干等到最后。 - 会话列表只补**最上面 12 条**的标题;再往下的仍显示目录名,滚动不会触发补取 (下次打开才会)。 - 手机页把会话 id 显示成前 10 位加省略号,但那**只是排版**:完整 id 仍在 `data-sid` 属性里,因为点击展开要用它。不要把短显示当成脱敏。 - 页面**还没有设 CSP**。它与 DSH Web GUI **同源**,而后者没有鉴权且默认 `danger-full-access`,所以任何一次漏转义都等于一台能执行任意命令的机器的入口。 目前模型正文、工具提示、工具名、会话标题这四处要么走 `textContent`、要么经 `esc()`,也有契约测试钉着 —— 但要说清那条测试的能力边界:它是**代理**, 盯的是已知的四个入口,不等于"全页面无 XSS"。加一层 `Content-Security-Policy` (脚本用 sha256 hash 而非 `unsafe-inline`)会是更结实的纵深防御。这是本项目 最值得做的下一步加固。
