Commit History

  1. fix: resolve infinite recursion in safeFetch

    Sasha
    ae9e59e
  2. feat: add rate limit warning banner (HTTP 429) to UI

    Sasha
    100b373
  3. Fix: handle non-array response for streams in App.jsx (prevent crash on rate-limiting)

    Sasha
    426c35b

  1. feat: fetch moderator avatars via API proxy with initials fallback

    Sasha
    977232b
  2. style: premium redesign of the Moderation tab matching reference

    Sasha
    5ba9d00
  3. fix: race condition for stats loading when user is authorized

    Sasha
    e547018
  4. refactor: modularize client App.jsx tab components and update Netlify CSP

    Sasha
    fdc7871
  5. feat: global roles migration, VIP badges, role backfiller script

    Sasha
    513eb9c

  1. Optimize KPI cards to request overall stats summary from /api/stats/summary and display true totals.

    Sasha
    91f86ea
  2. fix: prevent full-screen spinner on background stream polls

    Sasha
    78d6a51
  3. feat: host Google Fonts locally and tighten Content Security Policy

    Sasha
    11fc358
  4. feat: adjust center group threshold to 250 for chat words

    Sasha
    981287f
  5. fix: scale down word cloud rendering for low absolute frequency words

    Sasha
    7347031
  6. fix: enforce mobile 1-col layout and prevent horizontal blowout

    Sasha
    c2edfc7
  7. fix: resolve mobile layout swipe and word cloud scaling

    Sasha
    3cb06eb

  1. style: make dashboard layout responsive for mobile devices

    Sasha
    6b2bdd0
  2. chore: replace Render reference with generic cloud server reference in loading screen

    Sasha
    44dd8cf
  3. fix: use fully qualified API_BASE for avatar proxy requests

    Sasha
    c488ea7
  4. perf: optimize stats polling and add React ErrorBoundary for frontend crash fallback

    Sasha
    43d1175
  5. feat: prepare transition to decoupled hosting (Render + Netlify + Supabase)

    Sasha
    d9a03db