Skip to content

# Feature Request: 对话历史管理功能(删除 / 重命名 / 导出) #16

@CSU-LishenZhang

Description

@CSU-LishenZhang

问题描述

DeepCode VSCode (标识符 vegamo.deepcode-vscode 版本0.1.18,在cursor中使用)插件目前没有任何对话历史管理功能,这在长期使用中带来了很大不便。

缺少的核心功能

1. ❌ 无法删除对话记录

  • 插件界面中没有"删除对话"的任何入口
  • 对话列表随使用时间不断累积,无法清理旧的、不再需要的对话
  • 对话 JSONL 文件占用大量磁盘空间(目前已累积 ~700KB)

2. ❌ 无法重命名对话

  • 所有对话的标题自动生成,但有些不够精准
  • 无法手动修改对话标题来方便后续查阅

3. ❌ 无批量管理能力

  • 无法批量选择删除多条对话
  • 无法按时间、大小、状态等排序

用户实际痛点

以我自己的使用为例,三个月内累积了多条对话,这些旧对话无法通过插件界面清理,用户只能通过手动操作底层文件来删除:

# 用户被迫手动操作底层文件来删除:
rm ~/.deepcode/projects/*/<session-id>.jsonl
# 并且还要编辑 sessions-index.json 移除对应条目

这不仅操作复杂,而且容易误删数据。

对话存储机制(供开发参考)

通过逆向分析,对话数据存储在:

~/.deepcode/projects/<project-hash>/
├── <session-id>.jsonl       # 每条对话一个文件,每行一条消息
├── sessions-index.json      # 索引文件,包含摘要、token用量、状态等元信息
└── file-history/            # 文件历史

删除一条对话需要:

  1. 删除对应的 <session-id>.jsonl 文件
  2. sessions-index.jsonentries 数组中移除对应条目

建议实现方案

方案 A:右键菜单(最小改动)

在对话列表的每条记录上增加右键菜单:

  • 删除:删除该条对话(带确认弹窗)
  • 重命名:允许编辑对话标题
  • 复制ID:方便调试

方案 B:对话管理面板(推荐)

在侧边栏增加一个独立的对话管理视图,支持:

  • 删除(单条 / 批量选择)
  • 重命名
  • 按时间 / 大小 / 状态排序
  • 搜索过滤
  • 导出为 Markdown / JSON
  • 确认弹窗(防止误删)

方案 C:设置页面管理

在插件设置页面增加对话管理入口,提供 CRUD 操作。

优先级建议

功能 优先级 理由
删除单条对话 P0 高 最迫切需求,避免磁盘膨胀
重命名 P1 中 提升检索效率
批量管理 P2 低 锦上添花

预期收益

  1. 用户体验提升:不再需要手动操作底层文件
  2. 磁盘空间管理:及时清理无用对话
  3. 信息检索效率:自定义命名方便后续查找
  4. 降低误操作风险:统一的管理界面比手动删文件更安全

感谢 DeepCode 团队!期待对话管理功能的加入 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions