Skip to content

[Feature] 会话列表支持归档与「已归档会话」入口 #1380

Open

Description

@what-my-names

提交前确认 / Before submitting

  • 我已经搜索过现有 Issue,确认这不是重复建议。
  • 我已经移除截图、配置和示例中的密钥及隐私信息。

当前版本 / Current version

1.12.2

使用环境 / Environment

设备型号:OPPO OPD2101
Android / 操作系统版本:Android 14
浏览器及版本(如适用):不适用

功能领域 / Feature area

Chat / 对话与消息

要解决的问题 / Problem or motivation

Operit 的会话列表目前只有「删除」这一种清理方式,没有中间状态:

  • 项目做完后,那批会话不想删(里面还有当时的记录、附件、token 统计),但留在列表里会一直挤占空间;
  • 只能靠置顶救几个常用的,列表一长还是没法用;
  • 想在删之前先「收起来」,现在做不到。

现有的导出功能不能替代归档:导出是生成文件,会话还在列表里;而且导入回来会变成新会话,原位置、分组、绑定关系都没了。

使用场景 / Use case

  • 一个项目结束后,把该项目的二十多个会话归档,主列表只留当前在用的几个;
  • 过两周需要查当时的记录,进「已归档」找到该会话,只读预览确认是它,再「取消归档」放回原分组继续聊;
  • 有些会话只是临时调试用的,不想删(怕以后还要查),归档后眼不见为净。

期望方案 / Proposed behavior

参考 DeepSeek Harness 的归档设计(dsh-tauri-archive):

1. 归档入口

  • 会话列表条目的操作菜单里增加「归档」,与现有的重命名、删除并列。
  • 如果当前正在查看被归档的会话,归档后自动切到会话列表,不留在已归档会话里。

2. 归档后的表现

  • 会话从主列表消失,不删除任何消息、变体、附件、token 统计和分组信息。
  • 归档状态持久化,重启后仍然有效。
  • 归档成功后在界面顶部给一个短提示(Snackbar),带「撤销」,避免误操作。
  • 撤销后会话回到原来的分组和排序位置。

3. 「已归档会话」入口

  • 位置建议放在会话列表顶部/侧栏底部(设置入口附近),名称「已归档」,带数量角标。
  • 进入后按原分组/工作区分组展示,每组显示会话数量,支持折叠;折叠状态记住。
  • 支持按标题搜索;能按最近更新排序。
  • 点击某条可只读预览最近若干条消息,不取消归档就能确认内容。
  • 每条提供「取消归档」和「彻底删除」两个操作;「彻底删除」需二次确认,并明确提示不可恢复。
  • 取消归档后,会话回到原分组;如果原分组已被删除,回落到默认分组。

4. 与现有逻辑的边界

  • 归档会话默认不参与主列表搜索;在「已归档」页内搜索只搜归档会话。
  • 归档会话是否继续参与自动摘要 / 记忆更新,需要维护者定。建议默认暂停(归档的语义是「这段先放下」),并在归档时提示;但这属于附加项,不影响主线。
  • AI 工具里的 chat_manager 可以顺带增加 archive_chat / unarchive_chat / list_archived_chats,方便用户让 AI 整理会话;不做也不影响本需求。

可接受结果 / Expected outcome

  • 会话条目菜单里能看到「归档」
  • 归档后该会话从主列表消失,消息、变体、附件、统计均未丢失
  • 归档时出现带「撤销」的提示,点撤销能恢复原位置
  • 会话列表存在「已归档」入口,并显示归档数量
  • 已归档页按原分组展示,可折叠、可搜索标题
  • 已归档会话支持只读预览,无需先取消归档
  • 取消归档后会话回到原分组,可继续正常对话
  • 「彻底删除」有二次确认,并提示不可恢复
  • 归档状态在重启后保持
  • 升级后已有会话默认全部为非归档,无需手动迁移

截图、草图或参考图 / Screenshot, mockup or reference

暂无截图。参考行为见 DeepSeek Harness 的归档文档:
https://dshtauri.mintlify.app/zh-CN/built-in-plugins/dsh-tauri-archive

替代方案与补充信息 / Alternatives and context

  • 替代方案一:导出 JSON 再删除。恢复时要重新导入,会生成新会话,丢失原分组、绑定和列表位置。
  • 替代方案二:改名加前缀手动标记。会话还在列表里,列表照样被占满,且无法按状态筛选。
  • 实现线索:ChatEntity 目前没有归档字段,需要新增 archived: Boolean = false 并做 Room 迁移;会话列表查询处过滤 archived = false;归档页复用现有分组结构即可。ChatHistorySelector 已有一整套会话条目操作回调,归档入口可以挂在这里。
  • 可选的加分项:归档页支持按工作区(workspace 字段)筛选。Operit 已有 workspace 字段,成本不高。

Activity

  1. what-my-names commented on Oct 18, 2026

    @what-my-names
    Author

    补充:这条建议对应的标签是 feature-request、area:chat、area:ui-layout。Issue 作者账号没有仓库 tag 权限,麻烦维护者顺手加一下。

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions