Cowork: Context compaction permanently removes scrollable conversation history from UI
Bug Description
When a Cowork session's context window fills up, context compaction replaces the full conversation history with a summary. This is irreversible — all prior messages disappear from the scrollable chat interface. The user loses the ability to scroll back and review what was discussed, what decisions were made, and what the AI actually said.
The full transcript is preserved in a JSONL file on disk, so the data isn't lost — it's just no longer rendered in the UI. The rendered chat history is coupled to the model's context window when it should be independent.
Why This Matters
For long, multi-step technical sessions — architecture discussions, code reviews, debugging workflows — the conversation is the working document. Users refer back to earlier exchanges to recall exact wording, revisit rejected approaches, or confirm what was agreed. Losing that history mid-session breaks the user's ability to work effectively.
The user-facing contract of a chat interface is that you can scroll back through what was said. Violating that silently, with no warning and no opt-out, is unexpected behavior.
Current Workaround Limitations
The raw transcript is preserved in a JSONL file on disk, but:
- It's a machine-format log buried in an internal path — not a readable conversation the user can scroll through
- The AI can parse and re-present it, but that produces a reconstruction, not the original thread
- Re-presenting the transcript costs additional context tokens
Expected Behavior
The full scrollable conversation history should be preserved in the UI even when context compaction occurs. The rendered chat history should be retained independently of the model's context window.
Suggested Approach
Decouple the UI's rendered message history from the model's context window. Compaction should only affect what the model sees, not what the user can scroll through.
Environment
- Product: Cowork (research preview)
- Platform: Desktop app
This issue has 13 comments on GitHub. Read the full discussion on GitHub ↗