Skip to content

fix(ui): use default cursor for mount fallback#103448

Merged
steipete merged 2 commits into
mainfrom
codex/fix-control-ui-cursor-contract
Jul 10, 2026
Merged

fix(ui): use default cursor for mount fallback#103448
steipete merged 2 commits into
mainfrom
codex/fix-control-ui-cursor-contract

Conversation

@steipete

@steipete steipete commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Closes #103444

Related: #103357, #103411

What Problem This Solves

Users who reach the Control UI mount-failure fallback still see the pointer hand over Try again and Keep waiting, although these are internal controls and the Control UI reserves the pointer for real links.

Why This Change Was Made

The stale inline cursor: pointer declaration is removed at the fallback style owner. The browser regression loads the real production ui/index.html shell in Chromium and checks both fallback controls plus the genuine troubleshooting link, without duplicating unrelated application cursor selectors.

User Impact

The fallback controls now use the default arrow like other Control UI controls. The troubleshooting hyperlink keeps the pointer hand.

Evidence

  • Exact-current-main baseline: bcf27989206d31bf4780c7857fc30f579357fa92 retains the stale declaration. On Blacksmith Testbox through Crabbox tbx_01kx5rr94tpbdvqt71cwdv7ewf, the focused Chromium test failed only because both fallback controls computed to pointer; the real link still computed to pointer (3 passed, 1 failed).
  • Fixed branch: the same focused Chromium file passed 4/4 on the same Testbox lease.
  • corepack pnpm check:changed on the same Testbox lease passed in 9m03s, including typechecks, full core/UI/package lint fanout, database-first and import-cycle guards.
  • corepack pnpm ui:build on the same Testbox lease passed.
  • Fresh whole-branch autoreview: clean; no accepted or actionable findings (0.96 confidence).
  • Exact-head hosted CI run 29086670826 passed at dd03e75497d1beb69cc602ebe8dbf4fb5d1098d5 (43 successful jobs, 12 intentionally skipped, zero failed).
  • Repo-native hosted prepare gate passed for the same head with OPENCLAW_TESTBOX=1.

Provenance: the stale declaration was introduced in #80644 (42fc84f4b4c63a1075d98be91855bee7267c0e57) by @BunsDev and became inconsistent when the Control UI cursor convention changed in #103357 and #103411.

AI-assisted change. I reviewed the production fallback actions, inline styles, current-main behavior, adjacent mount-fallback tests, sibling cursor contracts, history, and validation results.

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: S maintainer Maintainer-authored PR labels Jul 10, 2026
@steipete
steipete force-pushed the codex/fix-control-ui-cursor-contract branch from b8fb6a0 to d85f606 Compare July 10, 2026 07:11
@steipete steipete self-assigned this Jul 10, 2026
@steipete
steipete force-pushed the codex/fix-control-ui-cursor-contract branch from d85f606 to dd03e75 Compare July 10, 2026 10:32
@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready proof for exact head dd03e75497d1beb69cc602ebe8dbf4fb5d1098d5:

  • Exact-current-main red on Blacksmith Testbox through Crabbox tbx_01kx5rr94tpbdvqt71cwdv7ewf: corepack pnpm test ui/src/components/form-controls.browser.test.ts produced 3 passed / 1 failed. Both fallback buttons computed to pointer; the genuine troubleshooting link remained pointer.
  • Exact-head green on the same Testbox: the same real-Chromium file passed 4/4, loading the production ui/index.html shell.
  • Same Testbox: corepack pnpm check:changed passed in 9m03s; corepack pnpm ui:build passed.
  • Fresh whole-branch autoreview: clean, no accepted or actionable findings (0.96 confidence).
  • Exact-head hosted CI: run 29086670826 passed with 43 successful jobs, 12 intentionally skipped, zero failed.
  • Repo-native review-init, review artifact validation, and OPENCLAW_TESTBOX=1 scripts/pr prepare-run 103448 passed; prepared head matches the PR head.

Known proof gap: no separate cross-OS cursor run. The change is one platform-independent CSS declaration and is covered in Chromium's computed style plus the production UI build; no OS-specific runtime path is touched.

Best-fix verdict: yes. The static fallback owns the stale declaration, so deleting it there avoids a second override and preserves the fallback's independence from the main app bundle.

@steipete
steipete merged commit 7d87ced into main Jul 10, 2026
91 of 95 checks passed
@steipete
steipete deleted the codex/fix-control-ui-cursor-contract branch July 10, 2026 10:43
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 11, 2026
* fix(ui): use default cursor for mount fallback

* test(ui): focus mount fallback cursor coverage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Control UI mount fallback buttons use link cursor

1 participant