Skip to content

fix(mobile): repair session layouts and localized copy - #5804

Merged
iscekic merged 6 commits into
mainfrom
fix/mobile-ui-localization-20260901
Sep 1, 2026
Merged

fix(mobile): repair session layouts and localized copy#5804
iscekic merged 6 commits into
mainfrom
fix/mobile-ui-localization-20260901

Conversation

@iscekic

@iscekic iscekic commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix mobile session layouts, target refresh, cancellation notices, suggestion details, and GitHub connection recovery.
  • Audit capitalization across all 87 locales, shorten biometric descriptions, and translate the live-session empty state.
  • Show the Kilo logo on Home. Remove context selectors from Home and Live Sessions, and remove filter pills from both session lists.
  • Use equal search-field margins and preserve filtering through the filter buttons and dialogs.
  • Count only unacknowledged questions and permission requests in the Agents tab badge. Keep the header’s all-live count unchanged.

Verification

  • Created a fresh iPhone 17 Pro simulator running iOS 26.5. No existing Kilo E2E simulator was reused.
  • Inspected native screenshots for English and Serbian copy, long organization names, and the credits row.
  • Inspected the final Home logo, selector-free layouts, centered Live empty state, and one-line session title at the default font size.
  • Applied a history filter and verified that the filter count remains visible without a pill strip.
  • Verified a fixture with four live sessions and two needs-input sessions; the header showed four and the tab label announced two.
  • Opened seeded session details and child transcripts; inspected context removal and the absence of empty message bars.
  • Opened the real suggestion and message-details components through temporary fixtures; inspected inline content, read-only details, and centered sheet titles.
  • Inspected the actual unlock scene with a temporary forced state; restored normal authentication afterward.
  • Did not exercise live queued cancellation: the local transcripts are read-only and no writable queued session was available.
  • Did not exercise real GitHub reconnection: the local account has fixture integration data, not a real linked authorization.
  • Did not complete native biometric authentication: the simulator requested a passcode.
  • Did not exercise discovery of a newly connected target. Real acknowledgment transitions are covered by automated tests, not native interaction.

Visual Changes

All screenshots use the default font size. The before images show earlier refinement stages, not a complete baseline for this PR. Unlock screenshots use a temporary forced state.

Screen Before After
Live Sessions empty state Sessions with a context selector before the final refinements Live Sessions without a context selector and with a centered empty state
Home Home with the welcome heading and context selector Home with the Kilo logo and no context selector
All Sessions All Sessions with a filter pill All Sessions without filter pills and with an active filter count
Unlock alignment Unlock content near the top of the screen Vertically centered unlock content
Long session title Long titles could wrap; no matching before screenshot was captured. Long session title on one line with an ellipsis

Needs-input badge

The temporary fixture contains four live sessions: one question, one permission request, one running session, and one idle session.

Four live fixture sessions with two needs-input rows and a tab badge of two

Reviewer Notes

  • Removed all temporary fixture overrides and restored the real shared hook before final validation. The original worktree remains unchanged.
  • The badge uses the existing attention and acknowledgment rules, including hydration and repeated requests, independently of mounted list rows.
  • Suggestion details are read-only; the composer remains the sole action surface to prevent duplicate submissions.
  • GitHub recovery fetches fresh authorization and refreshes active review queries when connected. Transient token failures now return retryable BAD_GATEWAY.
  • Native testing caught the unlock layout problem: centering now uses the same style object as safe-area padding.
  • Final full mobile suite: 625 files and 8,218 tests passed with pnpm --dir apps/mobile test --maxWorkers=2.
  • Passed repository lint, affected-package typechecks, unused-code checks, class checks, formatting, and whitespace checks.
  • All 87 catalogs passed, including removal of the two obsolete pill labels.
  • Focused backend suite: 11 tests passed, with database hooks disabled and zero network connection attempts.
  • The broader app-wide empty-state layout is a separate proposal; this PR does not implement that migration.

@iscekic iscekic self-assigned this Sep 1, 2026
@kilo-code-bot

kilo-code-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • apps/mobile/src/components/agents/platform-filter-modal.tsx
  • apps/mobile/src/components/agents/platform-filter-modal.mounted.test.tsx
Previous Review Summaries (4 snapshots, latest commit fdb144c)

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

Previous review (commit fdb144c)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • apps/extension/tests/e2e/agents-mode.test.ts
  • dev/local/mobile-workflow.test.ts

