v1.0.228
🐛 Fix: Duplicate reply bubble when refreshing mid-generation
Refreshing the page while the agent was still generating could leave you with two copies of the same reply — the in-progress turn was rendered once from on-disk history and again from the live stream, side by side.
The cause was a race when a tab re-joins a running session: a Claude turn writes its "text + tool_use" message to disk before the run ends, so the just-loaded history already contained the in-flight turn, and the live snapshot replayed it a second time. The snapshot reconciliation now fingerprints the in-flight turn (by message and tool-call ids) and drops its disk copy before replaying, while leaving real prior history untouched. One turn, one bubble.