DSH Hub
dsh-archived-sessions cover

Zephyr-vibe/dsh-archived-sessions

dsh-archived-sessions

UIWeb UI23 GitHub stars· updated 2026-08-21

DSH Session Manager: manage conversations, archive/restore, delete safely, open record folders.

Install

npx @deepseek-ai/dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-archived-sessions/tar.gz/refs/heads/main

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-archived-sessions DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-archived-sessions.svg)](https://dshhub.dev/plugins/dsh-archived-sessions)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Zephyr-vibe/dsh-archived-sessions, cleaned of badges and images.

dsh-archived-sessions(DSH 会话管理)

中文 | English

中文

一个 DSH Web 插件:在「设置」中提供会话管理,统一管理本机上的所有对话。

English

功能

  • 双标签页:所有对话(未归档)与归档会话
  • 视图切换:单列表或按工作区分组(无工作区归属的会话兜底归入「未分组」)
  • 按标题 + 相对时间浏览对话,最近的排在最前
  • 搜索框:按标题或 ID 实时过滤会话列表
  • 勾选 / 拖动批量勾选 / 全选 / 批量归档(记录保留)/ 批量删除(永久删除,带确认弹窗)
  • 「删除会话」入口已移至会话头部(适配 DSH 0.1.0-rc.8):rc.8 起官方侧边栏行菜单(⋮)不再开放插件注入点(只剩 重命名/分叉/归档),删除按钮改放在打开的会话标题栏(🗑 垃圾桶图标)——确认弹窗可细粒度勾选删除其下子对话 / 下载·产出文件 / 整个文件夹,默认只删会话本身
  • 归档页支持移出归档(回到所有对话)
  • 打开记录文件夹按钮:在系统文件管理器中打开所选会话的记录目录,跨平台(explorer / open / xdg-open)
  • 每行可展开详情(默认收起):占用空间、最后更新、活动统计(轮次、步骤、消息数、工具调用分布、fetch 记录)、产出/下载文件、父会话与子会话(分叉)
  • 子代理会话嵌套显示在父会话下方(缩进 + 「子代理」徽标);父会话被删除或缺失时自动浮出为顶层行
  • 删除父会话不会级联:子代理、分叉、下载/产出文件均保留,除非你显式勾选它们——避免误删
  • 当前打开的会话显示「当前会话」徽标,且不可删除

截图

<p>归档会话视图 / 子代理会话嵌套在父会话下</p> <p>详情面板(含活动统计、产出文件、关联对话)</p> <p>会话头部「删除会话」入口(rc.8 起删除入口移至会话头部)</p> <br /> <p>删除确认弹窗——可勾选删除其下子对话 / 下载·产出文件 / 整个文件夹</p>

安装

方式一:直接 tarball 安装

dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-archived-sessions/tar.gz/refs/heads/main

如果 pnpm 拦截构建脚本,在命令末尾加 --ignore-scripts:

dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-archived-sessions/tar.gz/refs/heads/main --ignore-scripts

方式二:让 agent 安装

告诉你的 DSH 智能体:

帮我把这个项目安装为插件:https://github.com/Zephyr-vibe/dsh-archived-sessions

agent 会下载项目、放入 profile 的 node_modules 并注册到 dsh.profile.bundles。

安装后重启 web 端,即可在「设置」中看到「会话管理」入口。

兼容性

  • 零配置:会话目录按官方 DSH 布局($DSH_HOME/sessions/<project-key>/<session-id>/)自动识别,无需核心补丁
  • 归档 / 恢复:基于官方 archiveSession 相同的 registry 状态原语实现
  • 删除不级联:只删除所选会话,子代理、分叉与文件均保留;运行中的会话拒绝删除(409)
  • API 仅信任本机请求(127.0.0.1 / localhost / ::1);仅使用官方公开 API(workspaceRegistry、sessionPersistence)

更新日志

0.1.5

背景:适配 DSH 核心 0.1.0-rc.8 更新。 rc.8 移除了官方 workspaceRegistry.deleteSession 与 sessionPersistence.remove,官方侧边栏会话行菜单(⋮)也只保留 重命名/分叉/归档 且不再开放插件注入点——本版本针对这些变化重做删除链路、补回删除入口,并修复升级过程中暴露的若干问题。

  • 修复:删除后 live 会话残留(核心 rc.8 兼容)——rc.8 移除官方删除原语后,旧版删除只做工作区 detach + 磁盘清理,会漏掉仍挂在 sessions store 里的 live 会话:删除后它依旧出现在列表,且因工作区已 detach 而落入「未分组」(重启后才会消失);现在删除前先 flush 全部目标会话日志,删除后用官方公开原语 SessionStore.liveEntryFor + detachEntered 摘除 live 会话(广播 session/disposed,持久化状态同步清理),并保持 0.1.3 的「只删自己 / 不级联」语义不变
  • 修复:删除会话后残留空文件夹——「删除文件」模式(filePaths)与「保留文件」模式(deleteFiles=false)之前只删记录 log、会话目录残留为空壳;现在所有删除分支最终都会清理会话目录(工作区产出文件不受影响),并等待 persistence retire 落定后兜底重删(防尾部 flush 自动 mkdir 重建目录)
  • 修复:点开会话详情面板崩溃变空——文件分组代码引用了浏览器端不存在的 node sep 变量(0.1.4 回归),当会话产出文件位于工作区内子文件夹时抛 ReferenceError: sep is not defined,被错误边界捕获后整个会话管理区域空白;已改为字面分隔符拼接
  • 「删除会话」按钮从行菜单移到会话头部(rc.8 适配)——rc.8 侧边栏行菜单(⋮)不再开放插件注入点(只剩 重命名/分叉/归档),删除入口改放到打开的会话头部操作区(官方 conversation.session.header.actions slot,自动携带 sessionId),带确认弹窗走 /archived/api/delete,发布后任何导入本插件的部署都能获得删除能力
  • 头部删除弹窗带细粒度选项:与设置面板一致——可勾选删除其下子对话(子代理,含孙级)与下载/产出文件(可展开查看具体列表、显示路径开关),默认都不勾选(只删会话本身)
  • 增强:头部删除弹窗显示可整删的文件夹节点——文件按父目录归组,工作区根以下的子文件夹显示为 📁 节点(可展开、可勾选整删),工作区根本身绝不可整删;details API 新增返回 cwd 作为根判断依据(取不到 cwd 时宁可不推导文件夹)
  • 修复:头部删除弹窗展开详情崩溃——baseName 原本定义在设置面板组件闭包内,头部删除弹窗访问不到(ReferenceError: baseName is not defined,slot 入口崩溃导致删除按钮消失);已提升为模块级函数,两处共用
  • 增强:检测 shell 命令创建的产出文件——详情/删除的文件列表原先只认 write/edit 工具的 file_path;现在也解析 pwsh/bash 的 Set-Content/Add-Content/Out-File/New-Item 及 >/>> 重定向中的路径(经 stat+isFile 存在性过滤,排除目录与残留 token)

0.1.4

…

Related plugins