feat(chat): tool-call chips and live peek status — chat and briefing bubbles now render the same tool-use status line and tool-call chips as the web app. Parses new tool_call SSE events and stores them on Message.toolCalls.
feat(chat): tappable tool-call chips — chips for notes, tasks, events, and projects are now wrapped in an InkWell and navigate to the created entity. Read-only tools stay visible but non-tappable.
feat(chat): stall watchdog + pull-to-refresh — SSE loop replaced with StreamIterator + 45s per-event timeout to catch silently-dropped mobile sockets. Added RefreshIndicator to the message list and an AppBar refresh button with inline spinner feedback. refresh() also clears isStreaming when the server-side message is complete, unfreezing the input after a stuck stream.
## Summary
- **feat(chat): tool-call chips and live peek status** — chat and briefing bubbles now render the same tool-use status line and tool-call chips as the web app. Parses new `tool_call` SSE events and stores them on `Message.toolCalls`.
- **feat(chat): tappable tool-call chips** — chips for notes, tasks, events, and projects are now wrapped in an `InkWell` and navigate to the created entity. Read-only tools stay visible but non-tappable.
- **feat(chat): stall watchdog + pull-to-refresh** — SSE loop replaced with `StreamIterator` + 45s per-event timeout to catch silently-dropped mobile sockets. Added `RefreshIndicator` to the message list and an AppBar refresh button with inline spinner feedback. `refresh()` also clears `isStreaming` when the server-side message is complete, unfreezing the input after a stuck stream.
This repo is archived. You cannot comment on pull requests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
tool_callSSE events and stores them onMessage.toolCalls.InkWelland navigate to the created entity. Read-only tools stay visible but non-tappable.StreamIterator+ 45s per-event timeout to catch silently-dropped mobile sockets. AddedRefreshIndicatorto the message list and an AppBar refresh button with inline spinner feedback.refresh()also clearsisStreamingwhen the server-side message is complete, unfreezing the input after a stuck stream.