Skip to content

fix(macos): open dashboard for existing gateways#102677

Merged
steipete merged 3 commits into
mainfrom
codex/macos-skip-onboarding-existing-gateway
Jul 9, 2026
Merged

fix(macos): open dashboard for existing gateways#102677
steipete merged 3 commits into
mainfrom
codex/macos-skip-onboarding-existing-gateway

Conversation

@steipete

@steipete steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Closes #102642

What Problem This Solves

The macOS app could show provider/Crestodian onboarding even when its existing OpenClaw configuration already selected a working local or remote Gateway. Launch scheduled onboarding independently of asynchronous Gateway connection setup, so fresh app-local preferences won that race.

Why This Change Was Made

Configured launches now wait for the canonical connection-mode coordinator. A successful authenticated connection from config-derived state completes onboarding and opens the dashboard; a failed connection keeps recovery onboarding available.

The app-local connection-mode preference distinguishes a genuinely existing configuration from an interrupted onboarding flow. That preserves unfinished setup instead of silently marking it complete after reconnect.

User Impact

Opening the macOS app against an already configured, reachable Gateway goes directly to the web dashboard. New installs, unreachable Gateways, and interrupted onboarding continue through setup/recovery.

Evidence

  • swift test --package-path apps/macos --filter MenuContentSmokeTests: 10 tests passed on macOS, including configured-connected, disconnected-recovery, and interrupted-onboarding cases.
  • Remote changed gate passed on Blacksmith Testbox tbx_01kx358mr7whpkdc71nbbbnqjj.
  • Developer ID-signed, source-blind runtime proof against an isolated authenticated Gateway: fresh app-local state exposed only the OpenClaw dashboard and persisted onboarding completion; stored interrupted-onboarding state remained incomplete and exposed Welcome to OpenClaw.
  • Repository-configured SwiftFormat lint and git diff --check passed.
  • Fresh autoreview passed with no findings after preserving interrupted-onboarding behavior.

AI-assisted implementation and review.

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation app: macos App: macos size: S maintainer Maintainer-authored PR labels Jul 9, 2026
@steipete

steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Land-ready at exact head 4068f3ed05b0c8e72092ecee3b423a1419b539b3.

Proof completed:

  • swift test --package-path apps/macos --filter MenuContentSmokeTests on macOS 26.5.2: 10/10 passed, including configured-connected, disconnected-recovery, and interrupted-onboarding cases.
  • pnpm check:changed on Blacksmith Testbox tbx_01kx358mr7whpkdc71nbbbnqjj: passed.
  • Repository-configured SwiftFormat lint and git diff --check: passed.
  • pnpm native:i18n:check: passed after refreshing two shifted generated source-line entries.
  • Fresh autoreview after the interrupted-onboarding fix: no findings.
  • Developer ID-signed source-blind runtime proof against an isolated authenticated Gateway: fresh app-local state opened only OpenClaw, persisted onboarding completion, and retained no app-selected connection mode; stored interrupted-onboarding state remained incomplete and opened Welcome to OpenClaw.
  • CHANGELOG.md remains release-owned as required by the prepare gate; release-note context is retained in the PR body and commits.

Known proof gap: the existing Peekaboo bridge lacked Screen Recording permission, so no screenshot was captured. PID-scoped macOS Accessibility window titles supplied the positive/negative UI evidence. The static macOS Crabbox lease identifier is omitted because it embeds a private network address.

@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: 015e8fde1f

ℹ️ 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 thread CHANGELOG.md Outdated
@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 9, 2026, 7:15 AM ET / 11:15 UTC.

Summary
The PR delays macOS first-run onboarding for configured Gateway modes until the connection coordinator finishes, then opens the dashboard on a successful connection while preserving recovery onboarding and docs/tests.

PR surface: Docs +5, Other +66. Total +71 across 4 files.

Reproducibility: yes. source-reproducible on current main: launch starts the async connection-mode coordinator and immediately schedules onboarding while onboardingSeen can still be false for a configured Gateway. I did not run a live macOS reproduction in this read-only review.

Review metrics: none identified.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #102642
Summary: The linked issue reports the macOS configured-Gateway onboarding regression that this PR is intended to fix.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

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

Rank-up moves:

  • none.

Next step before merge

  • [P2] No repair lane is needed because the current PR is the focused fix candidate and has no blocking review finding.

