Skip to content

feat: redesign control overview dashboard#77774

Closed
steipete wants to merge 1 commit into
mainfrom
redesign/control-overview-dashboard
Closed

feat: redesign control overview dashboard#77774
steipete wants to merge 1 commit into
mainfrom
redesign/control-overview-dashboard

Conversation

@steipete

@steipete steipete commented May 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • adds a two-column overview dashboard layout with a sticky status rail
  • surfaces gateway health, channels, sessions, runs, skills, cron, hooks, and attention counts
  • keeps rail controls clickable so summary stats jump to the relevant Control sections

Tests

  • pnpm ui:i18n:check
  • pnpm lint:ui:no-raw-window-open
  • pnpm --dir ui test (fails: existing chromium import issue in src/ui/chat/chat-responsive.browser.test.ts: process is not defined; 109 files / 1216 tests passed)
  • pnpm ui:build
  • pnpm tsgo:test:ui

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: L maintainer Maintainer-authored PR labels May 5, 2026
@clawsweeper

clawsweeper Bot commented May 5, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 3, 2026, 5:04 PM ET / 21:04 UTC.

Summary
This PR redesigns the Control UI Overview into a two-column dashboard with a sticky status rail and adds the corresponding overview rail CSS.

PR surface: Source +385. Total +385 across 2 files.

Reproducibility: yes. Source inspection of the PR head against current main shows the resolver removal, nullish-to-zero rail counts, disabled-cron warning path, and missing i18n key without needing a browser run.

Review metrics: 3 noteworthy metrics.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🧂 unranked krab
Result: blocked until real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Restore scoped gateway token resolution and keep the current token-edit tests passing.
  • Preserve unknown rail states, active-only cron failure semantics, and defined i18n keys.
  • [P1] Add redacted screenshot, recording, terminal output, live output, linked artifact, or logs showing the redesigned Control UI after the patch.

Proof guidance:

  • [P1] Needs real behavior proof before merge: The PR body lists tests only and needs redacted after-fix Control UI proof such as a screenshot, recording, terminal/live output, linked artifact, or logs; private details should be redacted before posting proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Mantis proof suggestion
A visible Control UI dashboard redesign benefits from real screenshot or recording proof of the rail, labels, loading states, and responsive layout. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis visual task: capture the Control UI Overview dashboard rail after initial load and after sessions/usage load, verifying labels and loading counts.

Risk before merge

  • [P1] Merging as-is can clear valid gateway tokens on harmless same-normalized URL edits or fail to reload a scoped token when switching back to a known gateway.
  • [P1] The rail can mislead operators by showing unloaded session or usage data as zero, warning on disabled historical cron failures, and rendering a missing i18n key as raw text.
  • [P1] The branch is conflicting against current main and overlaps Redesign Overview as an operator-first OpenClaw dashboard #86460, so maintainers need to choose the canonical Overview direction before either redesign lands.
  • [P1] The PR body lists tests only and does not include redacted after-fix Control UI proof showing the redesigned dashboard in a real setup.

Maintainer options:

  1. Fix Current-Main Regressions First (recommended)
    Restore scoped gateway-token resolution, active cron failure handling, unknown loading states, and defined i18n keys before maintainers reconsider this branch.
  2. Pause For Dashboard Direction
    If maintainers prefer the broader operator-dashboard work, pause this branch and carry forward only the desired layout ideas into the chosen redesign.
  3. Sponsor The Narrow Redesign
    Maintainers can explicitly sponsor this narrower layout after conflict refresh, real proof, and the auth/rail regressions are fixed.

Next step before merge

  • [P1] Manual review is needed because the protected maintainer label, dirty branch, missing contributor proof, overlapping dashboard direction, and auth/rail findings are not a safe cleanup-close or automated repair lane.

Security
Cleared: No concrete supply-chain or secret-exposure issue was found; the token concern is a functional auth-provider regression covered by review findings.

Review findings

  • [P1] Restore scoped gateway token resolution — ui/src/ui/views/overview.ts:302-304
  • [P2] Preserve unknown rail counts — ui/src/ui/views/overview.ts:92-94
  • [P2] Use the active cron failure predicate — ui/src/ui/views/overview.ts:277
Review details

Best possible solution:

Refresh or replace the branch so the chosen Overview redesign preserves current-main token, loading, cron, and i18n behavior, includes redacted Control UI proof, and is reconciled with #86460.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection of the PR head against current main shows the resolver removal, nullish-to-zero rail counts, disabled-cron warning path, and missing i18n key without needing a browser run.

Is this the best way to solve the issue?

No. The dashboard direction is plausible, but the best merge path must preserve current-main auth-token and rail semantics, add real visual proof, and settle the overlapping Overview direction first.

