Skip to content

refactor(gui): react-doctor cleanup for Dashboard#473

Merged
Wibias merged 2 commits into
lidge-jun:devfrom
Wibias:fix/react-doctor-dashboard
Jul 26, 2026
Merged

refactor(gui): react-doctor cleanup for Dashboard#473
Wibias merged 2 commits into
lidge-jun:devfrom
Wibias:fix/react-doctor-dashboard

Conversation

@Wibias

@Wibias Wibias commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Split Dashboard into poll/data hooks and section components.
  • Poll via client-resource; status-checked fetches; loading finally hardening.
  • Preserves workspace/classic viewMode layout.

Stack

Test plan

  • bun x tsc -b in gui/
  • Dashboard: overview panels, settings/shadow-call saves, update check dialog

@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Wibias, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 42 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5f7bea8c-b45c-44a4-baea-8bcd70ceff4a

📥 Commits

Reviewing files that changed from the base of the PR and between 803807a and 7d3aa3a.

📒 Files selected for processing (12)
  • gui/src/pages/Dashboard.tsx
  • gui/src/pages/dashboard-core-poll.ts
  • gui/src/pages/dashboard-dialogs.tsx
  • gui/src/pages/dashboard-models-section.tsx
  • gui/src/pages/dashboard-overview-head.tsx
  • gui/src/pages/dashboard-overview-panels.tsx
  • gui/src/pages/dashboard-overview-section.tsx
  • gui/src/pages/dashboard-overview-sections.tsx
  • gui/src/pages/dashboard-providers-section.tsx
  • gui/src/pages/dashboard-shared.ts
  • gui/src/pages/use-dashboard-data.ts
  • gui/tests/dashboard-contracts.test.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the chore label Jul 25, 2026
chatgpt-codex-connector[bot]

This comment was marked as resolved.

Wibias added 2 commits July 26, 2026 03:48
Preserve optional injection/effort state and cached models on transient failures, isolate usage parse errors from core health, keep update-check loading across latest_unavailable retries, and satisfy empty-body JSON typing after the foundations merge.
@Wibias

Wibias commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed Codex review on the rebased branch (--onto upstream/dev, dropped 9c7e922e foundations — already on dev via #466).

Fixed

  • dashboard-core-poll.ts: keep prior injection/effort UI when /api/injection-model fails; throw on non-OK /api/models so cache is retained; isolate usage JSON failures from core error
  • use-dashboard-data.ts: startup-health generation / latest-wins vs stale core polls; keep update-dialog loading through latest_unavailable retries (no finally clear)
  • dashboard-contracts.test.ts (+ page-tabs UI): point contracts at extracted modules; align Dashboard with upstream page-tabs / hash routing / MemoryObservabilityCard after rebase

Skipped

  • client-resource slow-poll abort — file not in this PR diff (foundations already on dev)

Verify

  • cd gui && bun test tests/dashboard-contracts.test.ts tests/dashboard-tabs.test.ts → 10 pass
  • bun x tsc -p tsconfig.app.json --noEmit → clean
  • bun run lint → clean

HEAD: 7d3aa3a9

@Wibias
Wibias force-pushed the fix/react-doctor-dashboard branch from 17aae28 to 7d3aa3a Compare July 26, 2026 01:54
@Wibias

Wibias commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator Author

Re-review — merge-ready

Reset hard to origin/fix/react-doctor-dashboard @ 7d3aa3a9. No code changes.

Diff vs upstream/dev

  • Split preserves prior poll contracts: settings/shadow epoch guards, startup-health generation latest-wins, diagnostics outside core poll, optional injection/effort omitted on failure (prior UI kept), models throw on empty/non-OK so client-resource keeps cache, usage best-effort, update-check keeps loading across latest_unavailable retries and cleans timers/epoch on unmount/close.
  • No credential/token logging or other leak surfaces in the touched Dashboard modules.
  • No remaining functional defects found from the prior Codex hardening items.

Local verification

  • bun test dashboard-contracts, dashboard-tabs, client-resource-poll, startup-health-ui: 24 pass / 0 fail
  • bun run typecheck: pass
  • gh pr checks 473: all green (ubuntu/windows/macos, npm-global ×3, react-doctor, label, CodeRabbit)

Verdict: merge-ready.

@Wibias
Wibias merged commit 17f3c71 into lidge-jun:dev Jul 26, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant