Chuyển đến nội dung chính

dsh-ui-session-archive

Đã xác minh

dsh-ui-session-archive · v0.1.8 · MIT · Giao diện web

Session archive manager for the dsh web GUI: sidebar entry plus an archive panel to view, restore, open, and permanently delete archived sessions.

Cài đặt

dsh plugin add dsh-ui-session-archive

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Readme

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 injectsessions/agents(delete 的「运行中」校验必然执行),sessionPersistence 保持可选 ctx.get()
  • H2:删除前校验会话目录名 === sessionId,防止误删
  • L1hasOpenTurn 对缺失 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 圆形)