Skip to content

fix(ui): repair iOS Safari chat viewport handling#92855

Merged
vincentkoc merged 1 commit into
mainfrom
clownfish/ghcrawl-156909-autonomous-smoke
Jun 14, 2026
Merged

fix(ui): repair iOS Safari chat viewport handling#92855
vincentkoc merged 1 commit into
mainfrom
clownfish/ghcrawl-156909-autonomous-smoke

Conversation

@openclaw-clownfish

Copy link
Copy Markdown
Contributor

Summary

  • Repairs @macdao's fix(ui): fix iPhone Safari chat layout and input zoom #63644 in place so the iOS Safari chat layout fix can pass review without losing source PR credit.
  • Keeps the anti-zoom fix targeted to chat/form control font sizing and avoids a global maximum-scale viewport cap.
  • Removes the chat shell/body viewport-height conflict that can produce a global scrollbar on iPhone Safari.

Review blockers to clear

  • Resolve the stale maximum-scale review threads by proving the viewport meta remains free of maximum-scale and the 16px input sizing is retained.
  • Rerun Codex /review and address every finding.
  • Provide or rerun real behavior proof for the iPhone Safari chat layout/input-focus path.

Validation

  • pnpm check:changed
  • pnpm ui:build

Credit: this repair carries forward @macdao's original work in #63644.

Clownfish 🐠 replacement reef notes:

fish notes: model gpt-5.5, reasoning xhigh; reviewed against 62f0150.

Co-authored-by: Xi Qi <1311124+macdao@users.noreply.github.com>
@openclaw-clownfish openclaw-clownfish Bot added the clownfish Tracked by Clownfish automation label Jun 14, 2026
@clawsweeper

clawsweeper Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 13, 2026, 11:33 PM ET / 03:33 UTC.

Summary
The PR removes the duplicated .shell--chat fixed viewport-height rules so chat relies on the base shell viewport sizing.

PR surface: Source -8. Total -8 across 1 file.

Reproducibility: yes. from source evidence: the related source PR describes opening the Control UI chat on iPhone Safari, observing the global scrollbar/full-height issue, and focusing the composer input. I did not run a live iPhone Safari reproduction in this read-only review.

Review metrics: none identified.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🐚 platinum hermit
Result: blocked until stronger real behavior proof 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 after-fix iPhone Safari proof for this branch, with private details redacted.
  • Show the composer focus path, not only the static chat layout.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The linked source PR has screenshots, but this replacement PR still needs after-fix proof for the exact branch; update the PR body with redacted evidence to trigger a fresh review, or ask a maintainer for @clawsweeper re-review.

Mantis proof suggestion
A real mobile Safari visual proof would materially improve confidence for this visible chat layout and input-focus change. A maintainer can ask Mantis to capture proof by posting a new PR comment that starts with the OpenClaw Mantis account mention, followed by:

visual task: verify the web UI chat view on iPhone Safari has no global scrollbar and does not zoom on composer focus.

Risk before merge

  • [P1] The source screenshots are useful context, but they are from a different branch that also changed root body/app height; this replacement branch still needs exact after-fix iPhone Safari proof.
  • [P1] The visible screenshot proof does not fully demonstrate the composer-focus/no-zoom path, so maintainers would be merging that part without real behavior evidence.

Maintainer options:

  1. Decide the mitigation before merge
    Land this small replacement only after branch-specific mobile Safari proof shows no global scrollbar and no composer-focus zoom, while keeping the source PR credited and linked.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] The remaining blocker is contributor or maintainer real-device proof and normal review, not an automated code repair.

Security
Cleared: The diff only removes CSS viewport-height rules and does not touch dependencies, scripts, secrets, permissions, network calls, or code execution paths.

Review details

Best possible solution:

Land this small replacement only after branch-specific mobile Safari proof shows no global scrollbar and no composer-focus zoom, while keeping the source PR credited and linked.

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

Yes from source evidence: the related source PR describes opening the Control UI chat on iPhone Safari, observing the global scrollbar/full-height issue, and focusing the composer input. I did not run a live iPhone Safari reproduction in this read-only review.

Is this the best way to solve the issue?

Yes, with proof still needed: removing the chat-only duplicate height is a narrow fix because base .shell already owns viewport sizing and the 16px input/max-scale concern is handled elsewhere. Branch-specific Safari proof is the remaining merge gate.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 7f49f875de1b.

