How sessions work
Each conversation belongs to a session that is persisted in a local SQLite database. Sessions are created automatically on the first request and titled from the first prompt:- If the prompt is 40 characters or fewer, the title is the prompt text verbatim.
- If the prompt is longer, the title is the first 40 characters followed by
....
ConversationPanel
The panel renders the full message list from the current session. Each message is displayed by theMessageItem component, which delegates to UserMessage or AssistantMessage based on the message role. Tool calls from an agentic run are shown inline as collapsible ToolCallItem entries.
Pinning the window
The toolbar at the top of the panel contains a pin button. Clicking it toggles the pinned state:- Unpinned (default): The window hides when it loses focus.
- Pinned: The window stays visible even after losing focus. The pin icon rotates −30 degrees to indicate the active state.
Message regeneration
Every assistant message has a regenerate action. Triggering it finds the preceding user message in history, re-submits that message’s content and attachments to the model using the current model override (if set), and appends the new response to the conversation.Dragging the window
The fade overlay area at the top of the panel (the toolbar region) acts as a drag handle. Click and drag there to reposition the window on screen. Interactive elements inside the toolbar (the pin button) are excluded from drag handling viadata-drag-exclude="true".
Scroll behaviour
The ConversationPanel scroll mode is controlled by theoutputScrollBehavior setting (Settings → General). Three modes are available:
- follow_output (default)
- stay_position
- jump_to_top
The panel automatically scrolls to the bottom as new content streams in. If you manually scroll up during streaming, auto-scroll is disabled and a scroll-to-bottom button appears. Auto-scroll resumes when you scroll back to the bottom.
Clearing a conversation
Press Escape when the search bar is empty and a conversation is open to clear all messages and return to the blank search state. The session data remains in the database — only the in-memory conversation state is reset. If the window was hidden while a conversation was open, and it remains hidden for 5 minutes or longer, the conversation is automatically cleared the next time the window is shown.Keyboard navigation in the conversation panel
Press Tab from the search bar to move focus to the conversation panel container. Once focused, the panel responds to:| Key | Action |
|---|---|
| ArrowUp / ArrowDown | Scroll the panel |
| PageUp / PageDown | Scroll by page |
| Home / End | Jump to the top or bottom |
| Space | Scroll down |