Fix context window displays as 0 when resuming conversations #1244
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes #1228
This PR fixes a bug where conversation stats (including
context_window) were being reset to 0 whenConversationStatusUpdateEvent(full_state) was sent after resuming a conversation.Root Cause
In
ConversationState.create(), line 189 was resetting stats after loading them from persisted storage. The sequence was:base_state.jsonConversationStats()(empty)When the full_state event was later sent, it included these empty stats, causing
context_windowand all other metrics to show as 0.Solution
Removed the line that resets stats on conversation resume. Stats loaded from persistence are now preserved, maintaining all accumulated metrics including:
context_windowprompt_tokenscompletion_tokensaccumulated_costTesting
Added comprehensive tests in
test_stats_persist_on_resume.pyto verify:context_windowvaluesAll existing tests continue to pass.
Changes
openhands-sdk/openhands/sdk/conversation/state.pytests/sdk/conversation/local/test_stats_persist_on_resume.pyCo-authored-by: openhands openhands@all-hands.dev
@xingyaoww can click here to continue refining the PR
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:cc5d761-pythonRun
All tags pushed for this build
About Multi-Architecture Support
cc5d761-python) is a multi-arch manifest supporting both amd64 and arm64cc5d761-python-amd64) are also available if needed