github / github/copilot-cli

Conversation-tree navigation: keybindings + TUI overview for forked/branched sessions (depends on #2058 / #1313)

Đang mở
#3,091 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:input-keyboard area:sessions
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Mô tả

### Describe the feature or problem you'd like to solve

Once Copilot CLI gains the ability to fork or branch sessions (#2058, #1313), users will accumulate a **tree** of related sessions sharing common ancestry. Today there is no way to:

- see that tree
- jump back to a parent or sibling fork
- navigate among forks without copy-pasting session GUIDs from `~/.copilot/session-state/`

I'm filing this as a separate issue because it is downstream of #2058 / #1313 — it has no value until at least one of those lands — but it would be a shame for the navigation gap to surface only after fork/branch ships and people start asking "now what?". This issue is the placeholder so the design can be considered alongside the fork/branch work.

### Proposed solution

Three primitives, each useful independently:

**1. `Ctrl + [` — jump to previous fork (in-order tree traversal)**
**2. `Ctrl + ]` — jump to next fork (in-order tree traversal)**

In-order traversal means: walking the conversation tree as a depth-first sequence, the bindings move you one step left/right through that sequence. From any node, `Ctrl + [` takes you to the most recently visited sibling/ancestor; `Ctrl + ]` advances to the next.

**3. `Ctrl + |` (or any equivalent chord) — show the conversation tree as a navigable TUI**

A full-screen tree view where each node is a session, edges show fork-points, the current node is highlighted, and arrow keys + Enter let you navigate to any session. Bonus: show summary, last activity, and turn count next to each node.

The exact key bindings are a bikeshed detail — what matters is that all three primitives exist (left, right, overview).

### Example prompts or workflows

1. **Fork-and-return.** I'm 30 turns into a refactor; I `/fork` to debug an unrelated NuGet issue. After fixing it, `Ctrl + [` takes me back to the parent without me digging through `--resume ` history.

2. **Compare two approaches.** I `/branch` twice to spike Approach A and Approach B from the same starting point. `Ctrl + [` and `Ctrl + ]` flip me between them so I can A/B compare without losing context.

3. **Recover from disorientation.** I've been forking liberally for an hour and have lost track of where the "main thread" of work actually lives. `Ctrl + |` shows me the whole tree, I navigate to the trunk, and pick up where I left off.

### Additional context

- Depends on #2058 (`/fork`) and/or #1313 (`/branch`). Without one of those landing, this issue is moot.
- Prior art: Vim's jump list (`Ctrl + o` / `Ctrl + i`) is the closest existing keybinding model for "back/forward through positions".
- The TUI overview is the navigation analogue to `git log --graph` for conversation context.
- Today the workaround is `ls ~/.copilot/session-state/` + manually inspecting checkpoint files. Functional, but fundamentally not navigation.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách đọc các issue về fork/branch phụ thuộc #2058 và #1313, sau đó xem xét workaround cho trạng thái phiên trong ~/.copilot/session-state/ và workflow --resume. Được coi là hoàn tất khi người dùng có thể chuyển đến fork trước và fork sau, đồng thời mở được tổng quan dạng cây hội thoại có thể điều hướng, trong đó phiên hiện tại được làm nổi bật và có thể điều hướng đến một phiên khác.

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

Đánh giá

Công nghệ
shell
Lĩnh vực
cli
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

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.