Skip to content

Small fixes batch: ErrorBoundary, race guard, SSE onerror, Pydantic validation, error state - #74

Merged
AdamRidene merged 2 commits into
mainfrom
small-fixes-2
Jul 18, 2026
Merged

Small fixes batch: ErrorBoundary, race guard, SSE onerror, Pydantic validation, error state#74
AdamRidene merged 2 commits into
mainfrom
small-fixes-2

Conversation

@AdamRidene

Copy link
Copy Markdown
Collaborator

Summary

Batch of small, focused fixes across frontend and backend.

Changes

Frontend

  • ErrorBoundary wraps entire app to prevent blank white screen on uncaught JS errors
  • Polling race condition - inflight ref skips load() if previous fetch is still pending
  • SSE onerror pushes a disconnected event to the activity log when EventSource drops
  • Error state - errored flag shows error banner when dashboard API calls fail

Backend

  • Pydantic input validation - FaultIn.fault_code requires min_length=1, max_length=50
  • Corrupt roster file - _load_roster wraps JSON parse in try/except to return empty list instead of 500

…alidation, error state

- ErrorBoundary wraps App to prevent blank-screen crash on uncaught JS errors
- Dashboard polling skips if previous fetch is still inflight (race condition fix)
- SSE onerror handler pushes a disconnected event to the activity log
- Added errored state + banner when dashboard fetch fails
- FaultIn.fault_code requires min_length=1, added max_length to all input models
- _load_roster wraps JSON parse in try/except to avoid 500 on corrupt file
sys.exit(1) at import time broke scripts that import settings but
don't use the LLM (e.g. run_pdf.py).  The existing per-function
fallbacks already handle missing keys gracefully.
@AdamRidene
AdamRidene merged commit 981256d into main Jul 18, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant