Repository navigation
Conversation
Settings pages end with a Windows-style Related settings section linking to the matching Gateway Dashboard pages. Rows reuse the verified HubSearchCatalog routes and version gate, hide admin-only routes without operator.admin, and launch only through IAppCommands.OpenDashboard. Rows use SetupActionCard so UI Automation Invoke works. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesAdds localized Related settings sections linking nine Settings pages to verified Dashboard destinations. Example: Open Automations while connected to Gateway 2026.10.9 with operator.admin.
Review scores
ProductKind: Feature · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this collaborator-authored PR adds useful contextual navigation absent from main, with no actionable correctness findings in the reviewed diff. Priority: P3 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherSettings pages supply their page tags to a shared control, which projects Gateway version and operator scopes through the existing route catalog and sends selections to the existing Dashboard launcher. flowchart LR
Pages[Settings pages] --> Section[Related settings control]
State[Gateway version and scopes] --> Section
Catalog[Verified route catalog] --> Projection[Related links projection]
Projection --> Section
Section --> Commands[App Dashboard command]
Commands --> Launcher[Existing Dashboard launcher]
Technical reviewBest possible solution: Keep the shared page projection and invokable control while retaining the existing catalog, compatibility gate, and Dashboard launch owner. Do we have a high-confidence way to reproduce the issue? This is an additive navigation feature; main lacks the proposed section, and current-head screenshots demonstrate its visible states. Is this the best way to solve the issue? The shared control and pure projection are a focused implementation: page-specific related destinations are new, while route validity, credentials, tunnels, and browser dispatch retain their existing owners. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 2812fe5187f6. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Preflight sourceSource 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
LabelsLabel changes:
Label justifications:
Rating scale6/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. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed November 6, 2026, 9:54 PM ET / November 7, 2026, 02:54 UTC. |
Replace full-height cards with small link rows (icon, title, Dashboard caption, external-link glyph) so the section stays secondary to each page's settings. Descriptions move to tooltips and UIA help text. HyperlinkButton keeps a working UIA Invoke, so SetupActionCard is no longer needed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…lines Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
What Problem This Solves
Settings pages give no path to the deeper Gateway configuration that only the web Dashboard offers, so users can't easily find those settings.
User Impact
User impact: Systems, Automations, Usage, Sessions, Models, Local AI, Permissions, Sandbox and Diagnostics now end with a Windows-style Related settings section. Each row opens the matching Dashboard page and carries a "Dashboard" badge and an external-link icon, so it's clear the link leaves the app.
2026.10.9, the same gate as search and the footer Dashboard button. On other versions the section stays hidden.operator.admin.Why This Change Was Made
The native pages cover common tasks, and Related settings is the standard Windows Settings pattern for reaching deeper configuration. The section reuses the existing verified route catalog and version gate in
HubSearchCatalog, with no second route table. Every launch goes throughIAppCommands.OpenDashboard, so credentials, tunnels and the visible fallback to Connection settings behave exactly like other Dashboard entry points.Scope decisions:
Rows are compact links (a small icon, the title, a subtle "Dashboard" caption and an external-link glyph) rather than full-height cards, so the section stays secondary to the page's own settings. Each row's description is in its tooltip and UI Automation help text.
HyperlinkButtonprovides a working UIA Invoke; the stock ToolkitSettingsCardadvertises Invoke but rejects it.Evidence
Screenshots come from the isolated app built from
2211b50e(current head) and driven against the synthetic fixture Gateway (details under Real Behavior Proof).Automations, supported Gateway with
operator.admin: three compact link rows, including the admin-only Wake and heartbeat.Systems page:
Unverified Gateway version (
fixture-1): no Related settings section is shown.Launch path: invoking rows via UI Automation produced these fixture-mode launch lines, which are redacted by the app:
Admin-scope gating was also shown on the earlier card layout (read-only scope hid Wake and heartbeat); that logic is unchanged and covered by unit tests.
Change Type
Scope
winnodeRequired proof pools
windows-winui-interactive: new visible Settings UI and accessibility behavior in the isolated WinUI app. Fixture-based current-head proof is below; a maintainer may still schedule the pool run.Validation
All commands were run locally on Windows ARM64. Results are for the compact-row source of
2211b50e; after that run the only change was line-ending normalization of one file, followed by a clean./build.ps1:./build.ps1: passed. All five projects built, and documentation validation passed (72 Markdown files).dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore: passed. 4,868 passed, 25 skipped, 0 failed.dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore: passed. 5,285 passed, 0 failed.--filter "FullyQualifiedName~RelatedDashboardLinksTests|FullyQualifiedName~LocalizationValidationTests|FullyQualifiedName~HubSearchCatalogTests": passed, earlier in development.git diff --check: clean.New tests in
RelatedDashboardLinksTests:HubSearchCatalog.DashboardRoutes, and their localized copy exists.IAppCommands.OpenDashboard, uses invokableHyperlinkButtonrows, and never builds URLs.Review: an independent rubber-duck review found no blocking issues. It raised two non-blocking findings, both fixed:
GatewaySelfhealth update; rows are now kept when nothing relevant changed.The later change to compact link rows was not re-reviewed. Its suggestion to add a test that mounts the real control was not taken; mounted behavior is covered only by the manual proof below.
Real Behavior Proof
win-arm64,OpenClaw.Tray.WinUI.dllSHA-2565E5BB1EC…6CCE) was launched withscripts/run-gateway-fixture.ps1against the synthetic fixture Gateway.2211b50e(compact rows; the earlier launch lines are from2726dc00).fixture-1with read-only scope. To show the supported state, the fixture host's hello response was patched locally, never committed, to report version2026.10.9. One run also grantedoperator.admin..\scripts\run-gateway-fixture.ps1 -AppPath .\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.22621.0\win-arm64\OpenClaw.Tray.WinUI.exe, then account menu > Settings > Automations / Systems via UI Automation, invoking rows via UIA. Screenshots were captured withPrintWindowon the app's own HWND (same method asOwnedWindowCapture)./systems,/logsand/settings/approvalsthrough the shared launcher.2026.10.9Gateway; the fixture does not serve Dashboard pages, so route rendering on a real Dashboard is not shown.GatewayDashboardLauncherfailure path to Connection.Security Impact
No)No)No)No)No)Yes, explain the risk and mitigation: N/A. Rows only call the existingIAppCommands.OpenDashboardwith fixed verified paths, and admin-only destinations requireoperator.admin.Compatibility and Migration
Yes)No)No)Review Conversations