Skip to content

fix(mobile): drop Latin uppercase letter-spacing from RTL section labels - #6435

Merged
iscekic merged 1 commit into
mainfrom
kwf/explorer-home-ar-loading-the-arabic-section-labels-carry-caf1c3-b87d
Sep 21, 2026
Merged

iscekic merged 1 commit into
mainfrom
kwf/explorer-home-ar-loading-the-arabic-section-labels-carry-caf1c3-b87d

Conversation

@iscekic

@iscekic iscekic commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator

Changelog for users

  • In an Arabic (RTL) interface, the Home section labels and the "see all" action render as joined Arabic with no gaps inside words.
  • In English (LTR), the same labels keep the uppercase, letterspaced eyebrow treatment.
  • The profile page no longer shows the "Something went wrong" error page when the stored Stripe customer id is unknown to Stripe; it renders as if no card is on file.

Changelog for maintainers

  • The eyebrow text variant no longer hard-codes uppercase tracking-[1.5px]; Text adds those classes only outside RTL.
  • SectionHeader imports the shared EYEBROW_LATIN_DISPLAY string, so both eyebrow-scale labels stay identical; its family, size, color, and alignment are unchanged.
  • The RTL rule keys off the app direction, so it covers every RTL language rather than Arabic alone; other text variants are untouched.
  • hasPaymentMethodInStripe treats Stripe's "No such customer" as no payment method on file and still rethrows every other failure; safeDeleteStripeCustomer shares the same predicate.
  • New stripe-client.test.ts covers the present, absent, unknown-customer, and unexpected-error cases for both helpers.
  • playwright.setup-smoke.config.ts derives its base URL from the APP_URL_OVERRIDE origin when PLAYWRIGHT_BASE_URL is unset; an explicit PLAYWRIGHT_BASE_URL still wins.
  • The iOS capture kept above is the earlier on-device Arabic RTL Home run, collected 2026-09-20; the browser profile smoke on this head replaces the earlier missing-screenshot finding.
  • This run's mobile-app device gate did not run, so the Arabic RTL Home check is skipped, pending owner verification; review the eyebrow labels and the profile Stripe lookup first.

E2E proof

e1 — kwf-fix-proof-57ce7b8-6f3a/e1.png

browser smoke: profile local setup smoke — profile-local-setup-smoke--f6e7e-nd-renders-the-profile-page-chromium/test-finished-1.png

E2E proof — log excerpts

e1 -> pass :: ios: SCENE e1 OK digest carries StaticText الجلسات الجارية الآن [173,121][388,135], Button عرض الكل [14,120][167,136] and StaticText استكشاف [14,351][388,363] on the Arabic RTL Home (e1-scene.log), with the fresh still evidence/e1-home-ar.png and capture evidence/e1.png; the letter-spacing and glyph-join appearance belongs to the visual reviewer.

@iscekic
iscekic marked this pull request as draft September 20, 2026 20:20
@iscekic
iscekic marked this pull request as ready for review September 20, 2026 20:37
@iscekic

iscekic commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator Author

This description names a scenario the proof did not capture:

  • not proved live: home-ar-loading.png is no longer on the host that took it, so no publish can carry it

A repeated proof run rebuilds the same evidence, so no proof run is dispatched for a named gap. Merging with this gap open is your decision.

@iscekic iscekic added the human-ready The PR is ready for human review. label Sep 20, 2026
@iscekic iscekic self-assigned this Sep 20, 2026
@kilo-code-bot

kilo-code-bot Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The incremental commit adds env-file discovery to resolveBaseUrl in playwright.setup-smoke.config.ts and unit coverage for it, matching scripts/dev.sh's file order and resolveAppUrl's origin normalization; no new issues found in the changed lines.

Files Reviewed (2 files)
  • apps/web/playwright.setup-smoke.config.ts
  • apps/web/src/tests/playwright-setup-smoke-base-url.test.ts
Previous Review Summaries (2 snapshots, latest commit afd0088)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit afd0088)

Status: 1 Issue Found | Recommendation: Address before merge

Executive Summary

The incremental change exports EYEBROW_LATIN_DISPLAY and reuses it in SectionHeader with behavior preserved in both LTR and RTL, so the mobile eyebrow fix is sound; the only finding is a non-blocking suggestion that the unrelated playwright.setup-smoke baseURL fallback reads APP_URL_OVERRIDE from a process that loads no dotenv file.

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
apps/web/playwright.setup-smoke.config.ts 26 APP_URL_OVERRIDE fallback may not fire because this config loads no dotenv file
Files Reviewed (8 files)
  • apps/mobile/src/components/home/section-header.mounted.test.tsx
  • apps/mobile/src/components/home/section-header.tsx
  • apps/mobile/src/components/ui/eyebrow.tsx
  • apps/mobile/src/components/ui/text.mounted.test.tsx
  • apps/mobile/src/components/ui/text.tsx
  • apps/web/playwright.setup-smoke.config.ts - 1 suggestion
  • apps/web/src/lib/stripe-client.test.ts
  • apps/web/src/lib/stripe-client.ts

Fix these issues in Kilo Cloud

Previous review (commit 57ce7b8)

Status: No Issues Found | Recommendation: Merge

Executive Summary

Reviewed the RTL-aware eyebrow/section-label styling change across Text, Eyebrow, and SectionHeader plus the new and updated mounted tests. The conditional uppercase tracking-[1.5px] classes are correctly keyed off I18nManager.isRTL at render time and are placed before textClass/className in the cn() order, so caller-provided overrides still win through twMerge; both LTR and RTL rendering paths are covered by the mounted tests. No refs, listeners, timers, or subscriptions were introduced, so no memory-leak surface was added.

Files Reviewed (5 files)
  • apps/mobile/src/components/home/section-header.mounted.test.tsx
  • apps/mobile/src/components/home/section-header.tsx
  • apps/mobile/src/components/ui/eyebrow.tsx
  • apps/mobile/src/components/ui/text.mounted.test.tsx
  • apps/mobile/src/components/ui/text.tsx

Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0

Review guidance: REVIEW.md from base branch main

@iscekic
iscekic force-pushed the kwf/explorer-home-ar-loading-the-arabic-section-labels-carry-caf1c3-b87d branch from 57ce7b8 to afd0088 Compare September 21, 2026 02:07
Comment thread apps/web/playwright.setup-smoke.config.ts Outdated
@iscekic
iscekic force-pushed the kwf/explorer-home-ar-loading-the-arabic-section-labels-carry-caf1c3-b87d branch from afd0088 to d3abaf7 Compare September 21, 2026 03:09

@eshurakov eshurakov 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.

Approved after a shallow triage pass. Note: also carries an unrelated web Stripe fix (stripe-client.ts). Duplicate of #6440 - close one before merge.

@iscekic iscekic added the merge-by-human the merge bot routed this PR to a human label Sep 21, 2026
@iscekic

iscekic commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator Author

The merge bot leaves this one to a human: Jev reads it as a human's merge (confidence 0.98); destructive or config change (p=0.56).

@iscekic iscekic added merge-by-human the merge bot routed this PR to a human and removed merge-by-human the merge bot routed this PR to a human labels Sep 21, 2026
@iscekic

iscekic commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator Author

The merge bot leaves this one to a human: Jev reads it as a human's merge (confidence 0.98); destructive or config change (p=0.56).

@iscekic iscekic added merge-by-human the merge bot routed this PR to a human and removed merge-by-human the merge bot routed this PR to a human labels Sep 21, 2026
@iscekic

iscekic commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator Author

The merge bot leaves this one to a human: destructive or config change (p=0.62).

@iscekic iscekic removed the merge-by-human the merge bot routed this PR to a human label Sep 21, 2026
@iscekic
iscekic merged commit d9b5a61 into main Sep 21, 2026
29 checks passed
@iscekic
iscekic deleted the kwf/explorer-home-ar-loading-the-arabic-section-labels-carry-caf1c3-b87d branch September 21, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

human-ready The PR is ready for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants