Repository navigation
Conversation
Surface: mobile-app
Explorer finding: 2 visual defects on android: The feature-flag rows show raw English d; The recipient address in the heading wra
The user-agent explorer found these 2 while using the app like a user. They are one kind of defect on one platform, so they are ONE item: the pull request must fix and prove every one of them.
One must-run scenario per finding: the plan needs 2 musts, one for each finding below.
The explorer never edits product code.
Evidence (from the device runs):
--- Finding 1 of 2: profile: The feature-flag rows show raw English developer state ("default · not loaded") beside the localized "مفعّل"/"معطّل" inside an otherwise fully Arabic screen.
Flow: profile
Found on revision: f2181ae
Repro:
1. set this state first: credits 20; reviews 4; uimode day; battery 22 discharging; rotate portrait; relaunch; seed app:user-id e2e-mobile-cloud-android@example.com; the device in light mode
2. open the app on emulator-5602
3. reach profile, settings
4. the capture shows the defect named below
Observed: The feature-flag rows show raw English developer state ("default · not loaded") beside the localized "مفعّل"/"معطّل" inside an otherwise fully Arabic screen.
Expected: the screen renders without this defect
- ~/.local/share/kwf/findings/explorer-2-visual-defects-on-android-the-feature-flag-row-489aab35/profile.png
- ~/.local/share/kwf/findings/explorer-2-visual-defects-on-android-the-feature-flag-row-489aab35/settings.png
--- Finding 2 of 2: sign-
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe Preferences feature-flag row copy (value, source, state) is now translated across all 86 non-English catalogs, guarded by a new per-catalog unit test and a narrowed allowlist in Files Reviewed (89 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
Collaborator
Author
|
This description names a scenario the proof did not capture:
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. |
eshurakov
approved these changes
Sep 23, 2026
iscekic
deleted the
kwf/explorer-2-visual-defects-on-android-the-feature-flag-row-489aa-54f3
branch
September 23, 2026 10:34
This was referenced Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changelog for users
مفعّل · افتراضي · لم يتم التحميلinstead of mixing indefault · not loaded.≥/<version operators and thev{{version}}build line stay as notation.Changelog for maintainers
preferences.featureFlagApplied,preferences.featureFlagSkippedandpreferences.featureFlagNotLoaded; the English copy inen.jsonis unchanged.tools/i18n/check-catalogs.mjsno longer allows those three keys to stay English, socheck:i18nnow fails a catalog that ships the English words; onlypreferences.featureFlagsBuildstays allowlisted on that screen.apps/mobile/src/i18n/feature-flag-copy.test.tsfails when a catalog is missing a key, is empty, or equals the English copy; a key missing at runtime resolves to English, so it is caught too.<value> · <source> · <state>; the section header,{{min}},≥/<and{{version}}are unchanged..comorphan on the sign-in code heading is already resolved at the base, where the recipient address starts its own line; this PR adds no code for it and the device run confirms it.E2E proof
[e1] settings (Android, app language Arabic) — android emulator-5554, dev build: e1-scene.log line 1
SCENE e1 OKproves every step passed, including the three absent steps and the switch back to English (final digestPreferences+Enabled · default · not loaded). The live Arabic Preferences digest is e1-arabic.txt, whose resolved-state lines readtext="مفعّل · افتراضي · لم يتم التحميل"andtext="معطّل · افتراضي · لم يتم التحميل"besidetext="mobile-pr-review"undertext="أعلام الميزات", withtext="v1.0.12"unchanged; the only English-looking tokens left are the flag keysmobile-pr-review/mobile-quick-chat. Start state…[e1] settings (Android, app language Arabic)
[e2] sign-in-wrong-code (Android): after the reported address is submitted the code-screen heading reads with the address starting its own line —
e2e-mobile-cloud-android@example.comalone on line 2, no… — android emulator-5554: e2-scene.log line 1SCENE e2 OK(address assert passed before and after the failed verify), line 6Enter the code sent to e2e-mobile-cloud-android@example.comis one heading node with the full address starting its own line, line 16That code is incorrect. Please try again.proves the wrong-code re-render; capture e2.png for the visual wrap judgement.[e5] ux-check: Sign-in wrong-code screen: the heading shows the instruction and the full recipient address beginning on its own line; no line consists only of punctuation; '.com' is not isolated on its… — android emulator-5554: e5-scene.log line 6
Enter the code sent to e2e-mobile-cloud-android@example.comshows the instruction plus the full recipient address on its own line with.cominside it, line 16That code is incorrect. Please try again.withResend codeandBackas recovery actions; every text node in the digest (lines 5-16) is a complete phrase, no punctuation-only line; no UX-DEFECT (capture e5.png, wrap judged by the visual reviewer).[e4] ux-check: Same screen in a second non-English locale (e.g. — android emulator-5604, app language French: the live Preferences screen shows 'INDICATEURS DE FONCTIONNALITÉS' with 'Activé · Par défaut · non chargé' and 'Désactivé · Par défaut · non chargé' (e4-french-notloaded.log, e4-french-notloaded.png) — 2026-09-23; the {{min}} gate branches are not device-forcible (PostHog off in DEV) so they were captured under the pack's temporary-hardcode permission and reverted (worktree clean): 'Activé · Distant · ≥ 1.0.4' and 'Désactivé · Par défaut · < 1.0.6' with no literal '{{min}}'/'undefined' and keys, '≥'/'<', 'v1.0.12' unchanged…
[e4] ux-check: Same screen in a second non-English locale (e.g.
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-feature-flag-row-489aa-54f3/e2e-mobile-app/e1-scene.log/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-feature-flag-row-489aa-54f3/e2e-mobile-app/e1-arabic.txt/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-feature-flag-row-489aa-54f3/e2e-mobile-app/e1-state-restore.logOwner request
[e6] ux-check: feature-flag rows fit their card at default font scale in en and ar (no clipped/overlapping third line) — android emulator-5554, default font scale never changed; each row relation is one text node of height 37 px (same single line height as the v1.0.12 line) in en (e6-en.txt) and ar (e3.txt) and does not overlap the next row key (gap 82 px both locales), per e6-rows.log; the wrap/clipping appearance is judged by the visual reviewer from e6-en.png and e3.png. No behavior-level UX defect observed.
[e3] ux-check: Arabic Preferences feature-flag rows render value, source and state in Arabic with no Latin 'remote'/'default'/'not loaded' — android emulator-5554, dev build (FEATURE FLAGS section renders), portrait 1080x2400; app language set to Arabic in-app; digest e3.txt shows 'مفعّل · افتراضي · لم يتم التحميل' and 'معطّل · افتراضي · لم يتم التحميل' and a latin scan of the whole dump for remote|default|not loaded is 0 (e3-arabic.log); capture e3.png. The applied/'remote' branch is not device-forcible (PostHog disabled in DEV) and is pinned for all 86 catalogs by the new feature-flag-copy.test.ts. No behavior-level UX defect observed.
Follow-ups (not changed here)
Open findings (not fixed here)