Skip to content

Commit 2a06218

Browse files
AvatarOS Developerclaude
andcommitted
fix(ux): dashboard improvements, markmap race condition, and RAG error handling
Dashboard UX: - Add logout button to UserInfoCard with red hover state - Extract UserInfoCard into separate component for modularity - Set width to 380px to match sidebar Markmap Fix: - Fix race condition where content arrives before initialization - Render content immediately after markmap loads RAG Error Handling: - Add content-type check to prevent JSON parse errors on 404 - Show clear "RAG endpoint not available" message - Change @ mentions to console.debug for cleaner logs Performance: - Fix Ollama discovery spam with correct hook file - Replace rate limiting with 5-second caching - Optimize rigging with public URLs for large files - Handle CalendarAI localStorage corruption gracefully 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 8450a10 commit 2a06218

40 files changed

+3156
-464
lines changed

CHANGELOG.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,46 @@
11
# Changelog
22

3+
2025-10-16: Dashboard UX, Markmap rendering fix, and RAG error handling improvements
4+
- **Logout button**: Added logout button to user info card in Dashboard header with red hover state for clear UX
5+
- **Component extraction**: Extracted UserInfoCard into separate component at `src/apps/home/components/UserInfoCard.jsx` for better modularity
6+
- **Width consistency**: Set UserInfoCard width to 380px to match sidebar width for visual balance
7+
- **Markmap race condition fix**: Fixed initialization race condition in MarkmapViewer where content would arrive before markmap finished loading, causing blank renders
8+
- **RAG error handling**: Added content-type check before JSON parsing to show clear "RAG endpoint not available" error instead of cryptic JSON parse errors
9+
- **@ mentions logging**: Changed @ mentions detection to use console.debug and simplified output format for cleaner logs
10+
- **Ollama discovery spam fix**: Fixed infinite re-fetching by removing `connectedServices` from useEffect dependencies in correct hook file
11+
- **Rate limit handling**: Replaced rate limiting with 5-second server-side caching to prevent "Too Many Requests" errors
12+
- **Rigging file size optimization**: Added smart submission using public URLs for files >30MB to avoid Data URI base64 overhead
13+
- **CalendarAI error handling**: Added graceful handling for corrupted localStorage data and 401/400 API responses
14+
15+
2025-10-12: OAuth scope fixes and comprehensive setup documentation
16+
- **Figma scope fix**: Changed Figma OAuth scope from `files:read` to `file_read` (correct format with underscore)
17+
- **OAuth setup guide**: Created comprehensive documentation at `docs/OAUTH_SETUP.md` with step-by-step instructions for GitHub, Notion, Figma, and Google services
18+
- **Configuration help**: Guide includes common errors, debugging steps, redirect URI requirements, and environment variable setup
19+
- **Production notes**: Added deployment checklist and security best practices
20+
21+
2025-10-12: Service connection fixes with proper OAuth redirects and error handling
22+
- **OAuth redirect fix**: Changed callback redirect parameter from `service` to `connected` to match Dashboard expectations
23+
- **Error handling**: Added comprehensive error toast notifications for OAuth failures (oauth_error, missing_params, invalid_state, token_exchange, callback_error)
24+
- **Service name formatting**: Improved service name display formatting (e.g., googleDrive → Google Drive) in toast messages
25+
- **Error parameter**: Changed error redirects to use `errorService` parameter to avoid conflicts with success flow
26+
- **User feedback**: All connection errors now show user-friendly toast messages with 7-second duration for better visibility
27+
- **Toast z-index fix**: Increased toast container z-index to 999999 to ensure toasts appear above all UI elements
28+
- **Real-time status updates**: Dashboard now calls fetchConnectedServices() after OAuth success to immediately refresh ServiceStatusWidget and AppCard states
29+
- **Reactive UI**: All service-dependent components (ServiceStatusWidget, AppCard) automatically update when connection state changes via Zustand reactivity
30+
31+
2025-10-12: Production-ready Dashboard with app launcher, service status, and toast notifications
32+
- **Dashboard home page**: Complete production-ready Dashboard at root `/` with personalized greeting, app launcher grid, category filtering, and service overview sidebar
33+
- **App manifests**: Centralized metadata for all 11 micro-apps (idealab, imagebooth, calendarai, empathylab, gesturelab, planner, archiva, workflows, chat, kanban, characterlab) with services, features, categories, icons, colors, and status
34+
- **Service integration**: ServiceStatusWidget shows connection status with progress bar, service icons (react-icons), and quick access to Settings; AppCard components disable apps when required services are missing
35+
- **Toast notification system**: Global toast system with Toast, ToastContainer components integrated into Zustand store; supports success, error, warning, info types with auto-dismiss, animations, and glassmorphism design
36+
- **OAuth feedback**: Dashboard detects OAuth success redirect params and shows toast notification confirming service connection (e.g., "GoogleDrive connected successfully!")
37+
- **Login redirect**: Users now land on Dashboard (`/`) after successful authentication instead of staying on previous URL
38+
- **Dashboard navigation**: Added home button to UserBar footer for quick navigation back to Dashboard from any micro-app
39+
- **Clean Dashboard layout**: AppSwitcher and UserBar are hidden on Dashboard page to provide a full-screen, distraction-free landing experience
40+
- **Routing updates**: Changed root route from redirect to Dashboard component; updated getAppIdFromPath to recognize 'home' app; added home routes to APP_ID_TO_SLUG and APP_ROUTE_MAP
41+
- **Responsive design**: Two-column layout (app grid + sidebar) with mobile breakpoints; category filter buttons; quick stats showing app counts; quick links to common actions
42+
- **Glassmorphism styles**: 800+ lines of production-ready CSS using design system tokens (--space-*, --color-*, --radius-*) with backdrop-filter, smooth transitions, hover effects, and accessibility features
43+
344
2025-10-11: CharacterLab Google Drive import with real-time optimization progress
445
- **Drive import endpoint**: `/api/drive/models` lists GLB files from specific folder (16MZ6twRIR6-wFcHmy8ZdU8Fikk5X9D5J); `/api/drive/import/:fileId` downloads and optimizes with Server-Sent Events progress streaming
546
- **Enhanced optimization**: 11-step gltf-transform pipeline (dedup, instance, palette, flatten, join, weld, simplify with meshoptimizer, resample, prune, sparse, textureCompress to WebP) achieves 70-90% size reduction
File renamed without changes.

0 commit comments

Comments
 (0)