`/new` discards in-memory usage statistics without writing `session.shutdown` to `events.jsonl`
- 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
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