Skip to content

feat(macos): navigate dashboard history with Command brackets#104328

Merged
steipete merged 4 commits into
mainfrom
codex/macos-back-forward-shortcuts
Jul 11, 2026
Merged

feat(macos): navigate dashboard history with Command brackets#104328
steipete merged 4 commits into
mainfrom
codex/macos-back-forward-shortcuts

Conversation

@steipete

@steipete steipete commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

The macOS dashboard exposes navigation history through title-bar controls and trackpad gestures, but keyboard users cannot use the standard Command-[ and Command-] shortcuts to move backward and forward.

Why This Change Was Made

Adds app-level Navigate commands for the standard shortcuts and routes them through the existing dashboard history implementation. Navigation follows the focused embedded browser: the main Control UI by default, or the link sidebar when it owns focus.

User Impact

macOS users can navigate dashboard history with Command-[ and Command-], including while browsing links in the focused sidebar browser.

Evidence

  • swift test --package-path apps/macos --filter DashboardWindowSmokeTests on personal macOS remote: 25 tests passed, including the new focused-browser routing regression test.
  • scripts/format-swift.sh macos: clean (0 files require formatting).
  • pnpm native:i18n:sync: generated native inventory committed; exact-head CI verifies it.
  • git diff --check: clean.
  • .agents/skills/autoreview/scripts/autoreview --mode local --model gpt-5.5 --thinking high: clean, no accepted/actionable findings.
  • Proof gap: no separate signed-app black-box key-event session; focused macOS integration coverage verifies target selection and history dispatch.

@openclaw-barnacle openclaw-barnacle Bot added app: macos App: macos size: S maintainer Maintainer-authored PR labels Jul 11, 2026
@steipete steipete self-assigned this Jul 11, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 599dc4ec56

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +547 to +551
self.navigateBack()
}

@objc private func navigateForward(_: Any?) {
self.webView.goForward()
self.navigateForward()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep title-bar validation aligned with focused browser

When the link sidebar owns focus, the title-bar Back/Forward buttons now invoke the focused activeNavigationWebView, but installNavigationControls() still enables those buttons only from self.webView.canGoBack/canGoForward. In a focused sidebar with its own history and no main-dashboard history, the title-bar Back button stays disabled; in the reverse case it appears enabled but calls goBack() on a sidebar that cannot navigate. Please either keep these button actions pinned to the main dashboard web view or update their validation/observations to follow the same active web view.

Useful? React with 👍 / 👎.

@clawsweeper

clawsweeper Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed July 11, 2026, 5:20 AM ET / 09:20 UTC.

Summary
Adds macOS Command-[ and Command- dashboard history shortcuts that target the focused embedded browser while leaving title-bar navigation bound to the main dashboard.

PR surface: Other +81. Total +81 across 5 files.

Reproducibility: not applicable. This PR adds a new platform-standard keyboard capability, and current main has no equivalent shortcut behavior to reproduce as broken.

Review metrics: none identified.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Result: blocked until real behavior proof from a real setup is added.

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

Rank-up moves:

  • [P1] Add a signed-app recording or live validation showing Command-[ and Command- with the main dashboard focused and with the link sidebar WKWebView focused; redact private URLs, tokens, IP addresses, and other private details.

Proof guidance:

  • [P1] Needs real behavior proof before merge: Focused Swift tests are present, but no after-fix signed-app key-event run shows the shortcuts; add a redacted recording or live output, then update the PR body to trigger a fresh review, or ask a maintainer to comment @clawsweeper re-review.

Risk before merge

  • [P1] The supplied evidence does not demonstrate that Command-[ and Command- are received and routed correctly by the packaged SwiftUI/AppKit application when focus moves between the dashboard and sidebar WKWebViews.

Maintainer options:

  1. Decide the mitigation before merge
    Keep the current separation between dashboard-only title-bar controls and focus-sensitive app commands, then demonstrate both shortcuts in a signed app with the main dashboard and link sidebar focused.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] The protected maintainer-labeled PR needs contributor-supplied real behavior proof and normal human merge handling, not an automated repair job.

Security
Cleared: The patch is limited to native menu routing, in-process WKWebView selection, generated localization inventory, and tests, with no dependency, permission, secret, download, or supply-chain change.

Review details

Best possible solution:

Keep the current separation between dashboard-only title-bar controls and focus-sensitive app commands, then demonstrate both shortcuts in a signed app with the main dashboard and link sidebar focused.

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

Not applicable: this PR adds a new platform-standard keyboard capability, and current main has no equivalent shortcut behavior to reproduce as broken.

Is this the best way to solve the issue?

Yes. The implementation is the narrowest maintainable shape found: it reuses the existing dashboard manager/controller boundary and preserves the separate title-bar invariant; only real packaged-app proof remains missing.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 72cf43fa8092.

Label changes

Label changes:

  • add rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Focused Swift tests are present, but no after-fix signed-app key-event run shows the shortcuts; add a redacted recording or live output, then update the PR body to trigger a fresh review, or ask a maintainer to comment @clawsweeper re-review.

Label justifications:

  • P2: This is a bounded native macOS keyboard-access improvement with limited blast radius and no demonstrated regression.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Focused Swift tests are present, but no after-fix signed-app key-event run shows the shortcuts; add a redacted recording or live output, then update the PR body to trigger a fresh review, or ask a maintainer to comment @clawsweeper re-review.
Evidence reviewed

PR surface:

Other +81. Total +81 across 5 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 0 0 0 0
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 5 85 4 +81
Total 5 85 4 +81

What I checked:

Likely related people:

  • steipete: Authored the complete shortcut series and has prior merged history in the macOS dashboard files, making him the strongest routing candidate for intended behavior. (role: recent area contributor; confidence: high; commits: 88c563b241e1, 599dc4ec56d6, 900619bb4a7c; files: apps/macos/Sources/OpenClaw/MenuBar.swift, apps/macos/Sources/OpenClaw/DashboardManager.swift, apps/macos/Sources/OpenClaw/DashboardWindowController.swift)
  • vincentkoc: Git blame attributes the existing dashboard title-bar navigation controls and validation lines that this PR must preserve to his commit. (role: carried forward existing behavior; confidence: high; commits: e413d36054dd; files: apps/macos/Sources/OpenClaw/DashboardWindowController.swift)
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.
Review history (1 earlier review cycle)
  • reviewed 2026-07-11T09:04:49.251Z sha b223cb3 :: needs real behavior proof before merge. :: [P2] Keep title-bar validation aligned with its navigation target

@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. labels Jul 11, 2026
@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. and removed 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. labels Jul 11, 2026
@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready on head 900619bb4a7c419ef76bd3e3aa2cf54d62e6b969.

Proof:

Known proof gap: no separate signed-app black-box key-event session. Focused macOS integration coverage verifies command target selection and history dispatch.

@steipete
steipete merged commit 518c582 into main Jul 11, 2026
93 of 97 checks passed
@steipete
steipete deleted the codex/macos-back-forward-shortcuts branch July 11, 2026 09:22
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

chenyangjun-xy pushed a commit to chenyangjun-xy/openclaw that referenced this pull request Jul 11, 2026
…aw#104328)

* feat(macos): add dashboard history shortcuts

* chore: leave release changelog to release flow

* chore(macos): sync native i18n inventory

* fix(macos): keep titlebar navigation on dashboard
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 12, 2026
…aw#104328)

* feat(macos): add dashboard history shortcuts

* chore: leave release changelog to release flow

* chore(macos): sync native i18n inventory

* fix(macos): keep titlebar navigation on dashboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: macos App: macos maintainer Maintainer-authored PR P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: S 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.

1 participant