Security
Cleared: The diff is limited to macOS app launch logic, Swift tests, generated native i18n line numbers, and docs; no security or supply-chain concern was found.

Review details

Best possible solution:

Land the focused macOS launch-path fix with the linked issue’s proof: configured connected Gateways open the dashboard, unreachable Gateways stay in recovery onboarding, and interrupted onboarding remains incomplete.

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

Yes, source-reproducible on current main: launch starts the async connection-mode coordinator and immediately schedules onboarding while onboardingSeen can still be false for a configured Gateway. I did not run a live macOS reproduction in this read-only review.

Is this the best way to solve the issue?

Yes, this is the best narrow fix: the launch scheduler is the race point, while the transport coordinator should not own UI onboarding or dashboard decisions. The patch also rejects the unsafe alternative of auto-completing interrupted app-local onboarding.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 08663917fa37.

Label changes

Label changes:

  • add P0: The PR fixes a first-use macOS onboarding blocker where users with a working configured Gateway are routed back into provider setup instead of the dashboard.
  • add proof: sufficient: Contributor real behavior proof is sufficient. The PR body and follow-up comment describe source-blind Developer ID-signed runtime proof against an authenticated Gateway, with dashboard and onboarding-window observations; screenshot capture was unavailable but PID-scoped Accessibility window titles are relevant macOS runtime evidence.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body and follow-up comment describe source-blind Developer ID-signed runtime proof against an authenticated Gateway, with dashboard and onboarding-window observations; screenshot capture was unavailable but PID-scoped Accessibility window titles are relevant macOS runtime evidence.

Label justifications:

  • P0: The PR fixes a first-use macOS onboarding blocker where users with a working configured Gateway are routed back into provider setup instead of the dashboard.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body and follow-up comment describe source-blind Developer ID-signed runtime proof against an authenticated Gateway, with dashboard and onboarding-window observations; screenshot capture was unavailable but PID-scoped Accessibility window titles are relevant macOS runtime evidence.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body and follow-up comment describe source-blind Developer ID-signed runtime proof against an authenticated Gateway, with dashboard and onboarding-window observations; screenshot capture was unavailable but PID-scoped Accessibility window titles are relevant macOS runtime evidence.
Evidence reviewed

PR surface:

Docs +5, Other +66. Total +71 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 0 0 0 0
Docs 1 5 0 +5
Config 0 0 0 0
Generated 0 0 0 0
Other 3 79 13 +66
Total 4 84 13 +71

What I checked:

Likely related people:

  • steipete: Current local blame and the merged local-Gateway automation PR tie the launch scheduler, connection-mode resolver, and onboarding selection paths to recent macOS Gateway work by steipete. (role: recent macOS onboarding/Gateway contributor; confidence: high; commits: 60bef7bd4139, 9b7fdc5cf0e9, 9624b81e2cfa; files: apps/macos/Sources/OpenClaw/MenuBar.swift, apps/macos/Sources/OpenClaw/ConnectionModeResolver.swift, apps/macos/Sources/OpenClaw/OnboardingView+Actions.swift)
  • ngutman: Merged remote Gateway auth/onboarding PRs by ngutman touched AppState, OnboardingView+Pages, RemoteGatewayProbe, and Gateway auth behavior that shares the configured-Gateway setup boundary. (role: adjacent macOS remote Gateway onboarding contributor; confidence: medium; commits: 5ea8ca178bba, 2c98f194dfb7, a81daf63a3e9; files: apps/macos/Sources/OpenClaw/AppState.swift, apps/macos/Sources/OpenClaw/OnboardingView+Pages.swift, apps/macos/Sources/OpenClaw/RemoteGatewayProbe.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.

@steipete

steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. labels Jul 9, 2026
@steipete
steipete merged commit c046fbd into main Jul 9, 2026
104 of 107 checks passed
@steipete

steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

@steipete
steipete deleted the codex/macos-skip-onboarding-existing-gateway branch July 9, 2026 11:17
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 10, 2026
* fix(macos): skip onboarding for existing gateways

* chore: keep changelog release-owned

* chore(macos): refresh native i18n inventory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: macos App: macos docs Improvements or additions to documentation maintainer Maintainer-authored PR P0 Emergency: data loss, security bypass, crash loop, or unusable core runtime. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: macOS app onboards an already configured connected Gateway

1 participant