github / github/copilot-cli

`/new`  discards in-memory usage statistics without writing  `session.shutdown`  to  `events.jsonl`

Đang mở
#3,994 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
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 bug

When starting a new session with  `/new`, the CLI abandons the current session's in-memory `modelMetrics` without triggering a  `session.shutdown` event. All token usage accumulated in the outgoing session is permanently lost — it is never written to `events.jsonl` and never appears in subsequent  `/usage`  output or  `/chronicle` queries.

The only reliable way to persist usage statistics is to exit the CLI entirely with Ctrl+D, which is disruptive when the intent is simply to start a fresh session.

### Affected version

GitHub Copilot CLI 1.0.67.

### Steps to reproduce the behavior

1. Start the Copilot CLI and do some work (several turns, tool calls, etc.)
2. Run  `/usage`  — note the token totals shown
3. Run  `/new`  to start a fresh session
4. In the new session, run  `/resume`  to return to the previous session
5. Run  `/usage` 

 `/usage`  shows zero / only the new segment's usage.
The previous session's token counts are gone.
Inspecting  `~/.copilot/session-state//events.jsonl`  confirms no  `session.shutdown`  event was written for the outgoing session.

### Expected behavior

 `/usage` after step 5 shows the token totals from before  `/new`  was called (same as step 2).

### Additional context

Running `/usage` before `/new` shows the numbers correctly — they exist in memory at that point. The data is only lost because  `/new`  does not flush the outgoing session before switching.

The fix appears straightforward: trigger  `session.shutdown` (and flush `modelMetrics` to  `events.jsonl`) for the outgoing session when `/new` is invoked, before initialising the new one — the same cleanup path that Ctrl+D takes.

**Environment**

• OS: Linux (dev container)
• CLI version: 1.0.67

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

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

Hướng nghiên cứu

Start at the CLI entry point for `/new` and compare its session-switching path with the Ctrl+D shutdown cleanup. Trace how `session.shutdown` and `modelMetrics` are written to `events.jsonl`; done means restarting with `/new`, resuming the prior session, and seeing the earlier totals in `/usage` and `/chronicle`.

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
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
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
68/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.