优化上下文事件更新的处理逻辑

This commit is contained in:
xintaofei
2026-03-13 22:07:29 +08:00
parent bf14a99168
commit 0c843ec14e
3 changed files with 131 additions and 2 deletions

View File

@@ -65,8 +65,12 @@ export function StatusBarTokens() {
getConnSnapshot
)
const liveContextUsed = activeConn?.usage?.used ?? null
const liveContextMax = activeConn?.usage?.size ?? null
const rawLiveUsed = activeConn?.usage?.used ?? null
const rawLiveSize = activeConn?.usage?.size ?? null
// Treat live used=0 as "no data" so we fall back to sessionStats —
// Claude Code sends used=0 for synthetic local commands (/context etc.)
const liveContextUsed = rawLiveUsed != null && rawLiveUsed > 0 ? rawLiveUsed : null
const liveContextMax = rawLiveSize != null && rawLiveSize > 0 ? rawLiveSize : null
const contextUsed =
liveContextUsed ?? sessionStats?.context_window_used_tokens ?? null

View File

@@ -975,6 +975,12 @@ function connectionsReducer(
case "USAGE_UPDATE": {
const conn = state.get(action.contextKey)
if (!conn) return state
// Ignore usage updates that reset used to 0 when we already have
// valid data — these come from synthetic responses for local commands
// like /context and would overwrite the real context window usage.
if (action.usage.used === 0 && conn.usage && conn.usage.used > 0) {
return state
}
if (
conn.usage?.used === action.usage.used &&
conn.usage?.size === action.usage.size