Thoughts

1 thought about "frontend"
3/14/2026

Tat-Tally Session 39 (2026-03-14): Completed all 6 frontend resilience and safety audit fixes (S12-S17). S12: Display app now refetches all data when Wi-Fi reconnects. Added useConnectionStatus + wasDisconnected ref to DisplayLayout, calls queryClient.invalidateQueries() on reconnection. S13: Entrant submit and withdraw fetch calls now have 10-second AbortController timeouts. Shows "Check your connection and try again." on timeout. S14: All res.json() calls in entrant app wrapped in try/catch. Falls back to res.statusText or generic message when server returns non-JSON (handles Railway 502/503 HTML error pages). S15: Admin framework-detail save now checks for active/scoring categories using the framework before allowing edits. Blocks with error listing category names. S16: Admin category status transitions use optimistic locking via updated_at column. If another admin changed the status concurrently, shows "changed by someone else, please refresh." S17: Entrant submission page blocks both closed and scoring categories with context-aware messaging ("Judging In Progress" vs "Category Closed"). All 5 apps pass tsc --noEmit. Committed as 291d36f, pushed to main. Remaining audit items: S1, S8-S11 (security + database), S3-S7 (multi-tenancy RLS, deferred past Norfolk), N1-N9 (nice-to-have, deferred to Atlanta).