QQQW114/dsh-archived-sessions
QQQW114★ 1JavaScript最后同步: 2026-08-14
—
README 摘要
dsh-archived-sessions 一个 DeepSeek Harness (DSH) 插件:在 Web UI 的「设置」面板里查看、恢复、以及彻底删除 已归档(隐藏)的会话 。 为什么需要它 DSH 的会话右键菜单有「归档会话」,但当前版本( 0.1.0-rc.6 ) 没有 查看或恢复已归档会话的入口—— dsh-client-ui-workspace 的 README 原文是 "No Session deletion or unarchive control" 。归档之后会话从侧边栏消失,且没有内置办法找回来。 本插件补上了这个能力,并且在「设置 → 已归档会话」里提供三个操作: - 列出 :显示每个已归档会话的标题、所属工作区、会话 id。 - 恢复 :把会话从归档集合移除,立即回到侧边栏。 - 彻底删除 :二次确认后,从归档集合移除、从工作区会话清单 detachSession 、并删除本地日志文件( session.jsonl.zstd ,不可恢复)。 所有操作都走宿主的持久化写入,会触发 domain/changed → 前端实时刷新, 无需重启 。 特性 - 零构建:纯 JavaScript,不需要 TypeScript / tsdown / typert-generator。 - 宿主侧走 Typert 网关的 SRC 模式 :只靠 typertRemote 绑定 + Remote 方法标记即可被自动发现,无需手写 manifest。 - 客户端 dsh.client bundle 挂载 TYPERT REMOTE 后,用 ctx.remote. . () 调用宿主,codec 只需一个 { parse(value) } 对象(不依赖 zod)。 目录结构 工作原理 宿主侧( lib/index.js ) ArchivedSessionsService 继承 @deepseek-ai/dsh-typert-protocol 的 TypertRemoteService ,其构造器会自动设置 typertRemote 绑定( { service, serviceKey, namespace } )。 因为纯 JS 无法在调用点产生 TC39 stage-3 装饰器的 context.addInitializer ,这里 手工构造 了装饰器上下文并调用 Remote(name) ,把方法标记注入 remoteMethods() 读到的私有 marker 表。Typert 网关的 SRC 发现据此把 archivedSessions/list 、 archivedSessions/restore 、 archivedSessions/removeSession 三个端点路由到本服务的方法。 关键点: - 服务通过 inject: ["work…
在 GitHub 查看完整 README →