- Modified loadChatHistory() to check for active project before fetching all sessions
- When active project exists, use project.sessions instead of fetching from API
- Added detailed console logging to debug session filtering
- This prevents ALL sessions from appearing in every project's sidebar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implement localStorage persistence for closed session and project tabs.
When users close tabs, they now remain closed after page refresh.
Changes:
- session-tabs.js: Add closedSessions tracking with localStorage
- project-manager.js: Add closedProjects tracking with localStorage
- Filter out closed tabs on load
- Persist state whenever tabs are closed
Fixes issue where closed tabs would reappear on page refresh.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace blocking confirm() dialog with custom non-blocking modal to prevent
browser warning issues when users have "don't show warnings" enabled.
Changes:
- Add showConfirmModal() method with Promise-based async modal
- Update closeSession() to use non-blocking modal
- Update deleteSession() to use non-blocking modal
- Add complete CSS styling for confirmation modal
- Support keyboard (Escape key) and click-outside to close
- Responsive design for mobile devices
- Dark theme matching existing UI
Fixes issue where close button completely stopped working after browser
blocked confirm() dialog and user selected "don't show warnings".
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 2 of enhancement plan:
- Created project-manager.js for project-level organization
- Created session-tabs.js for session-level organization
- Created project-tabs.css with responsive design
- Added tab structure to index.html
- Cache bust: v1769083200000
Features:
- Project tabs organize sessions by working directory
- Session tabs show all sessions within active project
- Context menu for rename/duplicate/delete/close
- Visual indicators for active/running sessions
- Responsive design for mobile
Co-Authored-By: Claude <noreply@anthropic.com>