fix(ui): thread errorKind through dead-letter panel and app overview - #8780
fix(ui): thread errorKind through dead-letter panel and app overview#8780nghetien wants to merge 2 commits into
Conversation
The dead-letter-queue panel and the app overview page were the only two of six useApiResource/ErrorState call sites that never forwarded errorKind, so a network/timeout failure showed the generic "something went wrong" icon instead of the offline-specific one. Also add a missing onRetry handler to the overview's error state, matching the other call sites.
…sue-8668-a1-fix-ui-dead-letter
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-26 04:54:34 UTC
Review summary Nits — 3 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Visual previewClick any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. Scroll preview
A short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
This pull request changes UI/visual code but its screenshot evidence is incomplete. Every required viewport × theme combination needs its own before/after image pair in a labeled table row (e.g. "Desktop · Light | before | after"). Still missing: Desktop · Dark, Tablet · Dark, Mobile · Dark. Please resubmit with the remaining rows filled in. See https://github.com/JSONbored/loopover/blob/main/.claude/skills/contributing-to-loopover/SKILL.md for the exact format and examples. This is an automated maintenance action. |










The dead-letter-queue panel and the app overview page were the only two of six
useApiResource+ErrorState/StateBoundarycall sites inapps/loopover-uithat never forwardederrorKindto the shared state-view components. SinceErrorStatepicks its icon (WifiOffvsAlertTriangle) based solely on that prop, both surfaces always showed the generic "something went wrong" treatment even when the failure was a genuine network/timeout issue, misleading users into thinking it was a data/server problem. The overview page also had no retry action wired up for that error state.This threads
resource.errorKind/overview.errorKindthrough at both call sites, matching the pattern already used by the four correct siblings (notification-readiness-card.tsx,app.operator.tsx,app.analytics.tsx,app.runs.tsx), and adds the missingonRetryhandler to the overview's error state.Added regression tests at both call sites asserting a network-kind failure renders the
WifiOfficon (notAlertTriangle), a control case for a non-network kind, and a test that clicking retry on the overview error state re-triggers the fetch.Closes #8668
Validation
npx turbo run build --filter=@loopover/engine/mcp/miner/ui-kitnpm run actionlint,npm run typechecknpx turbo run lint --filter=@loopover/ui --filter=@loopover/ui-minernpm test,npm run test:workersnpm run ui:typecheck,npm --workspace @loopover/ui run test,npm --workspace @loopover/ui-miner run test