dsh-ui-session-archive
已验证dsh-ui-session-archive · v0.1.8 · MIT · Web 界面
Session archive manager for the dsh web GUI: sidebar entry plus an archive panel to view, restore, open, and permanently delete archived sessions.
安装
dsh plugin add dsh-ui-session-archive 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
说明文档
dsh-ui-session-archive
DSH Web GUI 的会话归档管理器插件(双面:host 命令 + browser UI)。
管理已归档的会话:归档 / 查看 / 恢复 / 打开 / 永久删除。
快速开始
npm 安装(已发布,推荐):
dsh plugin --profile web add --config.minimumReleaseAge=0 dsh-ui-session-archive
本地源码安装(开发调试,需先构建):
cd packages/dsh-ui-session-archive
pnpm install
pnpm run build
# 在插件目录内运行,file:$PWD 自动展开为当前绝对路径:
dsh plugin --profile web add file:$PWD # file: 而非 link:(见下)
安装后重启 dsh web 进程,侧边栏「新会话」下方出现「会话归档」入口即生效。
一键测试流程:本地改代码后,可用仓库内 build-install-restart.bat 自动完成 构建 → 安装(含
file:安装与 release-age 门禁绕开)→ 重启 dsh web → 校验:.\build-install-restart.bat # 构建+安装+重启+校验 .\build-install-restart.bat nobuild # 跳过构建,仅重装
能力
| 操作 | 说明 |
|---|---|
| 归档当前会话 | 从侧边栏分组隐藏(DSH 内置能力),日志与槽位保留 |
| 查看 | 面板列出全部已归档会话(标题 / 更新时间 / 工作区) |
| 恢复 | 取消归档,会话回到侧边栏分组 |
| 打开 | 直接打开归档会话查看历史 |
| 永久删除 | 仅限已归档且非运行中的会话;删除日志目录与附件,不可恢复(有二次确认) |
⚠️ 必须用
file:而不是link::link:只建 junction、不安装本包依赖,运行时 import 按仓库 物理路径解析(@deepseek-ai/dsh-settings等解析不到),dsh web启动即崩溃(ERR_MODULE_NOT_FOUND)。file:会把包复制进 profile 的 node_modules 并安装其 dependencies(详见 docs/installation.md)。 Windows cmd 中$PWD不会展开(PowerShell / bash 才有效)。在插件目录内用 PowerShell 运行上面的命令即可; 若必须用 cmd,请改用绝对路径(file:<完整路径>)。
限制(摘要)
- 恢复/删除经插件内置 RPC 通道直达 host,无需打开会话(旧版命令代理需当前会话作执行代理,已弃用);
- 删除仅限已归档且非运行中(无未结束回合)的会话;
- 归档会话仍可能出现在 host 的 session.search(上游行为)。
文档
| 文档 | 内容 |
|---|---|
| docs/architecture.md | 双面插件架构、模块职责、数据流、桥接与删除设计决策 |
| docs/installation.md | 安装 / 手动挂载 / 卸载 / 生效 |
| docs/usage.md | 用户操作指南(归档/查看/恢复/打开/删除)与边界行为 |
| docs/protocol.md | /session-archive 命令协议:语法、语义、返回、错误清单、调用示例 |
| docs/development.md | 开发者指南:目录结构、构建、扩展点、发布 |
| docs/troubleshooting.md | 故障排查:症状 → 原因 → 处理 |
原理一句话
DSH 已内置归档集合(WorkspaceRegistry.archivedSessionIds)但无 UI、无 unarchive、无删除 API;本插件 host half 注册全局命令 /session-archive 补齐恢复与删除(桥接 registry 公开写链 + node fs 物理删除),browser half 提供侧边栏入口与归档面板,经插件内置 RPC 通道(connection.rpc)与全局命令联动。详见 docs/architecture.md。
版本
包名 dsh-ui-session-archive(原 dsh-client-ui-session-archive 已删除弃用,以新名重新发布)· 目标 DSH 0.1.0-rc.7 · MIT · 已发布(当前版本见 package.json)。
当前版本包含的修复:
- H1:host
inject补sessions/agents(delete 的「运行中」校验必然执行),sessionPersistence保持可选ctx.get() - H2:删除前校验会话目录名 === sessionId,防止误删
- L1:
hasOpenTurn对缺失 events 的 fail-safe 兜底 - M2:删除后归档清理失败返回显式半删除错误(不再静默)
- M3:新增会话 id 格式校验(兼容真实
session-<uuid>与纯 UUID) - L3:面板挂载改为 MutationObserver 自愈(等待中心列出现)
- M4:docs/architecture、development、installation、protocol 与实现对齐
- N1-N4:侧边栏入口与任务看板样式对齐(内边距/间距/圆角/折叠态/选中高亮)、exports 精简、build.mjs 本地 tsc、apply-guard 全局符号守卫
- P1:修复面板定位错误(改名时 dataset 键未同步,
data-dsh-session-archive-view与 CSS 的data-dsh-ui-session-archive-view不匹配,导致position:absolute;inset:0失效、面板叠在输入框下方)。现hostEl.dataset/entry.dataset键统一为dshUiSessionArchive*,与选择器对齐,面板正确铺满对话区 - P2:侧边栏入口图标与任务看板尺寸对齐(SVG 18×18、外框圆角矩形 12×11 与任务看板一致;入口行高 36px、图标容器 24×24、折叠态 36×36 圆形)