Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryFull review of Files Reviewed (13 files)
Previous Review Summaries (4 snapshots, latest commit f20e2aa)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit f20e2aa)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (14 files)
The prior review SHA Fix these issues in Kilo Cloud Previous review (commit 09a3aca)Status: No Issues Found | Recommendation: Merge Full-diff review of the 13 changed mobile files at HEAD Files Reviewed (13 files)
Previous review (commit 73c9ec9)Status: No Issues Found | Recommendation: Merge Executive SummaryFull-diff review of the 13 changed mobile files (the prior review SHA Files Reviewed (13 files)
Previous review (commit be194d4)Status: No Issues Found | Recommendation: Merge Reviewed PR #6601 ( Files Reviewed (14 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
a0dd122 to
b9c8bbf
Compare
ebeec49 to
73c9ec9
Compare
|
kilo-review — independent audit of the published diff. Status: 1 Issues
|
|
bot: Accepted. Pushed 99787f0 (kwf What changed:
|
99787f0 to
09a3aca
Compare
09a3aca to
f20e2aa
Compare
e3eb7b6 to
5d0866f
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. |
…he-card-the-comp-41a71-ce94
Resolves the conflict in apps/mobile/plugins/branded-splash.test.ts. Both sides rewrote the same comment block; main's version already carries the containment rationale plus the file-wide 30s test timeout, so main's side is kept and the branch's reword is dropped.
…4554) ## Automated docs sync — 2026-09-25 This PR keeps kilo.ai/docs in sync with features merged to [Kilo-Org/cloud](https://github.com/Kilo-Org/cloud) and [Kilo-Org/kilocode](https://github.com/Kilo-Org/kilocode). Every change below links to the merged PR it documents. - Window: `2026-09-24T07:08:33.639Z` → `2026-09-25T07:05:29.302Z` - Verification (docs build + tests): **passing** ### Surface: `cloud-mobile` - Assignees / requested reviewers: @iscekic and @eshurakov - Derivation: Derived from the repository layout. A product surface is a package under packages/ that ships a distinct client, plugin, backend, or hosted service: cli = packages/opencode/ + packages/tui/ + packages/server/ + packages/sdk/ + packages/plugin/; vscode = packages/kilo-vscode/ + packages/kilo-web-ui/ + packages/kilo-ui/; jetbrains = packages/kilo-jetbrains/; gateway = packages/kilo-gateway/; web = packages/kilo-console/ + packages/kilo-indexing/ + packages/kilo-memory/ + packages/kilo-sandbox/. Docs route from the IA tree packages/kilo-docs/pages/ plus docs/jetbrains-vscode-settings-parity.md: each surface lists the pages sections that document it, and the per-platform pages under packages/kilo-docs/pages/code-with-ai/platforms/ map to the matching extension surface (the vscode/ directory to vscode, jetbrains.md to jetbrains). A doc path belongs to the surface with the longest matching prefix; a path that matches none of those prefixes falls to `other` (the explicit other prefixes are listed under other.docs). The cloud surfaces are derived the same way from the Kilo-Org/cloud layout: cloud-mobile = apps/mobile/, cloud-web = apps/web/, cloud-extension = apps/extension/, and cloud-agent = the cloud-agent packages under packages/ (packages/cloud-agent-sdk/ + packages/cloud-agent-profile/). A cloud source names its repository while a bare string still means this repository. The pages under packages/kilo-docs/pages/collaborate/ document the cloud web app (app.kilo.ai: teams dashboard, billing, SSO, adoption dashboard), so they route to cloud-web. No page under packages/kilo-docs/pages/ documents the browser side-panel extension yet, so cloud-extension lists no docs prefix. - Map: `.github/docs-sync/surfaces.json` - Surface map: `cli`, `vscode`, `jetbrains`, `gateway`, `web`, `cloud-mobile`, `cloud-web`, `cloud-extension`, `cloud-agent`, `other` - Source prefixes: `apps/mobile/` (Kilo-Org/cloud) - Doc prefixes: `packages/kilo-docs/pages/code-with-ai/platforms/mobile.md` - Paths that fall to `other`: `packages/kilo-docs/pages/community/`, `packages/kilo-docs/pages/kiloclaw/`, `packages/kilo-docs/pages/contributing/`, `packages/kilo-docs/LEARNINGS.md`, `docs/` - Reviewers are ranked from `Kilo-Org/cloud`; the workflow needs a token with `contents: read` on that repository (repository secret `CROSS_REPO_ACCESS_TOKEN`, exposed to the upsert step as `CLOUD_REPO_TOKEN`). - How the two were computed: Reviewers for `cloud-mobile` are ranked from `Kilo-Org/cloud` git history over `apps/mobile/` (a commit 180 days old counts half as much, half-life 180 days). Bots (author type "Bot" or a login matching /\[bot\]$/i) and people without admin, write, or maintain permission are excluded. ### Changes <!-- docs-sync:changes:start --> | Docs change | Source | | --- | --- | | updated pages/code-with-ai/platforms/mobile.md | [Kilo-Org/cloud#6386](Kilo-Org/cloud#6386) | | updated pages/ai-providers/openai-chatgpt-plus-pro.md | [Kilo-Org/cloud#6702](Kilo-Org/cloud#6702) | | updated pages/code-with-ai/platforms/cloud-agent.md | [Kilo-Org/cloud#6683](Kilo-Org/cloud#6683) | | updated pages/getting-started/byok.md | [Kilo-Org/cloud#6692](Kilo-Org/cloud#6692) | <!-- docs-sync:changes:end --> ### Pending — will retry <!-- docs-sync:pending:start --> _None._ <!-- docs-sync:pending:end --> ### Considered, no docs change needed <!-- docs-sync:skipped:start --> | PR | Reason | | --- | --- | | [Kilo-Org/cloud#6658](Kilo-Org/cloud#6658) | Internal sandbox lifecycle fix with no user-visible workflow or setting. | | [Kilo-Org/cloud#6673](Kilo-Org/cloud#6673) | Internal container CA trust plumbing, no user-facing behavior. | | [Kilo-Org/cloud#6672](Kilo-Org/cloud#6672) | Internal sandbox launch/recovery fix with no documented workflow change. | | [Kilo-Org/cloud#6660](Kilo-Org/cloud#6660) | Internal cloud-agent queue delivery fix; no new command, setting, or workflow for users. | | [Kilo-Org/cloud#6226](Kilo-Org/cloud#6226) | Internal gateway alias-routing change, not user-visible. | | [#14490](#14490) | Tool-call animation and streaming UI polish; users do not need to learn a new workflow. | | [#14530](#14530) | Bug fix restoring intended worktree-pool behavior, no doc change needed. | | [#14529](#14529) | Bug fix restoring tab/panel state across project switches. | | [#14531](#14531) | Reconnect recovery bug fix, restores already-documented behavior. | | [#14532](#14532) | Bug fix keeping session tab title in sync on rename. | | [Kilo-Org/cloud#6088](Kilo-Org/cloud#6088) | Removes internal/admin model-experiment surfaces, not public product docs. | | [Kilo-Org/cloud#6682](Kilo-Org/cloud#6682) | Internal control-socket reconnect race fix, no user-facing change. | | [#14534](#14534) | Transcript re-render performance bug fix. | | [#14535](#14535) | Bug fix preserving the loaded browser page across context switches. | | [Kilo-Org/cloud#6684](Kilo-Org/cloud#6684) | Reverted by Kilo-Org/cloud#6685. | | [Kilo-Org/cloud#6678](Kilo-Org/cloud#6678) | Dead-code constant removal, no user-visible effect. | | [Kilo-Org/cloud#6687](Kilo-Org/cloud#6687) | Removes internal model-experiment maintenance and retains tables, no user-facing change. | | [#14515](#14515) | JetBrains plugin unload crash fix, no documented behavior change. | | [#14520](#14520) | JetBrains transcript/list rendering performance work. | | [Kilo-Org/cloud#6614](Kilo-Org/cloud#6614) | Mobile PR Review header and session title bug fix, no doc change needed. | | [Kilo-Org/cloud#6625](Kilo-Org/cloud#6625) | Internal mobile secure-store error-handling refactor. | | [Kilo-Org/cloud#6624](Kilo-Org/cloud#6624) | Mobile auth bug fix that stops a retry loop; restores expected sign-in behavior with no new setting or workflow. | | [#14310](#14310) | Contributor/CI fix making the kilo-v2 checkout installable; not user-visible product behavior. | | [Kilo-Org/cloud#6611](Kilo-Org/cloud#6611) | Mobile notification-tap fix that selects the session's organization; restores correct behavior rather than adding a learnable feature. | | [Kilo-Org/cloud#6644](Kilo-Org/cloud#6644) | Mobile sign-in layout/alignment polish; no change to what a user must do. | | [Kilo-Org/cloud#6601](Kilo-Org/cloud#6601) | Mobile layout fix keeping empty states clear of the tab bar; purely visual. | | [#14543](#14543) | CI/release infrastructure adding Windows binary code signing; no public docs impact. | | [Kilo-Org/cloud#6616](Kilo-Org/cloud#6616) | Mobile visual defect fixes and a session-title fallback; no new user workflow or setting. | | [Kilo-Org/cloud#6630](Kilo-Org/cloud#6630) | Reports an edge-case partial worktree restore; failure-path plumbing with no new user-facing workflow, target setting, or config. | | [Kilo-Org/cloud#6699](Kilo-Org/cloud#6699) | Cloud Agent e2e stabilization plus internal idle-sandbox capacity handling; not user-visible. | | [#14545](#14545) | Automated JetBrains release/changelog PR; underlying user-facing changes are triaged from their own PRs. | | [Kilo-Org/cloud#6708](Kilo-Org/cloud#6708) | Internal AI-gateway request-logging policy change in the admin panel; no existing public docs surface and no change to how users run Kilo Code. | | [#14533](#14533) | Documentation already shipped with the merged PR. The experimental.task_model_selection flag is gone from the current source, and pages/code-with-ai/agents/model-selection.md, pages/code-with-ai/agents/context-mentions.md, and pages/getting-started/settings/index.md already describe per-task selection as default-on with no stale experiment references. | | [#14510](#14510) | Documentation already shipped with the merged PR. Marketplace companion-skill support is present in the current source (packages/opencode/src/kilocode/marketplace/companions.ts and installer), and pages/customize/marketplace.md already documents installing, publishing, and removing MCP servers with companion skills. | <!-- docs-sync:skipped:end --> --- (bot) Generated by the docs-sync workflow. Humans review and merge; while this PR stays open, the next daily run appends new changes here. Branch: `docs/auto-sync-2026-09-25`. <!-- docs-sync: processed-through 2026-09-25T07:05:29.302Z -->
Changelog for users
Changelog for maintainers
introspect: truereads from a worktree's generatedandroid/tree, fixing a pre-existing suite failure.E2E proof
Owner request
[e1] ux-check: landscape Agents no-match — copy and Clear-search action clear the tab bar with no scrolling — Landscape digest (2400x1080) shows the bottom tab bar on screen at top y=875 ('android.view.View Home, tab, 1 of 3 tappable [0,875][800,1017]') with the empty state entirely above it: 'centered-state-content tappable [0,569][2400,823]', 'Try a different search term. tappable [999,643][1401,689]', 'Clear search tappable [1068,708][1332,823]' (823<875); the staged scene ran live, not the script (e1-landscape-no-match.log). Tapping the empty-state Clear-search CTA cleared the query on the first tap with no scroll and the list returned (e1-cta-tap.log). Capture for the visual reviewer: e1p.png…
[e1] ux-check: landscape Agents no-match — copy and Clear-search action clear the tab bar with no scrolling
[e1] ux-check: Reproduce the explorer state (dark mode, rotate landscape, relaunch, deeplink, rotate portrait): the empty state stays centred and does not jump or re-centre as the surface layout resolves. — android/emulator-5554, dark mode (
cmd uimode night-> 'Night mode: yes'). Reached the Agents search-empty state ('zzzznothingmatches') live with sim_browser_click/type after a cold relaunch (sim_app_launch cold); portrait digest e1-relaunch-portrait-digest.log reads 'android.view.ViewGroup centered-state-content tappable [0,918][1080,1356]', 'android.widget.TextView No sessions match tappable [360,1083][720,1148]', 'android.widget.TextView Try a different search term. tappable [339,1157][741,1203]' and the empty-state CTA 'android.widget.Button Clear search tappable [408,1240][672,1355]'…[p3] ux-check: portrait Agents no-match — icon, title, copy and Clear-search above the tab bar — Previously-passed portrait control; the diff touches this screen, and its scripted scene re-ran in this run: 'SCENE p3 OK' with the empty state above the tab bar top y=2195 ('android.widget.Button Clear search tappable [408,1240][672,1355]'), capture scripted-shard1/p3.png. No UX-DEFECT.
[e5] ux-check: empty state stays centred, does not re-centre as the surface layout resolves — android emulator-5604, dark mode: Agents search no-match body present after the cold relaunch + dev-client deeplink layout resolve with SCENE e5 OK, content at [0,918][1080,1356], 'Try a different search term.' at [339,1157][741,1203] and 'Clear search' at [408,1240][672,1356], all clear of the fixed tab bar top y=2195 (scripted-e1.log); the identical content bounds in e5-portrait.txt and e5-portrait-after-repro.txt show no re-centre across the re-resolve; rotation sub-steps not reproducible (e5-landscape.txt reports rotation="0" 1080x2400 after sim_browser_resize returned 'orientation…
[e3] ux-check: Agents tab, search term matching nothing, portrait — empty state clear of the bottom tab bar — SCENE digest e3.txt (android emulator-5606, portrait 1080x2400) shows the no-match body with 'No sessions match' y[1146-1211], 'Try a different search term.' y[1220-1266], the Clear-search button y[1303-1419] and the icon SvgView y[1014-1077], all above the fixed tab bar's top edge y[2195]; the vertical-centring layout judgement is the visual reviewer's on e3.png (also saved).
[p4] ux-check: Reproduce the explorer state (dark mode, rotate landscape, relaunch, deeplink, rotate portrait): the empty state stays centred and does not jump or re-centre as the surface layout resolves. — Android emulator-5604, from signed-in-home: 'SCENE p4 OK' (p4-scene.log:1), digest shows the no-match state with 'No sessions match' [360,1146][720,1211], 'Try a different search term.' bottom 1266 and 'Clear search' [408,1303][672,1418] all fully above the fixed tab bar top 2195, matching the recorded portrait control bounds exactly (no portrait layout shift, no UX-DEFECT observed); the landscape rotation branch could not be re-driven because appium 'do rotate landscape' and sim_browser_resize both report landscape while the tree stays [0,0][1080,2400] (harness rotate no-op, papercut cap…
[e1] ux-check: landscape Agents no-match — copy and Clear-search action clear the tab bar with no scrolling
[e1] ux-check: Reproduce the explorer state (dark mode, rotate landscape, relaunch, deeplink, rotate portrait): the empty state stays centred and does not jump or re-centre as the surface layout resolves.
[e1] ux-check: Reproduce the explorer state (dark mode, rotate landscape, relaunch, deeplink, rotate portrait): the empty state stays centred and does not jump or re-centre as the surface layout resolves. — android emulator-5554, dark mode on:
Night mode: yes(e1-live-runtime.log); captured after the explorer sequence landscape -> cold relaunch -> deeplink -> portrait. Landscape no-match:SCENE e1-live-landscape OKandandroid.view.ViewGroup centered-state-content tappable [0,569][2400,823]withandroid.widget.Button Clear search tappable [1068,708][1332,823]above the tab-bar top edgeandroid.view.View Home, tab, 1 of 3 tappable [0,875][800,1017](e1-landscape-no-match.log); the same bounds are in the previous review's e1-relaunch-landscape-digest.log. Portrait round trip…Open findings (not fixed here)
Merge proof
Merged
origin/main(8d07bf579c) into the branch. The only conflict was inapps/mobile/plugins/branded-splash.test.ts, and its resolution is byte-identical toorigin/main(git diff origin/main --stat -- apps/mobile/plugins/branded-splash.test.tsis empty).Merged test command, from
apps/mobile:Decisive output:
Each of the six files passes on its own (
Test Files 1 passed (1)). The auto-mergedsession-list-screen.tsxalso passes its own suite:pnpm exec vitest run src/components/agents/session-list-screen.mounted.test.tsxreportsTests 87 passed (87).