Repository navigation
fix(mobile): compact session header rows and dedupe session filter options - #6562
Conversation
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Executive SummaryNo new issues were found in the rebased HEAD; the only remaining item is the previously reported (and author-declined) Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (22 files)
Fix these issues in Kilo Cloud Previous Review Summaries (4 snapshots, latest commit b3c4f19)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit b3c4f19)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe platform-variant mismatch and the goal-row trailing alignment are both fixed at this HEAD; the only remaining item is the previously reported (and author-declined) Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (22 files)
Fix these issues in Kilo Cloud Previous review (commit 704fccf)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe persisted-platform-variant mismatch is fixed in this revision: the badge, filter sheet, live filter, and history query now share Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (9 files)
Fix these issues in Kilo Cloud Previous review (commit e1f9b2e)Status: 2 Issues Found | Recommendation: Address before merge Executive SummaryTwo low-severity filter-identity gaps in the mobile session filters: a persisted platform variant is collapsed in the badge and sheet but not in the live/history filter itself, and project identity still folds the host away so same-path repositories on different hosts share one option. Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (20 files)
Fix these issues in Kilo Cloud Previous review (commit 9628295)Status: 3 Issues Found | Recommendation: Address before merge Executive SummaryLow-risk mobile UI/filter changes; the new label-based filter identity can merge repositories from different hosts, plus two smaller dedupe/slot inconsistencies. Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (20 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
388f392 to
e1f9b2e
Compare
6db7a62 to
704fccf
Compare
|
bot: rejected: a suggestion, not a defect. A typed review read this finding as needing no code change before merge; the code stays as is. Say so here if one of them does change behaviour and it will be repaired.
|
|
kilo-review — independent audit of the published diff. Status: 1 Issues
|
|
bot: Accepted. Pushed 2cc2f32 (kwf What changed:
|
2cc2f32 to
b3c4f19
Compare
84fdd19 to
bbb1646
Compare
…the session header (#6522) * fix(mobile): stop the composer clipping the first draft line and cap the session header #6522 * fix(mobile): snap the composer cap floor to the native line pitch The cap snap floored at the caller's one-line minimum (requested line-height + padding), but the snap measures the pitch the native input really renders (18.67dp against a requested 20dp on Android). A remaining-space cap that landed on that minimum therefore published the unaligned minimum, so a two-line draft still scrolled by 17.33 - a partial line - and clipped the first visible line, exactly the defect the snap exists to fix. Express the floor in whole native lines and clamp it to the cap, so the snapped height is always a whole number of native lines and never exceeds the space the composer has. Also correct the helper's doc comment: the caller passes the measured pitch, not the requested font-scaled line height. * test(mobile): match the header cluster to the merged goal-row layout main moved the PR badge out of the header's right slot onto the goal row (#6562/#6614), so the cluster now holds only the context pill. Assert that, and drop the import the assertion no longer needs.
Changelog for users
Changelog for maintainers
apps/mobile/src/components/agents/session-list-helpers.ts:112— rejected (no_change): the option key is the formatted, locale case-folded label by design, and the sheet renders that host-less label as the option name. Keying on host + path would list two identical-looking rows for one visible name — the duplicate the request removes. Same-label git-URL forms stay one option; nothing changed.apps/mobile/src/lib/agent-session-filters.ts:85— accepted: the badge counted the raw platform array, so a saved bucket plus one of its variants showed 2 while the sheet rendered one checked row. The count now collapses each persisted platform throughknownPlatformBucket, keeps an unknown platform as itself, and counts the distinct rows. New unit cases cover a bucket with its variant, distinct buckets, and an unknown platform; these replace the earlier claim that label dedupe alone covered the badge.apps/mobile/src/components/screen-header.tsx:310— accepted:inlineActionswas rendered only in the leading-aligned title row, so a centered (modal) header silently dropped the trailing controls. The centered branch now rendersinlineActionsbeside the title, the prop doc states it applies to both branches, and the blind spacer is skipped when inline actions are present. A mounted test covers the centered case.ScreenHeaderadds an uncappedinlineActionstitle-row slot;headerRightkeeps its half-width cap — start here for the agents header row.projectOptionKey(formatted label, case-folded in the active locale) andknownPlatformBucketdefine filter identity for options, matching, the badge count, and persisted variants; matching uses label identity, so one stored URL matches every alias of a merged project.min-w-0,numberOfLines={1}); the branded-splash test now requires the splash entry witharrayContaining; new unit tests cover the single-row toolbar, the goal-row PR slot, the header inline slots, and filter dedupe, and the tabs-layout keyboard test moved beside the other component tests with unchanged assertions.E2E proof
Owner request
E2E proof — log excerpts