fix(mobile): keep bottom-tab labels on one line and truncate at the tail - #6468
Conversation
Explorer finding: app-home-dark-small: The bottom-nav labels break mid-word into two lines ('Hom e', 'Upda tes', 'Settin gs'), leaving the navigation unreadable at this width.
The user-agent explorer found this while using the app like a user.
One finding per item; the explorer never edits product code.
Flow: app-home-dark-small
Found on revision: f2181ae
Repro:
1. set this state first: uimode night; battery 9 discharging; size 480x1000; density 480; relaunch; back; deeplink kiloapp://home; the device in dark mode
2. open the app on emulator-5554
3. reach app-home-dark-small
4. the capture shows the defect named below
Observed: The bottom-nav labels break mid-word into two lines ('Hom e', 'Upda tes', 'Settin gs'), leaving the navigation unreadable at this width.
Expected: the screen renders without this defect
Evidence (from the device run):
- ~/.local/share/kwf/findings/explorer-app-home-dark-small-the-bottom-nav-labels-break-155c33b5/app-home-dark-small.png
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryReviewed the mobile bottom-tab label refactor (shared The fix routes every label through one shared component with Files Reviewed (5 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
|
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
left a comment
There was a problem hiding this comment.
Approved after a shallow triage pass. No blocking findings.
Changelog for users
Changelog for maintainers
tabLabelNumberOfLines: two lines only when the copy itself carries a newline.tabs.kiloclawWrappedis the only copy that reaches two lines, and only above the existing label-wrap font scale.E2E proof
[e3] ux-check: Reported config (dark mode, 480x1000 / density 480, Home tab): every visible bottom-tab label sits on a single line; no label is split mid-word (no 'Hom e' / 'Upda tes' / 'Settin gs'… — android emulator-5606, signed-in Home with the reported config applied (uimode night yes, wm size override 480x1000, wm density override 480; hierarchy root width=480 height=1000): all three visible labels are single 44 px-tall nodes inside their 160 px tab cells - e3-labels.log has 'android.widget.TextView text=HOME bounds=[15,865][145,909]', "text='AGENTS' bounds=[175,865][305,909]", "text='PROFILE' bounds=[335,865][465,909]" - so no label is split mid-word; screenshot e3-home-darksmall.png, digest e3-home-darksmall.txt. Caveat: at this width each label (130 px) fits its cell (160 px), so…
[e5] ux-check: TalkBack announces the full tab name for a truncated label — android/emulator-5604, TalkBack ON (e5-talkback-on.txt switch checked="true"; e5-talkback-speech.log: marvin.talkback TTS synthesis requests): e5-a11y.log quotes each tab node as content-desc="Home, tab, 1 of 3"/"Agents, tab, 2 of 3"/"Profile, tab, 3 of 3" with clickable="true" focusable="true", and each label node as text="HOME"/"AGENTS"/"PROFILE" focusable="false" with no content-desc, so the announced name is the tab button's full name and the label is not a focus target (e5-home-talkback.txt). Gap: no reachable device state truncates a label (three base tabs fit at max font/display size…
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-app-home-dark-small-the-bottom-nav-labels-break-155c33-0315/e2e-mobile-app/scripted-e1.logOwner request
Follow-ups (not changed here)
wm size 480x1000,wm density 480,cmd uimode night yes) plusKILO_E2E_FONT_SCALE=1.35; a label wider than its 53dp tab (PROFILEis about 64dp at this text size) renders on ONE line with a tail ellipsis - before the fix it wrapped as 'PROFIL' + 'E'. Expected: one line per label, every label ellipsized at the tail rather than split mid-word, and the bar's reserved height still covers the label so nothing above it is overlapped. RestoreKILO_E2E_FONT_SCALE=1.0,wm size reset,wm density reset,cmd uimode night noafterwards. (no capture cited it)adb shell wm size 480x1000,adb shell wm density 480andadb shell cmd uimode night yes(160dp wide, dark), signed in on Home: the three bottom-nav labels each render as one whole word on one line, no label is split across two lines, and the bar stays a single row with its icons and labels aligned. Restore the device afterwards withadb shell wm size reset,adb shell wm density reset,adb shell cmd uimode night no(the device is shared). Expected: no mid-word break; the navigation is readable. (no capture cited it)Open findings (not fixed here)