Apollo now includes a comprehensive chat sessions and history management system that allows you to:
- Save and organize conversations with your repositories
- Switch between different chat sessions
- Resume previous conversations
- Automatically create new sessions when switching repositories
- All chat conversations are automatically saved to browser localStorage
- Sessions persist across browser sessions
- Up to 100 most recent sessions are stored
The Sessions Panel is located in the top-right navigation bar and displays:
- Total number of saved sessions
- Grouped sessions by time period (Today, Yesterday, Last 7 Days, Last 30 Days, Older)
- Session title, repository, timestamp, and message count
- Preview of the last message
- Click the "New Chat" button in the Sessions Panel
- A new session is automatically created when you select a repository for the first time
- When switching repositories, a new session is automatically created for that repository
- Click on any session in the Sessions Panel
- The conversation transcript will be loaded
- If the session is for a different repository, Apollo will automatically switch to that repository
- Hover over a session and click the edit (pencil) icon
- Enter a new title and press Enter to save
- Press Escape to cancel
- Hover over a session and click the delete (trash) icon
- Confirm the deletion in the dialog
- The currently active session is highlighted with a purple background in the Sessions Panel
- When viewing the welcome screen, the current session title is displayed
- Green indicator dot shows when connected to AI
- Session count badge shows total number of saved sessions
When you switch repositories:
- A new session is automatically created for that repository
- Previous session for the old repository is saved
- You can return to previous repository sessions at any time
When you load a session for a different repository:
- Apollo automatically switches to that repository
- The WebSocket connection is established for that repository
- Conversation history is loaded
Each session contains:
- ID: Unique identifier
- Repository: The GitHub repository (e.g., "starspacegroup/apollo")
- Title: Custom or auto-generated title
- Messages: Full conversation history with timestamps
- Created/Updated: Timestamps for session management
- Preview: Last message preview for quick reference
- Sessions are stored in browser localStorage under the key
apollo_chat_sessions - Maximum of 100 sessions are stored (oldest are pruned)
- Each message includes role (user/assistant/system), text, and timestamp
The session system uses Svelte stores:
sessionStore: Main store for session CRUD operationscurrentSession: Derived store for the active sessionallSessions: Derived store for all sessions sorted by update timecurrentSessionMessages: Derived store for current session messages
- Messages are automatically synced to the current session as they're sent/received
- Transcript updates are persisted in real-time
- Session metadata (title, preview, timestamps) is updated automatically
- Organize Your Sessions: Rename sessions with descriptive titles to easily find them later
- Regular Cleanup: Delete old or unnecessary sessions to keep your history manageable
- Repository-Specific Workflows: Each repository gets its own session automatically, keeping conversations contextually separate
- Quick Access: Use the Sessions Panel to quickly jump between different repository conversations
- Enter: Save session title when editing
- Escape: Cancel title editing
- Tab: Navigate through sessions panel
- Sessions are stored locally in the browser - clearing browser data will delete all sessions
- Sessions are not synced across different browsers or devices
- Maximum of 100 sessions are stored (oldest are automatically removed)
Potential future improvements:
- Cloud sync for sessions across devices
- Export/import session history
- Search within session history
- Tag/categorize sessions
- Share sessions with team members