feat(ui): make mobile pairing easy to find#100157
Conversation
|
Codex review: needs changes before merge. Reviewed July 5, 2026, 12:41 AM ET / 04:41 UTC. Summary PR surface: Source +229, Tests +39. Total +268 across 17 files. Reproducibility: yes. Source inspection shows Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Keep the shared app-level pairing dialog, but publish setup-code state as soon as Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows Is this the best way to solve the issue? No, not as written. The shared overlay is the right layer, but pending-count refresh must not gate QR/setup-code rendering before merge. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against f7d7148cf047. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +229, Tests +39. Total +268 across 17 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
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
Review history (4 earlier review cycles)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bf0ed5031b
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5b5d9cec52
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5ac873b2f
ℹ️ 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".
d5ac873 to
2c16a0a
Compare
|
Land-ready verification for head
Known proof gap: the local aggregate |
|
Merged via squash.
|



Closes #100154
What Problem This Solves
Users pairing the iOS app could miss the supported web flow because its only trigger was inside the Devices card near the bottom of Nodes. Searching the main UI or Settings gave no obvious route to the QR setup dialog.
Why This Change Was Made
Adds a subtle phone action to the persistent sidebar footer and a Mobile app action to Quick Settings. All three entry points, including the existing Nodes button, now share one app-level dialog state; setup-code cancellation and pending-request refreshes remain synchronized across Gateway reconnects and pairing events.
User Impact
Operators with administrator access can open mobile pairing directly from any Control UI page or from Quick Settings, scan the QR code, and jump to Nodes to manage requests. Non-admin operators see the actions disabled with the existing access explanation.
Evidence
node scripts/run-vitest.mjs run ui/src/pages/config/quick.test.ts ui/src/pages/nodes/view.devices.test.ts ui/src/lib/device-pair-setup.test.ts— 23 tests passed.node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner ui/src/e2e/mobile-pairing.e2e.test.ts— browser E2E passed for sidebar open, Quick Settings open, QR rendering, live pending-request refresh, code regeneration, and Manage devices routing.pnpm ui:build— production Control UI build passed.check:changed— Blacksmith Testboxtbx_01kwr1yvdny7vpvg21qtcvqvjq, exit 0; typechecks, lint, import-cycle, and pairing guards passed: https://github.com/openclaw/openclaw/actions/runs/28727067161AI-assisted: implemented and reviewed with Codex; maintainer understands the code and proof above.