Overview
dsh-taskwatch
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
- 界面文案目前是**中文**,还没有做多语言。 - `/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`)会是更结实的纵深防御。这是本项目 最值得做的下一步加固。
