Skip to content

【需求】工作区项目内无法删除与本项目无关的临时会话(归档 ≠ 删除) #294

Description

@redfireblade

需求背景

在 DSH Desktop 中,每个工作区(项目)会持续积累会话。实际使用中,我经常会在某个项目的会话里处理一些与本项目无关的临时问题(例如安装软件、排查系统环境等一次性任务)。

这类会话的内容与本项目完全无关,完成后应当被删除,但当前没有任何删除功能,导致这个无关会话会一直留在该项目的会话列表中,越积越多,无法清理。

当前现状

  • Web GUI 的会话列表只有「新建 / 打开 / 继续」操作,没有删除入口。前端 RPC 端点仅有 session.list / create / prompt / cancel / follow / selectModel / models,不存在 session.delete
  • 现有「归档会话」功能(Issue 无法删除会话 #14 中官方答复为「已支持归档」)并不是删除
    • 实现上只是把会话 ID 追加进 archivedSessionIds 数组,在前端隐藏显示(见 dsh-workspacearchiveSession 实现);
    • 会话历史 JSONL 仍保留在磁盘(harness/sessions/ 下),不释放任何存储
    • 内容仍可被读取、恢复。
  • 社区已有 PR fix: add permanent session deletion #31(fix: add permanent session deletion)实现了完整的 session.delete(含确认对话框、保留工作区文件、停止并排空代理、同步移除到对端客户端),但未合并

为什么归档不能满足需求

维度 归档 真正删除
会话历史 保留 永久清除
磁盘占用 不释放 释放
列表显示 隐藏(可恢复) 消失
清理「无关/临时」会话 做不到 可以

对「临时、与本项目无关」的会话而言,用户不需要保留、不需要恢复,只需要真正删除,让项目会话列表保持干净。归档隐藏不了「无关会话应当清除」这一需求。

期望

请考虑在 Web GUI 提供「删除会话」能力:

  1. 删除前有确认对话框,明确提示会永久删除会话记录、但保留工作区文件
  2. 对正在运行 / 被其他客户端占用的会话能安全处理(停止并排空代理,或给出明确拒绝);
  3. 删除后列表即时刷新,无需重新加载页面。

参考:Issue #14#14 已关闭)、PR #31#31 未合并)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions