Skip to content

Mobile: theme setting + session row unification - #4729

Merged
iscekic merged 5 commits into
mainfrom
feat/mobile-theme-and-session-row
Jul 24, 2026
Merged

Mobile: theme setting + session row unification#4729
iscekic merged 5 commits into
mainfrom
feat/mobile-theme-and-session-row

Conversation

@iscekic

@iscekic iscekic commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Two client-only mobile features:

1. Theme setting (Light / Dark / System)

  • Adds a persisted theme-preference (default System, survives sign-out) via the existing createSecureStorePreference.
  • Applies globally through a single Appearance.setColorScheme(...) call, which drives NativeWind className tokens, useThemeColors()/useNavigationTheme(), the status bar, and every other useColorScheme() consumer — so use-theme-colors.ts is untouched.
  • No cold-start flash: RootLayoutNav holds the splash until the stored preference has loaded and been applied (the apply effect runs before SplashScreen.hideAsync()).
  • New Appearance section on the profile screen with a System/Light/Dark segmented control (new dependency-free SegmentedControl), reflecting the stored preference and firing a selection haptic on change.

2. Session row unification

  • Parameterizes the shared StoredSessionRow/RemoteSessionRow wrappers with variant ('list' | 'card') and interactive, and migrates the Home "Agent sessions" section onto them so Home and the Agents list render through the same wrappers.
  • Home rows keep their card tiles and stay tap-only (no long-press manage menu); they now show the git-branch subtitle, needs-input dot, and meta.
  • Canonical repo-name-first eyebrow on both screens (repo name when a git URL is present, platform fallback otherwise). This intentionally changes the Agents list eyebrow from platform-only to repo-name-first.

Intended behavior changes

  • Agents list eyebrow: platform-only → repo-name-first.
  • Home stored-row meta: now updated_at-based.
  • Home active rows: now show a live dot + relative time (was a live dot only).

Non-goals

No backend/tRPC/schema/shared-package changes, no new theme tokens, no long-press menu on Home, no new dependencies.

Testing

  • pnpm typecheck, pnpm lint, pnpm check:unused, pnpm format:check, pnpm test (1678 passing) all green.
  • On-device E2E (iOS): theme force Dark/Light, cold-relaunch persistence, System with a live OS light→dark flip; Home card rows (repo-name eyebrow + git branch + needs-input + meta, tap-only) and Agents list (repo-name eyebrow, long-press manage, a11y).

@iscekic iscekic self-assigned this Jul 23, 2026
Comment thread apps/mobile/src/components/home/agent-sessions-section.tsx
@kilo-code-bot

kilo-code-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

Incremental review of the latest commits (cost-segment addition to StoredSessionRow and the RemoteSessionRow file extraction) found no new issues; the previously-flagged live-indicator concern was resolved in-thread as verified dead-state code with no behavior change.

Files Reviewed (5 files)
  • apps/mobile/src/components/agents/remote-session-row.tsx (new, pure extraction)
  • apps/mobile/src/components/agents/session-list-helpers.ts
  • apps/mobile/src/components/agents/session-row.tsx
  • apps/mobile/src/components/home/agent-sessions-section.tsx
  • apps/mobile/src/components/home/agent-sessions-section.test.ts
Previous Review Summary (commit c87867b)

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

Previous review (commit c87867b)

Status: 1 Issue Found | Recommendation: Address before merge

Executive Summary

The Home-screen session-row refactor drops the live-status indicator for stored cloud-agent sessions that are currently active.

Overview

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

WARNING

File Line Issue
apps/mobile/src/components/home/agent-sessions-section.tsx 63 isLive was dropped when moving to StoredSessionRow, which never forwards a live prop to SessionRow — Home no longer shows the live dot for stored sessions that are currently active
Files Reviewed (12 files)
  • apps/mobile/src/app/_layout.tsx
  • apps/mobile/src/components/agents/session-list-helpers.test.ts
  • apps/mobile/src/components/agents/session-list-helpers.ts
  • apps/mobile/src/components/agents/session-row-actions.ts
  • apps/mobile/src/components/agents/session-row.tsx - 1 issue
  • apps/mobile/src/components/home/agent-sessions-section.test.ts
  • apps/mobile/src/components/home/agent-sessions-section.tsx - 1 issue
  • apps/mobile/src/components/profile-screen.tsx
  • apps/mobile/src/components/ui/segmented-control.tsx
  • apps/mobile/src/lib/hooks/use-theme-preference.test.ts
  • apps/mobile/src/lib/hooks/use-theme-preference.ts
  • apps/mobile/src/lib/storage-keys.ts

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5 · Input: 24 · Output: 5.3K · Cached: 545.7K

Review guidance: REVIEW.md from base branch main

@iscekic
iscekic requested a review from pandemicsyn July 23, 2026 21:27
iscekic added 2 commits July 24, 2026 09:26
…-session-row

# Conflicts:
#	apps/mobile/src/components/agents/session-row-actions.ts
#	apps/mobile/src/components/agents/session-row.tsx
@iscekic
iscekic merged commit 79a8389 into main Jul 24, 2026
18 checks passed
@iscekic
iscekic deleted the feat/mobile-theme-and-session-row branch July 24, 2026 07:29
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