Repository navigation
fix(mobile): plain-language Run on copy and human-readable session titles - #6590
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe follow-up commit removes the duplicated Files Reviewed (4 files)
Previous Review Summaries (2 snapshots, latest commit efb5805)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit efb5805)Status: 1 Issues Found | Recommendation: Address before merge One maintainability issue: a new mobile helper re-implements an existing title-normalization helper and the shared placeholder pattern. Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (10 files)
Fix these issues in Kilo Cloud Previous review (commit 1b78f7c)Status: No Issues Found | Recommendation: Merge Files Reviewed (9 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
54c9ba9 to
efb5805
Compare
efb5805 to
3698cb1
Compare
|
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. |
…run-on-helper-se-4ea1b-33fc
…run-on-helper-se-4ea1b-33fc
…run-on-helper-se-4ea1b-33fc
Changelog for users
Changelog for maintainers
New session - <ISO>orChild session - <ISO>) as absent, so it falls back to the localized label instead of the CLI storage key.session.updatedtitles, so a placeholder can neither reach the header nor clear an in-flight rename.DEFAULT_SESSION_TITLE_PATTERNand stays local to mobile to avoid a newexpo installdependency.session.updatedignored.E2E proof
[e6] ux-check: Open the Run on picker with no computer connected: the empty state still shows the 'kilo remote' instruction, so a user who wants to connect a computer still has a concrete next action. — Fixture: no-computer state created by signing in as the worktree-scoped empty account e2e-empty-@example.com (login.sh), since the default account has this worktree's remotes/terminals registered; on android emulator-5604 the Run on picker empty state shows "No CLI instances connected" and "Run kilo remote in a project on your computer, or update Kilo CLI if one is already running." (e6-empty-state.log lines 46-47), i.e. the instruction naming the command survives the plain-copy change and gives a concrete next action, with a Refresh retry beside it; no functional UX defect on the visited…
[e5] ux-check: no CLI jargon on the Run on screen (android emulator-5554) — SCENE e5 OK on android emulator-5554; in the /agent-chat/new tree (e5-scene.xml) the strings 'kilo remote', '/remote', 'CLI session', 'local kilo process' each occur 0 times while the row 'Run on: Cloud Agent' and the sentence 'To run on your computer, start Kilo there and leave it running.' both render (e5.png captured for the visual reviewer); no UX defect seen on this screen.
[e6] ux-check: Open the Run on picker with no computer connected: the empty state still shows the 'kilo remote' instruction, so a user who wants to connect a computer still has a concrete next action.
[e7] ux-check: session header fallback label for a generated placeholder title — android emulator-5554: restored state session-open (STATE HIT session-open), whose last-opened session is the fixture row ses_f357b9329ffb1K6adZMBTQTnA6 with stored title 'New session - 2026-09-22T02:05:22.778Z' (e7-db.log), created with db.sh; the scene digest in scripted-e7.log shows the fallback label on one line — 'android.widget.Button Rename session: Session tappable [111,84][714,277]' and 'android.view.View Session tappable [111,147][714,212]' — which is agentChat.session.title='Session' (apps/mobile/src/i18n/locales/en.json:2087), and grep of scripted-e7.log for…
[e1] needs:seed placeholder-title session — header falls back instead of rendering 'New session - ' — android emulator-5554: seeded the row with db.sh — e1-db.log line 'ses_f35582999ffeQcDXta94FsaJca|New session - 2026-09-22T02:05:22.778Z' — then session.sh enter, force-stop and reopen; live scene digest e1-scene.log shows the fallback header 'android.view.View Session tappable [111,147][883,212]' and 'SCENE e1 OK', so the raw ISO title is normalized away; still e1.png / e1-placeholder.png for the visual reviewer; no UX-DEFECT on the session screen.
[e1] needs:seed placeholder-title session — header falls back instead of rendering 'New session - '
[e10] ux-check: session header loading skeleton to loaded title (android emulator-5554) — On android emulator-5554 the header title node is text="Session" bounds="[111,147][728,212]" while nextjs is stalled (loading, e10-skeleton.txt) and text="Session" bounds="[111,147][714,212]" loaded (e10-loaded.txt) — same top 147 and same height 65, with the composer fixed at [926,2188][1052,2314] and 'Go back' at [0,130][101,231] in both, so nothing below the header reflows; the session's DB title is the generated key 'New session - 2026-09-22T02:05:22.778Z' (e10-db.log) yet no raw ISO title appears in either digest (0 matches), i.e. the fallback name renders; loading/loaded screenshots…
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-run-on-helper-se-4ea1b-33fc/e2e-mobile-app/e1-scene.log/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-run-on-helper-se-4ea1b-33fc/e2e-mobile-app/e1-db.log/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-run-on-helper-se-4ea1b-33fc/e2e-mobile-app/e2-scene.log/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-run-on-helper-se-4ea1b-33fc/e2e-mobile-app/e3-scene.log/home/igor_kilocode_ai/.local/share/kwf/sections/explorer-2-visual-defects-on-android-the-run-on-helper-se-4ea1b-33fc/e2e-mobile-app/scripted-e2.logOwner request
[f1] owner finding 1: repo-picker Run on helper copy — Not in the shard must-run list though the owner request demands proof of this finding; proved live: new-session screen renders only the plain sentence 'To run on your computer, start Kilo there and leave it running.' (f1-runon-digest.txt line 18), no CLI jargon or backticks. Screenshot f1-runon.png for the visual reviewer.
[e10] ux-check: session header loading skeleton to loaded title (android emulator-5554) — On android emulator-5554 the header title node is text="Session" bounds="[111,147][728,212]" while nextjs is stalled (loading, e10-skeleton.txt) and text="Session" bounds="[111,147][714,212]" loaded (e10-loaded.txt) — same top 147 and same height 65, with the composer fixed at [926,2188][1052,2314] and 'Go back' at [0,130][101,231] in both, so nothing below the header reflows; the session's DB title is the generated key 'New session - 2026-09-22T02:05:22.778Z' (e10-db.log) yet no raw ISO title appears in either digest (0 matches), i.e. the fallback name renders; loading/loaded screenshots…
[e8] ux-check: session with real stored title — Header node 'Rename session: Fix the session header' (e8-realtitle-digest.txt line 5) shows the exact real title, unchanged. Screenshot e8-realtitle.png for the visual reviewer.
[e4] ux-check: New coding task (repo-picker) helper sentence under Run on — Android emulator-5606: digest lines 14-18 show the Run on selector ('Run on: Cloud Agent') directly above the exact TextView 'To run on your computer, start Kilo there and leave it running.' with no CLI term or backtick; screenshot e4/e4.png; no UX defect in the digest.
[e9] ux-check: rename an unrenamed session keeps the new header name — Android emulator-5606: one script call asserted the header 'Rename session: Session' (fallback, not the ISO) before, 'Rename session: e9 rename proof' after save and again after 30 s with the ISO placeholder and the fallback label absent (SCENE e9 OK; steps in e9.replay.json; pre-rename digest line in e9-rename-before.log); the server persisted the name (e9-title-db.log); screenshots e9pre/e9.png and e9full/e9.png.
Follow-ups (not changed here)
Open findings (not fixed here)