Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[Feature]: 会话标签页右键增加"历史会话"快速切换

Đang mở
#3,518 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
57/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
react, rust, typescript
Lĩnh vực
desktop, frontend

Hướng nghiên cứu

Start in src/web-ui/src/app/components/panels/content-canvas/tab-bar/Tab.tsx around lines 175–211, then read the session listing API in src/apps/desktop/src/api/session_api.rs around line 445 and check how SessionMetadata identifies an assistant. Add the history menu only for agent tabs, load and filter that assistant’s sessions, and show a scrollable list ordered by recency. Done when selecting an entry switches sessions and updates the tab title, with large lists remaining responsive.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Problem / opportunity
Image

顶部标签栏的会话页右键目前只有「关闭」和「取消固定」。同时,同一个助理只保留一个会话标签页——打开另一个会话会把当前会话挤走,想切回之前的会话,必须退出标签栏、进入该助理的详情页、再重新选择那条对话。

这条路径在"多会话对照"的工作流里成本很高。典型场景:一边在一个会话里审代码或跑调查,一边需要回到几分钟前的另一条会话核对结论,当前必须走「标签栏 → 助理详情页 → 找会话 → 点开」,而不是在标签栏直接跳转。结果是标签栏看起来支持多会话,实际被"挤走"行为抵消了。

Proposed behavior

在会话标签页的右键菜单中增加一项「历史会话」:

点击后在标签附近展开一个可滚动的浮层,列出当前助理的历史会话(标题 + 时间,最近在前)
点击某条即切换到该会话,行为与从助理详情页打开一致,标签标题同步更新
该菜单项只对会话页显示,不出现在文件、代码编辑器、预览等非会话标签页上
浮层支持滚动;会话数量多时不能卡顿

Product surface

Desktop app

Details, examples, or constraints

实现位置(已对照 1.0.7 源码核对)

菜单项定义:src/web-ui/src/app/components/panels/content-canvas/tab-bar/Tab.tsx:175-211,在 tab-toggle-pin 项之后追加一项即可;仅当 mode === 'agent' 时显示(判据参考同文件 :129,非会话页按 tab.content.type 区分,见 :240/:253/:315)
数据无需新增后端命令:
list_persisted_sessions_page(src/apps/desktop/src/api/session_api.rs:445)已提供分页列表
search_session_content(同文件 :339)已提供内容检索,后续做浮层内搜索可直接接
需要先确认的约束

list_persisted_sessions 目前按工作区过滤(入参为 workspace_id / workspace_path / remote_connection_id / remote_ssh_host),不含助理维度。建议前端用 SessionMetadata 自带的助理标识做筛选,避免改动后端;仅当会话规模大到分页也吃力时,再考虑给请求加 agent_id。

验收标准

右键会话标签页,菜单出现「历史会话」;右键文件/编辑器/预览类标签页,不出现该项
浮层列出当前助理的历史会话,含标题与时间,最近在前,可滚动
点击条目后切换会话成功,标签标题随之更新
助理有大量会话时浮层仍可正常滚动与点击(分页或虚拟滚动,不冻结)
现有的标签关闭、固定、淘汰行为无回归
考虑过的替代方案

允许同一助理同时保留多个会话标签页:改动更重,与现有 canvas 淘汰模型(canvasStore.ts:200 的 firstUnpinnedIndex)以及"一个助理一个会话"的心智冲突,不作为本需求的目标
在标签栏常驻一个下拉框:长期占用横向空间;右键入口更轻,也够用
风险与兼容性

纯前端改动,不涉及数据模型与协议,无兼容性风险。有一个相关问题建议顺带确认(不阻塞本需求):手动 pin 的会话标签页是否应当豁免被挤走。

可选增强(二期)

浮层内支持按标题/内容搜索;浮层内直接重命名、归档或删除会话。

Ngôn ngữ chính
Rust
Star
2.3k
Fork
236
Merge trung bình
7 giờ 37 phút
Pull request đã merge (30 ngày)
244

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của GCWing/OpenBitFun

Tất cả issue của GCWing/OpenBitFun

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.