Previous review (commit 6e7935b)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (103 files)
  • apps/mobile/src/app/(app)/(tabs)/_layout.tsx
  • apps/mobile/src/components/agents/agents-tab-badge.mounted.test.tsx
  • apps/mobile/src/components/agents/agents-tab-badge.test-helpers.ts
  • apps/mobile/src/components/agents/platform-filter-modal.mounted.test.tsx
  • apps/mobile/src/components/agents/platform-filter-modal.tsx
  • apps/mobile/src/components/agents/session-history-screen.mounted.test.tsx
  • apps/mobile/src/components/agents/session-history-screen.tsx
  • apps/mobile/src/components/agents/session-list-screen.mounted.test.tsx
  • apps/mobile/src/components/agents/session-list-screen.tsx
  • apps/mobile/src/components/agents/session-list-search-header.tsx
  • apps/mobile/src/components/agents/use-live-session-query.ts
  • apps/mobile/src/components/home/home-screen.mounted.test.tsx
  • apps/mobile/src/components/home/home-screen.test.ts
  • apps/mobile/src/components/home/home-screen.tsx
  • apps/mobile/src/components/screen-header.mounted.test.tsx
  • apps/mobile/src/components/screen-header.tsx
  • apps/mobile/src/i18n/locales/*.json (87 catalogs)

Previous review (commit e9a9ac8)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (5 files)
  • apps/mobile/src/components/agents/session-list-screen.mounted.test.tsx
  • apps/mobile/src/components/agents/session-list-screen.tsx
  • apps/mobile/src/components/context-control.tsx
  • apps/mobile/src/components/home/home-screen.mounted.test.tsx
  • apps/mobile/src/components/screen-header.tsx

Previous review (commit 96f45e8)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (140 files)
  • apps/mobile/src/app/(app)/agent-chat/[session-id].mounted.test.tsx
  • apps/mobile/src/app/(app)/agent-chat/[session-id].tsx
  • apps/mobile/src/components/agents/child-session-section.tsx
  • apps/mobile/src/components/agents/live-session-list-empty-state.tsx
  • apps/mobile/src/components/agents/new-session-configure-form.test.ts
  • apps/mobile/src/components/agents/new-session-configure-form.tsx
  • apps/mobile/src/components/agents/new-session-screen-body.tsx
  • apps/mobile/src/components/agents/platform-filter-modal.mounted.test.tsx
  • apps/mobile/src/components/agents/platform-filter-modal.tsx
  • apps/mobile/src/components/agents/session-detail-content.test.ts
  • apps/mobile/src/components/agents/session-detail-content.tsx
  • apps/mobile/src/components/agents/session-detail-queue.test.ts
  • apps/mobile/src/components/agents/session-list-screen.mounted.test.tsx
  • apps/mobile/src/components/agents/session-list-screen.tsx
  • apps/mobile/src/components/agents/suggest-tool-card.test.ts
  • apps/mobile/src/components/agents/suggest-tool-card.tsx
  • apps/mobile/src/components/agents/suggestion-card-state.ts
  • apps/mobile/src/components/agents/tool-card-display.test.ts
  • apps/mobile/src/components/agents/tool-card-display.ts
  • apps/mobile/src/components/agents/tool-part-detail-body.test.ts
  • apps/mobile/src/components/agents/tool-part-detail-body.tsx
  • apps/mobile/src/components/agents/tool-part-renderer.test.ts
  • apps/mobile/src/components/app-unlock-screen.layout.mounted.test.tsx
  • apps/mobile/src/components/app-unlock-screen.tsx
  • apps/mobile/src/components/context-control.mounted.test.tsx
  • apps/mobile/src/components/context-control.tsx
  • apps/mobile/src/components/home/agent-sessions-section.tsx
  • apps/mobile/src/components/home/greeting.tsx
  • apps/mobile/src/components/home/home-screen.mounted.test.tsx
  • apps/mobile/src/components/home/home-screen.tsx
  • apps/mobile/src/components/kilo-chat/message-reaction-picker-sheet.tsx
  • apps/mobile/src/components/pr-review/discussion/reaction-picker-sheet.tsx
  • apps/mobile/src/components/pr-review/pr-form-sheet-chrome.tsx
  • apps/mobile/src/components/pr-review/pr-review-overview.tsx
  • apps/mobile/src/components/pr-review/pr-review-reconnect-notice.mounted.test.tsx
  • apps/mobile/src/components/pr-review/pr-review-reconnect-notice.tsx
  • apps/mobile/src/components/profile-credits-card.mounted.test.tsx
  • apps/mobile/src/components/profile-credits-card.tsx
  • apps/mobile/src/components/screen-header.mounted.test.tsx
  • apps/mobile/src/components/screen-header.tsx
  • apps/mobile/src/components/share/share-gate-sheet.tsx
  • apps/mobile/src/components/sheet-header-title.mounted.test.tsx
  • apps/mobile/src/components/sheet-header.mounted.test.tsx
  • apps/mobile/src/components/sheet-header.tsx
  • apps/mobile/src/i18n/label-reference.test.ts
  • apps/mobile/src/i18n/locales/*.json (87 catalogs)
  • apps/mobile/src/lib/pr-review/classify-pr-review-query-state.test.ts
  • apps/mobile/src/lib/pr-review/use-check-github-connection.ts
  • apps/mobile/vitest.pure.config.ts
  • apps/web/src/lib/github-pr-review/retry.test.ts
  • apps/web/src/lib/github-pr-review/retry.ts
  • tools/i18n/check-catalogs.mjs
  • tools/i18n/check-catalogs.test.mjs

Reviewed by grok-4.6 · Input: 42K · Output: 5.4K · Cached: 239.1K

Review guidance: REVIEW.md from base branch main

Comment thread apps/mobile/src/components/agents/use-live-session-query.ts
@iscekic
iscekic enabled auto-merge (squash) September 1, 2026 17:29
@iscekic
iscekic merged commit 9e1faaa into main Sep 1, 2026
24 checks passed
@iscekic
iscekic deleted the fix/mobile-ui-localization-20260901 branch September 1, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants