Skip to content

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

Description

@marcelhohn

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/<uuid>/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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions