Repository navigation
feat(mobile): fork a session from a message - #7440
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Incremental review of the fork-cut follow-up (commit Files Reviewed (11 files)
Previous Review Summary (commit fb8952d)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit fb8952d)Status: No Issues Found | Recommendation: Merge The PR threads an inclusive clone cut ( Files Reviewed (129 files)
Reviewed by deepseek-v4.1-flash · Input: 97.8K · Output: 25.5K · Cached: 1.3M Review guidance: REVIEW.md from base branch |
…fork-from-message-app
… igor/fork-from-message-app
|
bot: E2E on a VM: "Fork from here" on an assistant reply forked a remote CLI session into a second remote directory. The new session holds turns 1-2 only, the destination has only the turn 1-2 file edits, and the Continue screen showed no composer prefill. The session-ingest cut export returned the kept messages and an empty sessionDiff. The order bug in the forked transcript is fixed in the CLI (Kilo-Org/kilocode#15004). |
|
bot: More E2E results. b: a fork from a user message cloned the turns before it and prefilled its text, unsent. The first view of the new session showed "No messages yet" until I reopened it from history; the transcript then showed turns 1-2. e: an older CLI without sessionCloneAtMessage gets the update hint, and Start session stays disabled. |
|
bot: E2E for "Fork from here" with a Cloud Agent source (local stack on a VM, fake model, two turns writing a.txt then b.txt), forked from the turn 1 reply.
|
…remote CLI The CLI answers create_session for a clone before its share bootstrap and debounced full sync reach session ingest, so the route's one-time first page read could find the row with no history and show "No messages yet" until reopen. A clone spawn now navigates with cloned=1, and the manager re-reads an empty first page at 1s for the spawned budget.
|
bot: I re-tested the fix for the empty first view, with the app bundle served by Metro from this branch. I forked the Cloud Agent session from its turn 1 reply onto a computer again. The session opened straight away showing turn 1, with no "No messages yet" state and no need to reopen it. The destination CLI holds only the turn 1 messages, and its folder is unchanged. The app checks on this branch: typecheck and tests pass, lint fails with 7 errors in |













bot: Adds "Fork from here" to the message details sheet in the mobile agent chat, for Cloud Agent and remote CLI sessions.
Summary
cloneUpToMessageIdgoes throughprepareSession(web and worker schemas), session registration, and the session-ingest clone. The cut is part of the retry fingerprint, so a retry with a different cut is a conflict.create_sessioncarries the cut. The relay forwards the newsessionCloneAtMessageheartbeat capability. Mobile refuses the fork on a CLI without it and shows "Update the Kilo CLI".Merge order
Verification
typecheck,lint,check:unused,check:i18n, andtest: all pass.cloud-agent-next,cloud-agent-sdk,web, andsession-ingest: clean.session-ingestandcloud-agent-sdktest suites pass. The web jest tests for the changed routers pass with Postgres.cloud-agent-nextsuite passes except one file,managed-github-preparation-auth.test.ts, which this PR does not touch. It failed because real github.com returned HTTP 429 to the VM.