Move ConsentBanner rendering into the locale layout so next-intl context is always available (prevents missing provider errors).
fix(activity-feed): use dark styling for disabled state
Avoid white disabled cards so the feed never appears as a white/transparent block after reload.
test(e2e): assert nav text changes on locale switch
Strengthen i18n test to verify translated labels.
Co-authored-by: dennis <dennis@konkol.net>
Use next-intl translations instead of reading NEXT_LOCALE cookie once, so banner text updates immediately when switching languages.
fix(activity-feed): make loading UI match dark theme
Avoid the white loading card on hard reload by using the same dark styling as the normal feed.
Co-authored-by: dennis <dennis@konkol.net>
Disable initial animations for the feed's fallback UIs so a hard reload can't leave the component stuck small/transparent before any state updates.
Co-authored-by: dennis <dennis@konkol.net>
Read tracking preference after mount instead of during initial render to prevent SSR/client divergence that can leave the feed stuck in its initial (small/transparent) styles after page reload.
Co-authored-by: dennis <dennis@konkol.net>
Avoid shared dev rate-limit bucket for n8n status and fall back to a stable offline state when the status call fails, preventing the widget from getting stuck in the small translucent loading UI.
- Improve localStorage access in ActivityFeed, ChatWidget, and AdminPage with try-catch blocks to handle potential errors gracefully.
- Update performance tracking in AnalyticsProvider and analytics.ts to ensure robust error handling and prevent failures from affecting user experience.
- Refactor Web Vitals tracking to include error handling for observer initialization and data collection.
- Ensure consistent handling of hydration mismatches in components like BackgroundBlobs and ChatWidget to improve rendering reliability.
- Add diagnose-production.sh script for comprehensive production diagnostics
- Add fix-production.sh script for automatic production issue resolution
- Add PRODUCTION_TROUBLESHOOTING.md documentation with step-by-step guides
- Remove eye icon from ActivityFeed header (keep only X button for minimize)
- Improve error handling and network connectivity checks
- Fix ChatWidget tooltip text being cut off (add z-index and shadow)
- Fix ChatWidget header text overflow with truncate classes
- Add loading state for ActivityFeed so it's visible on production while fetching
- Ensure ActivityFeed shows even when data is loading
- Remove status footer section that displayed Discord status
- Status information (online/offline/dnd/away) is no longer shown
- Activity feed now only shows coding, gaming, and music activities
- Add toggle button to enable/disable activity tracking
- Store tracking preference in localStorage
- Change 'Do Not Disturb' to 'Nicht stören' (German)
- Add better status text translations (online, offline, away)
- Show disabled state when tracking is off
- Stop fetching activity data when tracking is disabled
refactor: modify layout to use ClientOnly and BackgroundBlobsClient components
fix: correct import statement for ActivityFeed in the main page
fix: enhance sitemap fetching logic with error handling and mock support
refactor: convert BackgroundBlobs to default export for consistency
refactor: simplify ErrorBoundary component and improve error handling UI
chore: update framer-motion to version 12.24.10 in package.json and package-lock.json
test: add minimal Prisma Client mock for testing purposes
feat: create BackgroundBlobsClient for dynamic import of BackgroundBlobs
feat: implement ClientOnly component to handle client-side rendering
feat: add custom error handling components for better user experience
- Implemented ActivityFeed component to display real-time user activity including coding, music, and chat interactions.
- Added GooFilter and BackgroundBlobs components for enhanced visual effects.
- Updated layout to include new components and ensure proper stacking context.
- Enhanced Tailwind CSS configuration with new color and font settings.
- Created API route to mock activity data from n8n.
- Refactored main page structure to streamline component rendering.