Skip to content

fix(sessions): reset token counts to 0 on /new (#1523)#1542

Merged
steipete merged 1 commit intoopenclaw:mainfrom
robbyczgw-cla:fix/session-reset-token-counts
Jan 24, 2026
Merged

fix(sessions): reset token counts to 0 on /new (#1523)#1542
steipete merged 1 commit intoopenclaw:mainfrom
robbyczgw-cla:fix/session-reset-token-counts

Conversation

@robbyczgw-cla
Copy link
Copy Markdown
Contributor

@robbyczgw-cla robbyczgw-cla commented Jan 23, 2026

Summary

Fixes TUI showing stale token counts (e.g., 92k) after /new session reset, when the actual count should be near 0.

Problem

After /new reset:

Point TUI tokens session_status
Immediately after /new 92k ❌ 21k
After 1-2 exchanges 21k → 16k 17k
After convergence 17k 17k ✅

The 92k appears consistently after reset regardless of previous session size.

Root Cause

  1. sessions.reset creates a new entry but omits inputTokens/outputTokens/totalTokens instead of explicitly setting them to 0
  2. TUI doesn't clear its local sessionInfo immediately — shows cached values until refreshSessionInfo() completes

Changes

1. Backend (src/gateway/server-methods/sessions.ts)

const nextEntry: SessionEntry = {
  // ... existing fields ...
  // Reset token counts to 0 on session reset (#1523)
  inputTokens: 0,
  outputTokens: 0,
  totalTokens: 0,
};

2. TUI (src/tui/tui-command-handlers.ts)

case "new":
case "reset":
  try {
    // Clear token counts immediately to avoid stale display (#1523)
    state.sessionInfo.inputTokens = null;
    state.sessionInfo.outputTokens = null;
    state.sessionInfo.totalTokens = null;
    tui.requestRender();

    await client.resetSession(state.currentSessionKey);
    // ...

Testing

  • npm run lint — 0 warnings, 0 errors
  • tsc --noEmit — passes

Related


🤖 AI-Assisted

  • Tool: Claude (Opus 4.5) via Clawdbot
  • Testing: Lightly tested (lint + tsc pass, no runtime test)
  • Understanding: Yes — sessions.reset was creating new entries without token fields, causing fallback to stale cached values; TUI held onto old sessionInfo until async refresh completed

Fixes #1523

- Set inputTokens, outputTokens, totalTokens to 0 in sessions.reset
- Clear TUI sessionInfo tokens immediately before async reset
- Prevents stale token display after session reset

Fixes #1523
@steipete steipete self-assigned this Jan 24, 2026
@steipete steipete merged commit 511a0c2 into openclaw:main Jan 24, 2026
18 of 22 checks passed
@steipete
Copy link
Copy Markdown
Contributor

Landed via temp rebase onto main.\n\n- Gate: pnpm lint && pnpm build && pnpm test\n- Land commit: e2065e8\n- Merge commit: 511a0c2\n\nThanks @robbyczgw-cla!

dustin-olenslager pushed a commit to dustin-olenslager/ironclaw-supreme that referenced this pull request Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TUI shows stale token count after /new reset

2 participants