Repository navigation
v0.4.1
基于上游 dream12347/dsh-session-manager v0.2.3(MIT)的衍生版本,在 DSH 0.2.1-rc.2 上验证。
变更
- 删除入口迁移到会话行菜单:移除对话顶部占据标题栏的红色「删除本对话」按钮,改为侧边栏会话行「…」菜单中的一项,与「置顶 / 重命名 / 分叉 / 归档 / 复制 Session ID」并列;二次确认、强制删除、失败提示的行为保持不变,删除成功后自动关闭菜单并刷新会话列表。对话顶部继续保留「对话管理」与「回收站」两个入口
- 文档截图更新:README 换用真实界面截图并逐张重写图注,图片改名为新文件名(旧路径受 GitHub 图片缓存影响可能仍显示旧图)
截图
1. 设置页 · 会话管理 —— 独立分栏、按工作区分组、行内操作、批量删除,底部回收站与「清空回收站」
2. 会话行「…」菜单 —— 置顶 / 重命名 / 分叉 / 归档 / 复制 Session ID 之下,独立分组的红色「删除本对话」
3. 会话管理抽屉 —— 对话顶部「对话管理」打开,「更多」收纳统计/文件夹/新聊天中继续,底部已归档与回收站
4. 通用设置 · 上下文压缩阈值 —— 17%–90%,保存即生效并对所有 Agent 预设统一应用
实现
- 菜单项注册在官方插槽
sidebar.workspaces.session.menu.item
id: dsh-delete-session-menu-item
order: 500 # 排在「复制 Session ID」(450) 之后
danger: true # 红色危险项
separatorBefore: true # 单独成组
- 组件使用官方
MenuItemButton,选中后通过注入的useMenuOpenState关闭菜单 - 会话标题与 ID 取自插槽 owner props(
sessionId/displayTitle)
包含的自 0.4.0 功能
- 一键清空回收站:回收站底部「清空回收站」,经
POST /dsh-session-manager/purge-all一次性永久删除全部条目与磁盘目录,失败条目保留以便重试 - 原生确认弹窗:所有
window.confirm/window.alert改为官方Modal(遮罩模糊、Esc 关闭、焦点归还、危险色按钮、等宽展示会话 ID) - 强制删除:常规删除失败时弹窗提供「强制删除」,跳过归档校验、按
~/.dsh/sessions/<project>/<id>兜底定位并移入回收站(仍可恢复) - 更宽的会话 ID 兼容:
od-<uuid>等非session-<hex>的 ID 不再报invalid-session-id - 路由注册崩溃修复:
webServer.register()对重复路由硬抛错,重挂载会重复注册 9 条路由且旧注册未释放,异常沿apply()逃逸使 DSH 启动失败;改为进程级路由表接管,冲突只记日志
安装
dsh plugin --profile <profile> add https://github.com/JeffKeeping/dsh-session-manager/releases/latest/download/dsh-session-manager.tgz或本地目录:dsh plugin --profile <profile> add /absolute/path/to/dsh-session-manager(link 安装,勿删除目录)。
插件市场
提交清单在 market-submission/JeffKeeping__dsh-session-manager.yml。



