Files
goose/ui
spencrmartin 15ca67afb1 fix: implement persistent tab state to survive navigation
🐛 Problem Fixed:
- Tab state was lost when navigating from tabbed chat to home and back
- Users would lose all their chat tabs when switching between routes
- Tab state was stored in local component state, lost on component unmount

✨ Solution Implemented:
- Created TabContext for global tab state management
- Integrated localStorage for automatic tab state persistence
- Refactored TabbedChatContainer to use context instead of local state
- Added TabProvider wrapper to App.tsx for global state access

🚀 Benefits:
- Tab state now persists across route navigation
- Tabs survive app restarts via localStorage
- Maintains all existing functionality (keyboard shortcuts, etc.)
- No breaking changes to existing tab behavior
- Better user experience with persistent workspace

Files modified:
- ui/desktop/src/contexts/TabContext.tsx (new)
- ui/desktop/src/components/TabbedChatContainer.tsx (refactored)
- ui/desktop/src/App.tsx (added TabProvider)

Testing: ✅ Tabs persist when navigating to home and back
Testing: ✅ Tab state survives app restart
Testing: ✅ All tab functionality still works (create, close, switch)
Testing: ✅ Concurrent sessions still work independently
2025-11-20 11:51:16 -05:00
..