需求背景
在 DSH Desktop 中,每个工作区(项目)会持续积累会话。实际使用中,我经常会在某个项目的会话里处理一些与本项目无关的临时问题 (例如安装软件、排查系统环境等一次性任务)。
这类会话的内容与本项目完全无关,完成后应当被删除,但当前没有任何删除功能 ,导致这个无关会话会一直留在该项目的会话列表中,越积越多,无法清理。
当前现状
Web GUI 的会话列表只有「新建 / 打开 / 继续」操作,没有删除入口 。前端 RPC 端点仅有 session.list / create / prompt / cancel / follow / selectModel / models,不存在 session.delete。
现有「归档会话」功能(Issue 无法删除会话 #14 中官方答复为「已支持归档」)并不是删除 :
实现上只是把会话 ID 追加进 archivedSessionIds 数组,在前端隐藏显示(见 dsh-workspace 的 archiveSession 实现);
会话历史 JSONL 仍保留在磁盘(harness/sessions/ 下),不释放任何存储 ;
内容仍可被读取、恢复。
社区已有 PR fix: add permanent session deletion #31 (fix: add permanent session deletion)实现了完整的 session.delete(含确认对话框、保留工作区文件、停止并排空代理、同步移除到对端客户端),但未合并 。
为什么归档不能满足需求
维度
归档
真正删除
会话历史
保留
永久清除
磁盘占用
不释放
释放
列表显示
隐藏(可恢复)
消失
清理「无关/临时」会话
做不到
可以
对「临时、与本项目无关」的会话而言,用户不需要保留、不需要恢复,只需要真正删除 ,让项目会话列表保持干净。归档隐藏不了「无关会话应当清除」这一需求。
期望
请考虑在 Web GUI 提供「删除会话」能力:
删除前有确认对话框,明确提示会永久删除会话记录、但保留工作区文件 ;
对正在运行 / 被其他客户端占用的会话能安全处理(停止并排空代理,或给出明确拒绝);
删除后列表即时刷新,无需重新加载页面。
参考:Issue #14 (#14 已关闭)、PR #31 (#31 未合并)。
需求背景
在 DSH Desktop 中,每个工作区(项目)会持续积累会话。实际使用中,我经常会在某个项目的会话里处理一些与本项目无关的临时问题(例如安装软件、排查系统环境等一次性任务)。
这类会话的内容与本项目完全无关,完成后应当被删除,但当前没有任何删除功能,导致这个无关会话会一直留在该项目的会话列表中,越积越多,无法清理。
当前现状
session.list / create / prompt / cancel / follow / selectModel / models,不存在session.delete。archivedSessionIds数组,在前端隐藏显示(见dsh-workspace的archiveSession实现);harness/sessions/下),不释放任何存储;session.delete(含确认对话框、保留工作区文件、停止并排空代理、同步移除到对端客户端),但未合并。为什么归档不能满足需求
对「临时、与本项目无关」的会话而言,用户不需要保留、不需要恢复,只需要真正删除,让项目会话列表保持干净。归档隐藏不了「无关会话应当清除」这一需求。
期望
请考虑在 Web GUI 提供「删除会话」能力:
参考:Issue #14(#14 已关闭)、PR #31(#31 未合并)。