rebuildChatFromMessages() called populatePinnedFromMessages() which re-populated the pinned zone with text already present in the chat history, causing visible duplication during session state changes. Additionally, the spinner interval at 80ms generated ~12.5 renders/s for a purely cosmetic animation, and clearOnShrink triggered unnecessary full redraws during pinned-zone transitions. - Remove populatePinnedFromMessages() from rebuildChatFromMessages() and add pinnedMessageContainer.clear() instead — the streaming lifecycle in chat-controller manages pinned content during active work - Reduce spinner interval 80ms→200ms with render-batching that skips redundant renders when streaming already triggers requestRender() - Debounce clearOnShrink: defer full redraw by one render tick so pinned-clear→new-streaming transitions avoid a wasted full redraw - Increase notification widget safety-net timer 5s→30s since the store subscription already handles push-based updates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| daemon | ||
| mcp-server | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||
| rpc-client | ||