- Introduced a new graph tab view with dedicated handling for file tabs.
- Updated tab navigation logic to support switching between regular and graph tabs.
- Added a new prop `allowSingleTabClose` to the TabBar component for improved tab closing behavior.
- Refactored existing tab management functions to accommodate the new graph tab functionality.
Cmd+K / Ctrl+K opens a spotlight-style search dialog that searches
knowledge files (by content and filename) and chat history (by title
and message content). Results are grouped by type with filter toggles
preselected based on the active sidebar tab.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Changed userId from connectedAccountId to a static value 'rowboat-user'.
- Enhanced error logging to include detailed error information in JSON format.
connected-accounts UI
This refactor simplifies OAuth storage/IPC and updates the Electron UI
to use the new client-facing contract. OAuth state is now persisted per
provider with tokens, optional clientId, and an error string. A new oauth:getState
IPC returns only client-facing state (connected + error), and the UI renders
error/reconnect flow based on that.
Core changes
- Replace OAuth config with providers { tokens, clientId?, error? }
and add zod-based migration from legacy token maps.
- Persist Google clientId after successful OAuth and keep error state
in repo.
- Surface provider errors from refresh/credential failures in Google +
Fireflies.
- Add oauth:getState in IPC, returning client-facing config; remove
old status wiring in the UI.
UI changes
- Switch renderer status checks to oauth:getState and derive connected/error
from config.
- Add alert dialog for account issues and update copy to “Connected
accounts”.
- Provide “View connected accounts” CTA that opens the Connectors popover.
- Add shadcn alert-dialog component and Radix dependency.
Notes
- Adds @radix-ui/react-alert-dialog and shadcn wrapper.
- pnpm-lock updated accordingly.
Add a stream error event type to the shared schema and wire runtime handling to
convert provider payloads into a concise string format. When a stream error is
seen, emit a Run error event, preserve partial output, and stop the turn to
avoid additional tool execution.
In the renderer, display errors inline as assistant messages with destructive
styling and trigger a toast for immediate visibility. Include error events when
loading run history so prior failures are visible.
- improve how chat history is shown on UI
- add time stamp to past chats
- imrove icon look and placement in title bar
feat:
- add new chat icon to title bar
The renderer previously filtered run events by the active runId, which meant
run-processing-start for a newly created or non-active run could be dropped.
That caused the thinking indicator to miss on subsequent chats and lost live
streaming context when switching between runs.
This change keeps only minimal background state:
- a Set of runIds currently processing (driven by run-processing-start/end)
- a per-run streaming buffer for assistant/reasoning deltas
All run events are now observed; non-active runs only update the minimal
structures. When a run is selected, its conversation is loaded as before and
any in-progress buffer is used to seed the streaming UI. Buffers are cleared
on final assistant message, run end, stop, or error.
The chat history list now shows a processing indicator per run.
Tests:
- cd apps/x && npm run deps
- cd apps/x/apps/renderer && npm run build
- Resolve workspace-relative and /tmp paths in shell:openPath and shell:readFileBase64 IPC handlers
- Update assistant instructions to only use filepath blocks for files that already exist
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>