Skip to content

新会话启动时 context_window 段显示的是上一个会话的用量 #131

Description

@xxH7r

环境

  • CCometixLine v1.1.2(npm 安装,Windows x64)
  • Claude Code v2.1.211,Windows 11,Git Bash

问题

新开一个 Claude Code 会话、还没发任何消息时,context_window 段显示的不是占位符,而是同项目上一个会话结束时的上下文用量。

我这边的现象:启动后状态栏直接显示 29.2% · 292.1k tokens,但 Claude Code 自带的 /context 显示实际只用了 ~7.7k。

排查过程

  • 新会话的 transcript JSONL 已创建,但里面 0 条 usage 记录(还没发过消息);
  • 同项目目录下最近的一份 transcript 里有 246 条 usage 记录,最后一条加总(input + cache_read + cache_creation)= 291.6k,和状态栏显示的 292.1k 对上了;
  • 所以推测:当前 transcript 里找不到 usage 数据时,ccline 兜底去读了项目目录里最新的一份 transcript,把别的会话的数字当成了当前状态渲染。

复现步骤

  1. 随便一个项目,跑一个上下文占用比较大的会话;
  2. 退出,在同一个项目里重新 claude 开新会话;
  3. 在发第一条消息之前看状态栏:显示的是旧会话的用量。收到第一条回复后数字会自动恢复正常。

期望行为

transcript_path 指向的文件里还没有 usage 记录时,显示占位符(- · - tokens),而不是别的会话的数据。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions