chore: update app icons with new otter mascot#31
Merged
Conversation
…to API - Add ToolResultImage type and resultImages field to ToolCallInfo - Add extractImagesFromContent to message reducer for tool results - Create ToolResultImages component with thumbnail + fullscreen preview - Update GenericToolCall, BashToolCall, ReadToolCall to render images - Fix handleSend in workspace and chat screens to convert attachments to ImageContent and pass to prompt/steer/followUp API calls
- Remove SessionStreamConnection (per-session SSE) entirely - Single /api/stream SSE delivers all events for all sessions - Add POST /api/stream-active-session endpoint for per-connection active session tracking with 10s grace period on switch - Backend filters: active session gets full deltas, inactive sessions get everything except message_update and tool_execution_update - Per-connection inject channel for catch-up events on session switch - inject_hwm dedup prevents broadcast/catch-up overlap - Frontend: simplified PiClient with single _processEvent, per-session HWM dedup, history-first then active-session flow - Fix message_update reducer: don't fall back to completed assistant messages, always create new streaming message if none exists - Add SseConnectionRegistry with previous session grace period
Previously, subagent, read, and generic tool calls would remain expanded when viewing chat history. Now all tool calls follow consistent behavior: - Auto-expand while streaming or running - Collapse 400ms after turn completion (if not manually expanded) - Start collapsed when viewing history This matches the existing behavior of bash, write, and edit tool calls.
- Add active session tracking with timestamp - Auto-purge stale sessions after 30s - Fix SSE race conditions with sequence numbers - Improve stream event ordering and deduplication - Fix tool call expansion in history view - Add animated list item component for UI - Update chat sidebar with new sessions API - Improve workspace and session sheet layouts
- Backend computes turn stats at agent_end from event buffer - Scans tool_execution_start for paths, tool_execution_end for diffs - Calculates duration from agent_start timestamp - Only stamps assistant messages with stopReason=stop in history - Frontend reads stats from agent_end event and history responses - Removed all frontend-side turn stats computation - message_end now correctly updates non-streaming messages (stopReason fix) - Copy/Info toolbar only shows on final assistant messages - Fixed history load-more button not working (isLoadingOlderMessages race) - Stabilized handleLoadMore callback with useRef - Increased history page size to 50 - Replaced broken regex lookahead with starts_with in Rust - Removed regex crate dependency
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.