Full review comments:

  • [P1] Restore scoped gateway token resolution — ui/src/ui/views/overview.ts:302-304
    The URL input now clears the token unless the raw trimmed URL is unchanged. Current main calls resolveGatewayTokenForUrlEdit, which keeps the token for same-normalized endpoint edits and reloads a scoped token for a known gateway switch.
    Confidence: 0.93
  • [P2] Preserve unknown rail counts — ui/src/ui/views/overview.ts:92-94
    compactCount turns null or undefined into 0, and the new rail uses it for nullable sessions and optional usage totals while Overview data can still be unloaded. That can falsely report zero sessions or messages before data exists.
    Confidence: 0.89
  • [P2] Use the active cron failure predicate — ui/src/ui/views/overview.ts:277
    The rail checks job.state?.lastStatus === "error" directly, so disabled jobs with historical errors can still mark automation as warning. Current main centralizes this through isCronJobActiveFailure to count only enabled jobs as active failures.
    Confidence: 0.9
  • [P2] Use a defined messages translation key — ui/src/ui/views/overview.ts:546-547
    usage.metrics.messages is not present in the English locale bundle; the existing user-facing label is usage.overview.messages. As written, the rail can render the raw missing key.
    Confidence: 0.91

Overall correctness: patch is incorrect
Overall confidence: 0.93

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 010b61746379.

Label changes

Label justifications:

  • P2: This is a normal-priority Control UI feature with limited blast radius but concrete merge-blocking auth and rail defects.
  • merge-risk: 🚨 compatibility: The PR changes existing Overview URL-edit and loading-state behavior in ways that can break current user expectations after upgrade.
  • merge-risk: 🚨 auth-provider: The diff can clear or fail to reload gateway authentication tokens during URL edits and known gateway switches.
  • merge-risk: 🚨 other: The rail can misreport operator state and the PR overlaps another active Overview redesign without a canonical direction.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🧂 unranked krab.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body lists tests only and needs redacted after-fix Control UI proof such as a screenshot, recording, terminal/live output, linked artifact, or logs; private details should be redacted before posting proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

PR surface:

Source +385. Total +385 across 2 files.

View PR surface stats
Area Files Added Removed Net
Source 2 593 208 +385
Tests 0 0 0 0
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 2 593 208 +385

What I checked:

Likely related people:

  • BunsDev: Authored and merged the dashboard-v2 Overview refactor and usage overview styling that shaped the current Overview/card/CSS surface. (role: overview surface introducer and recent UI contributor; confidence: high; commits: f76a3c5225bb, a5309b6f93db, 3bbbe33a1b91; files: ui/src/ui/views/overview.ts, ui/src/ui/views/overview-cards.ts, ui/src/styles/components.css)
  • omarshahine: Merged the Model Auth status card work that shares the Overview dashboard's provider/auth status surface. (role: recent adjacent Overview auth/status contributor; confidence: medium; commits: 507b7189177a; files: ui/src/ui/views/overview.ts, ui/src/ui/views/overview-cards.ts, src/gateway/server-methods/models-auth-status.ts)
  • vincentkoc: Merged the PR that added resolveGatewayTokenForUrlEdit and the current Overview URL-edit token preservation behavior. (role: merger for current gateway-token resolver contract; confidence: high; commits: 59950f7b5266; files: ui/src/ui/storage.ts, ui/src/ui/views/overview.ts, ui/src/ui/views/overview.node.test.ts)
  • ZengWen-DT: Authored the merged active-cron-failure fix whose current-main predicate the new rail bypasses. (role: recent adjacent Overview cron behavior contributor; confidence: high; commits: 9fa14ff61a85, ee7fbdfc3cbc; files: ui/src/ui/cron-status.ts, ui/src/ui/views/overview-cards.ts, ui/src/ui/app-settings.ts)
  • steipete: History shows prior merged Control UI/Overview/CSS maintenance in this area, separate from authoring this proposed branch. (role: recent area contributor; confidence: medium; commits: f665da8dbcf3, 4505987b9c8b, 2380c1b5fd64; files: ui/src/ui/views/overview.ts, ui/src/styles/components.css)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@RomneyDa

Copy link
Copy Markdown
Member

Heads up: this PR needs to be updated against current main before the new required Dependency Guard check can pass.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels Jun 14, 2026
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. label Jun 21, 2026
@steipete

steipete commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

Closing this dashboard redesign rather than replaying it. The branch removes current scoped gateway-token URL handling, counts disabled cron jobs with historical errors as active failures, lacks current browser proof, and overlaps the newer Control UI architecture and active dashboard workspace direction. Any useful overview widgets should land through that current architecture with authenticated browser proof and existing auth/cron helpers preserved.

@steipete steipete closed this Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: L status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants