Frontend: readable API errors, no silent action failures (#284, #286) #290

Merged
logan merged 1 commits from fix/284-286-error-feedback into main 2026-10-25 21:39:16 -04:00
Owner

#286: request() throws C2ApiError with a human message (detail or status sentence); Discord parsers unchanged via legacyErrorText().

#284: every console.error-only action now shows the failure; rules tab no longer lies on load failure; confirms on Resolve / rule delete / trip delete. Reopen not built (manual resolve never sets resolved_at — lifecycle change, left on #284).

Frontend unverified — no Node on the authoring box (#207).

Closes #286

🤖 Generated with Claude Code

#286: request() throws C2ApiError with a human message (detail or status sentence); Discord parsers unchanged via legacyErrorText(). #284: every console.error-only action now shows the failure; rules tab no longer lies on load failure; confirms on Resolve / rule delete / trip delete. Reopen not built (manual resolve never sets resolved_at — lifecycle change, left on #284). Frontend unverified — no Node on the authoring box (#207). Closes #286 🤖 Generated with [Claude Code](https://claude.com/claude-code)
logan added 1 commit 2026-10-25 21:38:17 -04:00
#286: request() now throws C2ApiError — message is FastAPI's `detail` or a
plain sentence for the status (401/403/404/429/5xx), with toString() so the
many String(e) call sites read cleanly. status/body stay on the error; the
Discord parsers rebuild the legacy "C2 API error N: body" text via
legacyErrorText(), so their invite/code parsing is unchanged.

#284: Resolve, Regenerate summary, alert-rule toggle/delete/load,
Acknowledge, trip deletes, system delete and Restart OP25 now surface
failures (ErrorBanner where the page has one, alert() where the page
already uses it). Rules tab no longer says "No alert rules configured"
when the load failed. Confirms added for Resolve (no reopen path exists),
rule delete and trip delete. Reopen deliberately not built — manual
resolve doesn't set resolved_at, so reopening is a lifecycle change.

Frontend unverified: no Node on the authoring box (#207).

Closes #286

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logan merged commit 606b0a103c into main 2026-10-25 21:39:16 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/server-26#290