Skip to content

improve: Connection page drops duplicate Dashboard buttons now covered by the footer - #2058

Closed
bkudiess wants to merge 1 commit into
openclaw:mainfrom
bkudiess:bkudiess-retire-old-dashboard-buttons
Closed

bkudiess wants to merge 1 commit into
openclaw:mainfrom
bkudiess:bkudiess-retire-old-dashboard-buttons

Conversation

@bkudiess

@bkudiess bkudiess commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator

Related: #1996, #2047 (shared footer Dashboard button and contextual Dashboard path)

What Problem This Solves

The Connection page showed two extra Dashboard buttons (a status-strip icon and a "Channels, integrations and gateway settings" card) that duplicate the always-visible footer Dashboard button and use a different icon and label.

User Impact

User impact: Connection settings no longer show duplicate Dashboard buttons; the footer Dashboard button (Ctrl+Shift+D) opens the Connection settings route in the Dashboard when the Gateway version supports it. The remaining page-level actions, the saved-gateway row menu and the Config schema-unavailable recovery button, now share the footer icon and read "Open in Dashboard". The Config button now opens the same route as the footer (/settings/general on verified Gateways, otherwise Dashboard home) instead of the unverified config path.

Why This Change Was Made

Each page-level entry point was kept only where it adds something the footer cannot do:

Entry point Decision
Connection status-strip icon (Open in browser glyph) Removed: duplicates the footer
Connection Dashboard card Removed: duplicates the footer
Saved-gateway row menu item Kept (opens a specific, possibly non-active saved Gateway). Restyled with the footer glyph (U+F246) and "Open in Dashboard". Launch logic unchanged
Config schema-unavailable button Kept as the recovery action. Restyled the same way and routed through HubSearchCatalog.Counterpart, like the footer
About page "Dashboard" link Unchanged (Related links row is out of scope)

Retired resource keys are removed in all six locales and new labels are translated. The Dashboard launch-failure dialog title moved off the removed card's key to GatewayDashboard_Title. ConnectionPage.xaml.cs only shrinks. docs/ARCHITECTURE.md closes the "Gateway dashboard management card" row and adds connection-page-dashboard-closed with a guard test.

Evidence

Connected to the synthetic fixture Gateway, current head: the Connection page has no status-strip Dashboard icon and no Dashboard card, the footer Dashboard button is present (bottom left), and the saved-gateway menu shows the restyled "Open in Dashboard" item with the footer glyph.

Connected Connection page with the saved-gateway menu open, showing Open in Dashboard with the Dashboard glyph and no page-level Dashboard card or strip icon

Disconnected (UI test capture from SettingsChatLink_ReturnsToRetainedChatInSameWindow): no Dashboard card on the Connection page; the footer Dashboard button remains.

Disconnected Connection page with no Dashboard card and the footer Dashboard button present

New tests guard the retirement (ConnectionPage_LeavesActiveGatewayDashboardToThePaneFooter), the restyle (RemainingPageDashboardActions_UseTheFooterDashboardGlyph) and the resulting routes (FooterReplacementsForRetiredPageButtons_OpenVerifiedSettingsRoutesOrDashboardHome: verified Connection to /settings/connection, verified Config to /settings/general, unverified or unknown versions to Dashboard home).

Gap: the Config schema-unavailable button is not visually proven, because the fixture Gateway always returns a schema. Its XAML, resources and route are covered by build, localization and source/route tests only.

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Docs or instructions
  • Tests or validation
  • Security hardening
  • Chore or infrastructure

Scope

  • Tray or WinUI UX
  • Windows node capability
  • Local MCP or winnode
  • Gateway, connection, or pairing
  • Setup or onboarding
  • Permissions, privacy, or security
  • Tests, CI, or docs

Required proof pools

  • windows-winui-interactive: visible WinUI change on the Connection and Config pages (current-head screenshots above; Config schema-unavailable state still unproven visually)

Validation

Run on Windows 11 ARM64 against the final source (identical to d07dc68d):

  • ./build.ps1: all builds succeeded; documentation validation passed (72 files)
  • dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore: 4868 passed, 0 failed, 25 skipped (opt-in integration/MXC)
  • dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore: 5258 passed, 0 failed, 0 skipped
  • dotnet test ./tests/OpenClaw.Tray.UITests/OpenClaw.Tray.UITests.csproj -r win-arm64 --filter "FullyQualifiedName~SettingsChatLink_ReturnsToRetainedChatInSameWindow" (on d07dc68d): 2 passed, 0 failed
  • git diff --check: clean

