Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit resolves all three prior findings: the new Files Reviewed (7 files)
Previous Review Summaries (4 snapshots, latest commit de93c3c)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit de93c3c)Status: 3 Issues Found | Recommendation: Address before merge Executive SummaryThe new screen-bottom-anchored keyboard occlusion resolves the inset once per screen only for the two callers that opted in — two unchanged Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (23 files)
Fix these issues in Kilo Cloud Previous reviewStatus: No Issues Found | Recommendation: Merge Executive SummaryThe incremental change resolves the previously flagged Android toast occlusion: Files Reviewed (4 files)
Previous review (commit 377116e)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (21 files)
Fix these issues in Kilo Cloud Previous review (commit bf775eb)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (20 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
bf775eb to
377116e
Compare
|
bot: Rejected, no code change (kwf Why: (already implemented, verified live: no change needed: Refuted the platform-fork finding: the two flagged lines are imports of cross-platform libraries the app already uses on both platforms, the toaster path is one platform-free implementation, and the only per-platform branches are the capability-named ones the task permits. No code |
377116e to
8475249
Compare
8475249 to
2543d3d
Compare
Changelog for users
Changelog for maintainers
apps/mobile/src/components/kilo-chat/app-aware-keyboard-padding.tsx:114— accepted: the screen-bottom-anchored occlusion counted the bottom inset the composer already pads inside the view, floating the composer a navigation-bar height above the keyboard. The newcontentReservesBottomInsetopt-in adds only the raw platform metric;ConversationScreenuses it, and a mounted test asserts the Android raw height and the iOS passthrough.apps/mobile/src/components/kilo-chat/app-aware-keyboard-padding.tsx:112— accepted: the discussion CTA bar pads the bottom inset itself throughuseDetailScreenBottomPadding(), so the default occlusion double-counted it and floated the button higher. The bar now opts intocontentReservesBottomInset; the CTA test asserts the Android raw lift and rejects the double count.apps/web/src/lib/code-reviews/manual-code-review-jobs.test.ts:108— accepted: the rate-limited GitLab case calledcaptureError()with no overrides, so it ran the GitHub path. It now passes{ platform: 'gitlab', url: GITLAB_MR_URL }and asserts the GitLab rate-limit copy, so the name matches what runs. The public-source path maps provider failures toNOT_FOUND,TOO_MANY_REQUESTS, orBAD_GATEWAY; existingTRPCErrors pass through.apps/mobile/src/components/kilo-chat/app-aware-keyboard-padding.tsx:89— accepted:containerReservesBottomInsetsubtracts the inset the session screen's trailing spacer and the new-session form's parent padding already reserve, so both callers resolve the space once. The shared view now resolves the default throughresolveKeyboardBottomPadding, matching the Toaster and the login screen.apps/mobile/src/lib/toast-offset.ts:54— accepted: the keyboard branch applied Android's raw keyboard height, so the toast's last line could hide behind the IME's navigation row.AppToasternow resolves the height throughresolveKeyboardBottomPadding; the resting rule is unchanged.apps/mobile/src/components/login-screen.tsx:159— accepted: the app-state listener now runs on iOS, so a transientinactiveno longer collapses the reserved padding.resolveAppAwareKeyboardPaddingclears the padding only onbackground.apps/mobile/src/components/app-unlock-screen.test-helpers.tsx:111— accepted: the mockedKeyboard.addListenerkeeps a set per direction, so eachremove()deletes only its own subscription and the Toaster and a screen listener no longer detach each other.ConversationScreencaller still needs a KiloClaw sandbox conversation the pack does not seed, so only the agent-session caller of the shared view was driven. Verification recorded android, not the requested iOS, so the iOS live check is skipped and pending owner verification; the transient-interruption captures (android/emulator-5554, collected 2026-09-20, soft IME enabled as a fixture because the harness leaves it off) still replace the earlier Android sign-in capture, and the manual-review toast and error-mapping captures still stand.E2E proof
Owner request
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-review-19e5/e2e-mobile-app/keyboard-ime-open.log/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-review-19e5/e2e-mobile-app/e2-reply-kbd.txt/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-review-19e5/e2e-mobile-app/e2-disc-atrest.txt/home/igor_kilocode_ai/.local/share/kwf/sections/kwf-fix-review-19e5/e2e-mobile-app/e2-scrolled-kbd.txt