fix(jetbrains): show revert progress inline - #12104
Conversation
Code Review SummaryStatus: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Fix these issues in Kilo Cloud Files Reviewed (2 files)
Previous Review Summaries (4 snapshots, latest commit af02970)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit af02970)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Fix these issues in Kilo Cloud Files Reviewed (9 files)
Previous review (commit 8b54e34)Status: 5 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Fix these issues in Kilo Cloud Files Reviewed (38 files)
Previous review (commit 465adb6)Status: 5 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Fix these issues in Kilo Cloud Files Reviewed (38 files)
Previous review (commit c1b206b)Status: 4 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
SUGGESTION
Fix these issues in Kilo Cloud Files Reviewed (19 files)
Reviewed by gpt-5.6-sol-20260709 · Input: 145.4K · Output: 17.5K · Cached: 1M Review guidance: REVIEW.md from base branch |
Address review feedback on inline revert progress: - Backend revert/unrevert now use a cancellable OkHttp call with a bounded request timeout, so coroutine cancellation aborts the in-flight request and a stuck request can no longer lock the session indefinitely. - Cancel now actually cancels the active rollback/redo job instead of only relabeling the progress text; the UI stays locked on the operation until the backend request returns, then clears or reports the final outcome. - The revert watchdog cancels the timed-out job and releases the operation lock via failReverting rather than leaving revertOp alive forever. - TurnOpen/TurnClose no longer clobber an active revert operation state. - The revert banner represents active rollback (not just redo) with inline progress and disabled redo controls so progress never silently disappears. - Clear the mounted hover copy overlay when reverting starts so the rollback toolbar no longer lingers next to the progress row.
Address review: guarding TurnOpen/TurnClose/status with revertOp dropped the transitions entirely, so a turn that started just before a rollback could leave the prompt idle while the server turn was still active. Record the underlying turn/status transition in revertDeferred while the revert is held and reconcile it when the operation releases: an aborted turn releases to Idle, a still-active turn releases back to Busy/Retry/Offline. Failed reverts still surface the error explicitly.
| revertJob = null | ||
| revertOp = null | ||
| // A failed revert surfaces the error explicitly; drop any deferred turn state. | ||
| revertDeferred = null |
There was a problem hiding this comment.
[WARNING]: Preserve deferred active-turn state on failure
TurnOpen and status now record Busy/Retry/Offline, but this branch discards that state whenever the rollback RPC fails or the watchdog times out. In the race this mechanism is intended to cover, a turn can open after the initial busy check; if the revert then fails, replacing the deferred activity with SessionState.Error loses knowledge of the live server turn and can enable the prompt while that turn continues. Please surface the revert error without dropping a non-terminal deferred state, or retain the turn activity separately until an idle/close event arrives.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
fix(jetbrains): show revert progress inline
Issue
No linked issue; this is follow-up polish for the JetBrains rollback/redo progress UX.
Context
Rollback and redo currently take over the whole transcript with a loading surface. That hides the conversation during a short, contextual operation and makes it unclear which message or redo controls are in progress.
Implementation
Replaces the full-body reverting surface with inline progress:
LoadingPanelis simplified back to loading/retry/offline text onlyScreenshots
Rolling back
Redoing
How to Test
Manual/local verification
./gradlew :frontend:test --tests ai.kilocode.client.session.ui.SessionMessageListPanelTest --tests ai.kilocode.client.session.SessionUiLayoutTest --tests ai.kilocode.client.session.controller.TurnLifecycleTest --tests ai.kilocode.client.session.ui.LoadingPanelTest --tests ai.kilocode.client.session.ui.RevertProgressTest --tests ai.kilocode.client.session.ui.ProgressPanelTestpassed../gradlew typecheckpassed../gradlew testpassed.bun turbo typecheck --filter=!@kilocode/kilo-jetbrainspassed.bun turbo typecheck --filter=@kilocode/kilo-jetbrainspassed.Reviewer test steps
Rolling back...and Cancel inline.Redoing...and Cancel on the action row.Blocked checks and substitute verification
Checklist
Get in Touch
Kilo maintainer / internal contributor.