An earlier shared-test run on a previous revision of this change had one failure that did not reproduce on rerun; this change does not touch shared code. Independent rubber-duck review: no blocking issues; its P2 suggestion (assert the resulting Dashboard routes, not just source shape) is addressed by the new HubSearchCatalogTests theory.

Real Behavior Proof

  • Environment tested: Windows 11 ARM64, Debug win-arm64 build, isolated profile with the synthetic fixture Gateway (OpenClaw.GatewayFixtureHost, scenario multi-session-browse)
  • PR head or commit tested: d07dc68d15c8da7ebfd6f0f79240ccea57beec55
  • Exact steps or command run: dotnet OpenClaw.GatewayFixtureHost.dll --app <built app>; local MCP app.navigate {"page":"connection"}; UI Automation search for the removed AutomationIds; invoked the saved-gateway "Options" button; captured the owned app window
  • Evidence after fix: UI Automation result {"StripDashboardAction": false, "ConnectionDashboardCard": false, "SettingsDashboardName": "Open Dashboard", "SavedRowMenuItems": ["Open in Dashboard", "Disconnect", "Edit"]}, plus the screenshots above
  • Observed result: connected and disconnected Connection pages have no page-level Dashboard icon or card; the footer Dashboard button is present; the saved-gateway menu shows "Open in Dashboard" with the Dashboard glyph
  • Screenshot or artifact links verified? (Yes/No/N/A) Yes
  • Not verified or blocked: Config schema-unavailable button rendering (fixture always serves a schema). Clicking Dashboard actions was not exercised in this pass; launch routing is unchanged apart from the Config path, which is unit-tested.

Security Impact

  • New permissions or capabilities? (Yes/No) No
  • Secrets or tokens handling changed? (Yes/No) No
  • New or changed network calls? (Yes/No) No
  • Command or tool execution surface changed? (Yes/No) No
  • Data access scope changed? (Yes/No) No
  • If any answer is Yes, explain the risk and mitigation: N/A

Compatibility and Migration

  • Backward compatible? (Yes/No) Yes
  • Config or environment changes? (Yes/No) No
  • Migration needed? (Yes/No) No
  • If yes, list the exact upgrade steps: N/A

Review Conversations

  • I replied to or resolved every bot review conversation addressed by this PR.
  • I left unresolved only conversations that still need maintainer judgment.

The pane footer Dashboard button now covers the active gateway, so the
Connection status-strip icon and Dashboard card are removed. The saved-gateway
row item and the Config schema-unavailable action stay, restyled with the
footer Dashboard glyph and "Open in Dashboard"; Config now opens the same
contextual route as the footer.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@clawsweeper

clawsweeper Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Nov 7, 2026
@clawsweeper

clawsweeper Bot commented Nov 7, 2026

Copy link
Copy Markdown

Codex review: needs changes before merge.

What this changes

Removes duplicate Connection Dashboard controls and aligns the remaining page actions with the shared footer’s appearance and routing.

Example: Open Connection settings while connected to a Gateway.

  • Before: Dashboard appears in the footer, status strip, and a separate management card.
  • After: The footer provides the active-Gateway Dashboard action, while saved gateways retain their own menu action.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) A focused, largely well-supported cleanup with a minor stale documentation statement and incomplete evidence for the changed Config recovery action.
Proof confidence 🦐 gold shrimp (3/6) Real behavior proof is not required for maintainer- or bot-authored pull requests.
Patch quality 🐚 platinum hermit (4/6) 1 actionable review finding remain.

Product

Kind: Refactor · Worth it: Yes · Fix scope: Complete
User problem: Connection settings present several differently styled entry points to the active Gateway Dashboard.
Reason: The maintainer-authored direction consolidates an already available action while preserving entry points with distinct purposes.

Merge readiness

⛔ Needs changes before merge - 1 item remains

Keep this maintainer-authored PR open: it provides a focused cleanup still absent from main, with one small documentation correction identified.

Priority: P3
Reviewed head: d07dc68d15c8da7ebfd6f0f79240ccea57beec55

