liangmianya/dsh-synapse
liangmianya/dsh-synapseDeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
会话删除(5 秒可撤销 + 回收站)与归档视图(查看、取消归档)。npm 包名 `@wsxwj123/dsh-session-manager`。
给 DeepSeek Harness Web GUI 补上会话管理能力:删除会话(5 秒可撤销 + 回收站式硬删)和归档视图(查看已归档会话 + 取消归档)。纯插件实现,不改官方源码。
~/.dsh/session-manager-trash/),可恢复。插件装进 DSH 的 web profile(dsh web 对应 web profile)。
包内已声明 prepare 构建脚本;pnpm 从 Git 安装时会自动执行 node build.mjs 生成 lib/。pnpm 10+ 默认拦截依赖的构建脚本,按 dsh-market 的提示把 pnpm 打印的 key 加入 profile 的 pnpm-workspace.yaml 的 allowBuilds 后重试即可。
# dsh-market 目标与此等价:
dsh plugin --profile web add "github:wsxwj123/dsh-plugins#path:/packages/dsh-session-manager"
lib/ 不入库,本地源码安装需要先构建:
cd dsh-plugins
pnpm install # 装依赖
node build.mjs # 或 pnpm -r build:生成 packages/dsh-session-manager/lib/
dsh plugin --profile web add "link:$PWD/packages/dsh-session-manager"
装完重启 dsh web,刷新当前 URL 即可看到侧栏「归档」入口和会话行的删除按钮。
装完务必检查
~/.dsh/profiles/web/node_modules/@deepseek-ai/是否被 pnpm 复制成物理目录(会导致核心包 Symbol 分裂、所有工具调用报错)。若是真目录,mv走它让插件回退到 fallback symlink,再重启。详见 deepseek-harness discussion #783。
/sm/* HTTP 路由 + 文件移动 + 归档域写入)。/sm/delete 把会话目录移入回收站。撤销窗口内存活在模块作用域,不随面板切换丢失;刷新页面只丢内存队列、不真删(数据安全)。header.cwd(权威元数据)做 projectKey/encodeSegment 编码定位会话目录,不依赖客户端快照里可能缺失的 cwd。/sm/* 路由挂载带 loopback 信任 fence(非本机 Host / 跨源 / 非同源 Origin 一律 403);清空回收站需 confirm:true。/sm/trash 给出 deletedAt(真实删除时间)与
deadline = deletedAt + 30 天,deadline 只是"可以考虑清理了"的参考值,到点不会
自动删任何东西——自动销毁会话数据正是回收站要消除的风险。清理入口只有用户手动
「清空回收站」(或单条「恢复」)。workspace 存储域。而官方 dsh-workspace 的归档集是
启动时读一次的内存缓存、且不监听域变更,所以:活着的页面会即时更新(apiproxy
监听 domain/changed),刷新页面或下一次官方归档写入会把该会话又标回已归档。
磁盘上的域文件是正确的——重启 dsh web 后以磁盘为准。要彻底修需要上游提供
unarchive API 或让 dsh-workspace 监听域变更。MIT