What do you want? (你想要什么?)
希望历史对话列表支持以下功能:
- 批量删除:可以多选会话,一次性删除多个。
- 归档:可以把不常用的会话归档,从主列表隐藏,在单独的「已归档」视图中查看和恢复。
- 置顶:可以把常用/重要会话置顶,不会被后续对话顶下去。
Why? (为什么?)
在对话分析页面时,会遇到需要解释的名词和概念,这时候需要单开对话避免污染主对话上下文,这些单开的对话可能只用几次就需要删除。随着这些对话越来越多,主对话会被挤到下面去。
之后单开的对话已经不需要了,需要手动一个个删除,比较麻烦。
How? (怎么做? — 可选)
这三个功能都需要同时支持单条和批量两种模式:
单条操作:每条会话 hover 时在右侧显示操作按钮(删除、归档、置顶),和现在已有的删除按钮类似。
批量操作:共用一套选择模式:
- HistoryPanel 顶部增加「编辑」按钮,点击进入选择模式
- 列表项左侧出现复选框,顶部有全选/取消全选
- 底部固定操作栏显示「已选 N 项」,以及删除、归档/取消归档、置顶/取消置顶按钮
删除:
后台已有的单条 session_delete 逻辑(校验 UUID → VFS 工作区清理 → DB 删除 → 销毁 agent)可以直接复用。单条依然走现有 session_delete IPC,批量走新的 session_batch_delete IPC 循环调用即可。DB 层 Dexie 原生支持 bulkDelete,不需要额外工作。
归档:
SessionRecord 加一个 archived 字段,DB schema 升级到 v2 加 archived 索引,已有记录补默认 false。HistoryPanel 加「全部 / 已归档」切换标签页。单条和批量统一走 session_archive / session_unarchive IPC(都接受 sessionIds: string[]),后台更新 DB 字段即可——归档不碰 VFS 工作区和 agent,只是列表视图隐藏。
置顶:
SessionRecord 加一个 pinnedAt 字段(可为 null,非 null 表示置顶,值为置顶时间戳),DB schema 加 pinnedAt 索引。列表排序改为置顶的排在前面(按 pinnedAt 倒序),非置顶的按 updatedAt 倒序跟在后面。单条和批量统一走 session_pin / session_unpin IPC(都接受 sessionIds: string[]),后台更新 pinnedAt 字段即可。
Alternatives considered (考虑过的替代方案 — 可选)
No response
What do you want? (你想要什么?)
希望历史对话列表支持以下功能:
Why? (为什么?)
在对话分析页面时,会遇到需要解释的名词和概念,这时候需要单开对话避免污染主对话上下文,这些单开的对话可能只用几次就需要删除。随着这些对话越来越多,主对话会被挤到下面去。
之后单开的对话已经不需要了,需要手动一个个删除,比较麻烦。
How? (怎么做? — 可选)
这三个功能都需要同时支持单条和批量两种模式:
单条操作:每条会话 hover 时在右侧显示操作按钮(删除、归档、置顶),和现在已有的删除按钮类似。
批量操作:共用一套选择模式:
删除:
后台已有的单条
session_delete逻辑(校验 UUID → VFS 工作区清理 → DB 删除 → 销毁 agent)可以直接复用。单条依然走现有session_deleteIPC,批量走新的session_batch_deleteIPC 循环调用即可。DB 层 Dexie 原生支持bulkDelete,不需要额外工作。归档:
SessionRecord加一个archived字段,DB schema 升级到 v2 加archived索引,已有记录补默认false。HistoryPanel 加「全部 / 已归档」切换标签页。单条和批量统一走session_archive/session_unarchiveIPC(都接受sessionIds: string[]),后台更新 DB 字段即可——归档不碰 VFS 工作区和 agent,只是列表视图隐藏。置顶:
SessionRecord加一个pinnedAt字段(可为 null,非 null 表示置顶,值为置顶时间戳),DB schema 加pinnedAt索引。列表排序改为置顶的排在前面(按pinnedAt倒序),非置顶的按updatedAt倒序跟在后面。单条和批量统一走session_pin/session_unpinIPC(都接受sessionIds: string[]),后台更新pinnedAt字段即可。Alternatives considered (考虑过的替代方案 — 可选)
No response