liangmianya/dsh-synapse
liangmianya/dsh-synapseDeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
🇬🇧 English: README.en.md
面向 DeepSeek Harness(DSH)的会话内待办事项插件。 在聊天窗口右上角加一个悬浮待办面板,把待办列表存储在服务器端(跨设备同步), 并在左侧会话列表中给还有未完成任务的会话打上一个 🎯 徽章。
尤其适合:一个会话里同时推进好几件事、需要把「还没做完的事」一直摆在聊天旁边的 DSH 用户。
纯插件 —— 不改 DSH 任何源码。

<textarea>);
Enter 提交,Shift+Enter 换行done/total 计数(如 2/4)。~/.dsh/dsh-session-todos/,
任意设备登录同一 DSH 都能读到同一份列表。# 本地路径(你 clone/放置该仓库的位置)
dshpm install /绝对路径/to/dsh-session-todos --profile web
# 或从 git 地址安装:
# dshpm install https://github.com/seeingrain/dsh-session-todos.git --profile web
安装后重启 dsh-web,或强刷浏览器(Ctrl+Shift+R)。
打开一个会话,点击聊天窗口右上角的 🎯 展开面板。
Enter 保存、Esc 取消、
Shift+Enter 换行。Esc 收起:面板展开时按 Esc 即收起(钉住中会先自动取消钉住)。
调色板开着时第一下 Esc 只关调色板、第二下才收起面板;焦点在输入框里时
(编辑任务 / 发送框打字)Esc 不接管,编辑框里先 Esc 取消编辑、再按一次才收起。插件分 host 与 client 两半,均为独立自包含。
lib/index.js)在 DSH 的 webServer 上注册路由,并把待办持久化为 JSON 文件:
POST /dsh-session-todos/api/get —— { sessionId } → { tasks }POST /dsh-session-todos/api/save —— { sessionId, tasks } → 保存并返回规范化列表POST /dsh-session-todos/api/summary —— 返回 { sessions: [{ sessionId, hasUnfinished }] }存储目录:~/.dsh/dsh-session-todos/<sessionId>.json(首次写入时创建)。
lib/client.js)shell.overlay 插槽,锚定聊天区 [data-conversation-scroll]。conversation.input → setDraft),追加到已有草稿。[role="treeitem"] 定位会话行,从 React 18 fiber
读取每个会话的 id,再按待办状态注入/移除 🎯 徽章。若 fiber 结构未来改变,会优雅降级
(徽章不渲染,其余功能不受影响)。{
"version": 1,
"sessionId": "session-…",
"updatedAt": 1787992050268,
"tasks": [
{ "id": "t-…", "text": "…", "done": false, "createdAt": 1787992050268, "updatedAt": 1787992050268 }
]
}
localStorage(按会话各一条);📌 钉住状态存 localStorage(全局一条;推完自动收起时会写回"未钉住")。
两者都只存在浏览器本地,不同步到其它设备。~/.dsh)。