Skip to content

v0.4.1 — 删除入口迁移到会话行菜单

Latest

Choose a tag to compare

@JeffKeeping JeffKeeping released this 17 Oct 16:06
· 1 commit to main since this release

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。