Before merge

  • Update the connection guide to reflect the retired Dashboard card (P3) - This PR removes ConnectionDashboardCard, but these maintained architecture instructions still say the Dashboard action and channels/integrations description live in their own Connection settings card. Replace that statement with the shared footer ownership so contributors are not directed toward a responsibility the updated ledger explicitly closes.

Findings

  • [P3] Update the connection guide to reflect the retired Dashboard card — docs/CONNECTION_ARCHITECTURE.md:293-294

Tests

  • Missing end-to-end proof: The Config schema-unavailable button has no supplied rendering or invocation proof, and the new route theory exercises unchanged helpers rather than demonstrating the changed handler failing on base and passing on head.
Agent review details

How this fits together

Native Settings pages send Dashboard requests through existing application commands; the shared route catalog selects supported destinations and the existing launcher handles credentials and browser dispatch.

flowchart LR
  A[Connection settings] --> B[Shared pane footer]
  C[Config recovery button] --> D[Dashboard route catalog]
  B --> D
  D --> E[Existing Dashboard launcher]
  E --> F[Browser]
Loading

Technical review

Best possible solution:

Keep the existing footer and route-catalog ownership, preserve the two distinct page actions, and update the connection guide to match.

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

Current main directly shows the duplicate Connection controls alongside the existing shared footer; no target runtime was launched during review.

Is this the best way to solve the issue?

The implementation is appropriately small: remove the duplicate controls and dead handler, reuse the existing Config route policy, synchronize all six locales, and retain distinct saved-gateway and recovery actions.

Full review comments:

  • [P3] Update the connection guide to reflect the retired Dashboard card — docs/CONNECTION_ARCHITECTURE.md:293-294
    This PR removes ConnectionDashboardCard, but these maintained architecture instructions still say the Dashboard action and channels/integrations description live in their own Connection settings card. Replace that statement with the shared footer ownership so contributors are not directed toward a responsibility the updated ledger explicitly closes.
    Confidence: 0.99

Overall correctness: patch is correct
Overall confidence: 0.91

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 2812fe5187f6.

Provenance checked

  • Connection status-strip icon and management card changes intended behavior with a stated reason (Rebuild Connection page (replaces Home) #418: The Connection rebuild provided a connected-state Dashboard launcher; improve: tidy Chat and Settings navigation #1566 later placed the management card here to remove clutter from Chat.)
  • Config recovery destination changes intended behavior with a stated reason (unknown: Commit f35328e preserved an already existing config target while decoupling pages from HubWindow, so it does not establish introduction; this PR explains replacing that target with the existing verified counterpart policy.)
  • Localized Dashboard labels and failure title keeps the original intent (feat: localize XAML and code-behind strings #558: Existing resources localized the Dashboard controls; the replacement title preserves the same product name and all supported locales remain synchronized.)

Testing

Proof path: shipped entry point.

Security

None.

Evidence

Acceptance criteria:

  • pwsh -File ./scripts/validate-docs.ps1
  • git diff --check

What I checked:

Likely related people:

  • Ranjesh: Raw commit 9de9b5b adds src/OpenClaw.Tray.WinUI/Pages/ConfigPage.xaml.cs:25 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: medium; commits: 9de9b5ba0f8a; files: src/OpenClaw.Tray.WinUI/Pages/ConfigPage.xaml.cs)

Preflight source

Source unknown. Source comparison at the observed PR snapshot only. Completion is self-reported; body, policy, tests, execution, and report bytes are not verified.

Review metrics

Metric Value Why it matters
Focused reduction Production XAML/C#: +21/-46; resources: +24/-72; tests: +54/-20. The change removes duplicate presentation without introducing another production owner; test growth protects the retirement, glyph contract, and route expectations.

Labels

Label changes:

  • add P3: This is a low-risk navigation and presentation cleanup with a minor documentation correction.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action.

Label justifications:

  • P3: This is a low-risk navigation and presentation cleanup with a minor documentation correction.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action.

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Complete the Config recovery rendering and launch evidence described above.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed November 6, 2026, 9:52 PM ET / November 7, 2026, 02:52 UTC.

@bkudiess
bkudiess marked this pull request as draft November 7, 2026 03:44
@bkudiess

bkudiess commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator Author

Abandoning this change for now. Closing without merging.

@bkudiess bkudiess closed this Nov 7, 2026
@bkudiess
bkudiess deleted the bkudiess-retire-old-dashboard-buttons branch November 7, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant