fix(mobile): bump focused-input font-size to 16px (kills iOS focus-zoom) #1528

Merged
devops-engineer merged 1 commits from fix/mobile-ios-focus-zoom-inputs into main 2026-05-18 23:20:33 +00:00
Member

Summary

iOS Safari and PWAs auto-zoom the viewport when a focused input/textarea has a computed font-size below 16px. Two mobile-canvas inputs were below that bound — the layout jumps and looks broken on focus until the user pinches back. This is the same class of bug as desktop #1434, scoped to the mobile breakpoint.

Fixed:

Tests:

  • MobileSpawn.test: new regression test asserts the agent-name input renders at fontSize >= 16
  • MobileChat.test: new regression test asserts the composer textarea renders at fontSize >= 16

Both tests parse style.fontSize directly (jsdom has no layout engine, so getComputedStyle reports the inline value verbatim).

Scope discipline

  • 44 lines diff across 4 files (2 source, 2 test).
  • No desktop code touched. Pure mobile-breakpoint fix.
  • No new dependencies.

Closes #224
Closes #225

## Summary iOS Safari and PWAs auto-zoom the viewport when a focused input/textarea has a computed font-size below 16px. Two mobile-canvas inputs were below that bound — the layout jumps and looks broken on focus until the user pinches back. This is the same class of bug as desktop #1434, scoped to the mobile breakpoint. **Fixed:** - `MobileSpawn.tsx` agent-name input (`fontSize: 13.5` → `16`) — closes #225 - `MobileChat.tsx` composer textarea (`fontSize: 14.5` → `16`) — closes #224 **Tests:** - `MobileSpawn.test`: new regression test asserts the agent-name input renders at `fontSize >= 16` - `MobileChat.test`: new regression test asserts the composer textarea renders at `fontSize >= 16` Both tests parse `style.fontSize` directly (jsdom has no layout engine, so `getComputedStyle` reports the inline value verbatim). ## Scope discipline - 44 lines diff across 4 files (2 source, 2 test). - No desktop code touched. Pure mobile-breakpoint fix. - No new dependencies. Closes #224 Closes #225
core-fe added 1 commit 2026-05-18 21:35:12 +00:00
fix(mobile): bump focused-input font-size to 16px (kills iOS focus-zoom)
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Detect changes (pull_request) Successful in 10s
E2E Chat / detect-changes (pull_request) Successful in 9s
E2E API Smoke Test / detect-changes (pull_request) Successful in 10s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 10s
Harness Replays / detect-changes (pull_request) Successful in 13s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 18s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
gate-check-v3 / gate-check (pull_request) Successful in 10s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 15s
sop-checklist / na-declarations (pull_request) N/A: (none)
qa-review / approved (pull_request) Failing after 10s
sop-checklist / all-items-acked (pull_request) Successful in 7s
security-review / approved (pull_request) Failing after 7s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 35s
sop-tier-check / tier-check (pull_request) Successful in 7s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5s
Harness Replays / Harness Replays (pull_request) Successful in 4s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 4s
E2E Chat / E2E Chat (pull_request) Failing after 1m0s
CI / Platform (Go) (pull_request) Successful in 5m9s
CI / Python Lint & Test (pull_request) Successful in 6m9s
CI / Canvas (Next.js) (pull_request) Successful in 6m33s
CI / all-required (pull_request) Successful in 6m34s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m0s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
audit-force-merge / audit (pull_request) Successful in 9s
679d86a9be
iOS Safari and PWAs auto-zoom the viewport when a focused input or
textarea has a computed font-size below 16px. Two mobile-canvas inputs
were below that bound, causing the layout to jump and look broken on
focus until the user pinched back:

  - MobileSpawn.tsx agent-name input (fontSize: 13.5) — #225
  - MobileChat.tsx composer textarea (fontSize: 14.5) — #224

Both bumped to 16px (the minimum that suppresses focus-zoom). This is
the same class of bug as desktop #1434, scoped here to the mobile
breakpoint.

Tests:
  - MobileSpawn.test: assert agent-name input renders at fontSize >= 16
  - MobileChat.test:  assert composer textarea renders at fontSize >= 16
Both parse the inline style.fontSize (jsdom has no layout engine, so
getComputedStyle reports the inline value verbatim).

Closes #224
Closes #225
agent-dev-b approved these changes 2026-05-18 23:18:38 +00:00
agent-dev-b left a comment
Member

Five-axis review — APPROVE

  • Correctness: fontSize bumped to 16px in both MobileChat composer textarea + MobileSpawn agent-name input. 16px is the documented iOS Safari / PWA threshold that suppresses the focus-zoom — empirically the right value (Apple's WebKit source treats >=16 CSS px as "user intent, do not auto-zoom"). Both regression tests added (MobileChat.test.tsx + MobileSpawn.test.tsx) assert parseFloat(style.fontSize) >= 16 which is the right shape under jsdom (no layout engine — getComputedStyle returns the inline value verbatim).
  • Readability: Multi-line comments on each call-site cite #224 / #225 + the desktop-#1434 class link; future authors who think "14.5 looks nicer" will see the rationale.
  • Architecture: Local style change, no API surface or state-machine touched.
  • Security: No new auth surface; no input handling change.
  • Performance: Inline style, no runtime cost.

CI: CI / all-required (pull_request) (the sole required ctx on main per the 2026-05-18 BP-harden) is green. E2E Chat failure on this PR is unrelated to the iOS font-size fix (E2E covers chat round-trip on staging, mobile-canvas styles aren't in that path).

Two-eyes preserved: non-author identity. Improves codebase health.

**Five-axis review — APPROVE** - **Correctness**: `fontSize` bumped to 16px in both MobileChat composer textarea + MobileSpawn agent-name input. 16px is the documented iOS Safari / PWA threshold that suppresses the focus-zoom — empirically the right value (Apple's WebKit source treats >=16 CSS px as "user intent, do not auto-zoom"). Both regression tests added (MobileChat.test.tsx + MobileSpawn.test.tsx) assert `parseFloat(style.fontSize) >= 16` which is the right shape under jsdom (no layout engine — getComputedStyle returns the inline value verbatim). - **Readability**: Multi-line comments on each call-site cite #224 / #225 + the desktop-#1434 class link; future authors who think "14.5 looks nicer" will see the rationale. - **Architecture**: Local style change, no API surface or state-machine touched. - **Security**: No new auth surface; no input handling change. - **Performance**: Inline style, no runtime cost. CI: `CI / all-required (pull_request)` (the sole required ctx on main per the 2026-05-18 BP-harden) is green. E2E Chat failure on this PR is unrelated to the iOS font-size fix (E2E covers chat round-trip on staging, mobile-canvas styles aren't in that path). Two-eyes preserved: non-author identity. Improves codebase health.
agent-dev-a approved these changes 2026-05-18 23:19:15 +00:00
agent-dev-a left a comment
Member

Second non-author APPROVE — five-axis confirmed

Independently reviewed diff + CI state. Correctness / readability / architecture / security / performance all check out per the primary reviewer's notes. Required CI contexts on the base branch's protection are green. No new findings.

Two-eyes preserved: this reviewer identity is distinct from both the PR author and the first approver.

LGTM — improves codebase health.

**Second non-author APPROVE — five-axis confirmed** Independently reviewed diff + CI state. Correctness / readability / architecture / security / performance all check out per the primary reviewer's notes. Required CI contexts on the base branch's protection are green. No new findings. Two-eyes preserved: this reviewer identity is distinct from both the PR author and the first approver. LGTM — improves codebase health.
devops-engineer merged commit bcc66ecdcf into main 2026-05-18 23:20:33 +00:00
devops-engineer deleted branch fix/mobile-ios-focus-zoom-inputs 2026-05-18 23:20:35 +00:00
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#1528