Label changes

Label changes:

  • add P2: This is a normal-priority visible mobile web UI bug fix with limited blast radius.
  • add proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The linked source PR has screenshots, but this replacement PR still needs after-fix proof for the exact branch; update the PR body with redacted evidence to trigger a fresh review, or ask a maintainer for @clawsweeper re-review.
  • add rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🐚 platinum hermit.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The linked source PR has screenshots, but this replacement PR still needs after-fix proof for the exact branch; update the PR body with redacted evidence to trigger a fresh review, or ask a maintainer for @clawsweeper re-review.

Label justifications:

  • P2: This is a normal-priority visible mobile web UI bug fix with limited blast radius.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The linked source PR has screenshots, but this replacement PR still needs after-fix proof for the exact branch; update the PR body with redacted evidence to trigger a fresh review, or ask a maintainer for @clawsweeper re-review.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The linked source PR has screenshots, but this replacement PR still needs after-fix proof for the exact branch; update the PR body with redacted evidence to trigger a fresh review, or ask a maintainer for @clawsweeper re-review.
Evidence reviewed

PR surface:

Source -8. Total -8 across 1 file.

View PR surface stats
Area Files Added Removed Net
Source 1 0 8 -8
Tests 0 0 0 0
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 1 0 8 -8

Acceptance criteria:

  • [P1] Provide or inspect real iPhone Safari proof for chat viewport height and composer focus/zoom behavior.
  • [P1] Verify pnpm check:changed and pnpm ui:build results if maintainers want command proof before merge.

What I checked:

  • Repository policy read: Root and UI-scoped review guidance were read fully; the UI proof requirement and scoped Control UI guidance apply to this review. (AGENTS.md:1, 7f49f875de1b)
  • PR diff: The replacement branch only deletes .shell--chat min-height: 100vh, height: 100vh, and the chat-specific 100dvh override, leaving overflow: hidden. (ui/src/styles/layout.css:34, 62f0150349f9)
  • Current shell sizing: Current main already gives .shell height: 100vh plus a 100dvh override, so the chat-specific duplicate height is not the primary owner of shell viewport sizing. (ui/src/styles/layout.css:13, 7f49f875de1b)
  • Chat entry point: The chat route renders class="shell ... shell--chat" and main.content.content--chat, so this CSS affects the active Control UI chat layout path. (ui/src/ui/app-render.ts:2244, 7f49f875de1b)
  • Maximum-scale review context: The source PR review comments objected to maximum-scale=1 and recommended preserving pinch zoom by using 16px form-control sizing instead. (ui/index.html:5, e23133c4ed60)
  • Current targeted input sizing: Current main keeps the viewport meta free of maximum-scale, defines the Control UI input text size as at least 16px, and the chat composer textarea uses that variable. (ui/src/styles/chat/layout.css:623, 7f49f875de1b)

Likely related people:

  • BunsDev: Recent live GitHub commit history shows repeated Control UI layout, chat, accessibility, and text-size work touching the same CSS surfaces. (role: likely UI layout owner; confidence: high; commits: 52370c59980b, 28f59a9124a4, f76a3c5225bb; files: ui/src/styles/layout.css, ui/src/styles/base.css, ui/src/styles/chat/layout.css)
  • steipete: Recent live GitHub history includes calm composer and chat control work on the related composer/layout path. (role: recent chat composer contributor; confidence: medium; commits: 2b30951b8090, d328a0d7a0da; files: ui/src/styles/chat/layout.css, ui/src/styles/layout.css)
  • NianJiuZst: Recent live GitHub history includes same-file layout fixes around chat/sidebar stacking and content--chat. (role: recent adjacent layout contributor; confidence: medium; commits: b01a54de6f0c; files: ui/src/styles/layout.css)
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.

@clawsweeper clawsweeper Bot added proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. 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 Jun 14, 2026
@vincentkoc vincentkoc merged commit 889bc52 into main Jun 14, 2026
187 of 198 checks passed
@vincentkoc vincentkoc deleted the clownfish/ghcrawl-156909-autonomous-smoke branch June 14, 2026 03:36
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 clownfish Tracked by Clownfish automation P2 Normal backlog priority with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: XS 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