Repository navigation
feat(jetbrains): add checkpoint settings and revert guidance - #14512
Conversation
…evert Ports PR #14464 to the JetBrains plugin. VS Code already differentiated revert-notice reasons (snapshots disabled, checkpoint unavailable, not a Git repository), but JetBrains had no workspace status field at all and always showed a single generic 'Snapshots are off' message regardless of the actual cause. - Add workspace to the shared SessionRevertDto and parse/map it in the backend CLI data parser and session manager (both the direct decode path and the reflective fallback for differently-shaped generated models). - Branch the RevertBanner notice on workspace: hidden when restored, a specific message for snapshots-disabled / unavailable / not-a-git-repo, and a legacy fallback for older reverts that predate this field. - Add the four new revert.banner.workspace.* bundle keys to the base properties file and all locale files, and drop the now-unused filesNotRestored key.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (4 files)
Previous Review Summaries (10 snapshots, latest commit 2e2b609)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 2e2b609)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (4 files)
Fix these issues in Kilo Cloud Previous review (commit df96365)Status: No Issues Found | Recommendation: Merge Incremental review of commit Files Reviewed (2 files)
Previous review (commit fb59799)Status: No Issues Found | Recommendation: Merge Incremental review of commits Files Reviewed (5 files)
Previous review (commit 22fbf94)Status: No Issues Found | Recommendation: Merge Incremental review of commit Files Reviewed (6 files)
Previous review (commit 81972e3)Status: 4 Issues Found | Recommendation: Address before merge Incremental review of commit Overview
Issue Details (click to expand)WARNING
SUGGESTION
Files Reviewed (44 files)
Fix these issues in Kilo Cloud Previous review (commit 65f692e)Status: No Issues Found | Recommendation: Merge Incremental review of commit Files Reviewed (1 file)
Previous review (commit f7ee5ef)Status: No Issues Found | Recommendation: Merge Files Reviewed (19 files)
Previous review (commit c481ff5)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (25 files)
Fix these issues in Kilo Cloud Previous review (commit a882dde)Status: No Issues Found | Recommendation: Merge Files Reviewed (1 file)
Previous review (commit b3da592)Status: 1 Issue Found | Recommendation: Merge; one optional cleanup suggestion Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (27 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
…lient/session/ui/RevertBanner.kt Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Let JetBrains users control snapshot tracking from the standard Kilo settings UI instead of editing config files manually. Resolve the active project across split mode so project-level snapshot overrides, including the CLI slow-repository opt-out, can be changed from the banner link.
Mirror the new Checkpoints settings and revert-banner link strings into every localized bundle so locale resources stay structurally consistent. Add a bundle test that prevents future checkpoint keys from being omitted.
Wait for a changed background-job payload after the previous subscriber leaves instead of accepting the shared flow's replayed empty list. Keep both new subscribers on one resolved flow so the request assertion deterministically measures poller sharing rather than cache-eviction scheduling.
Complete Checkpoints settings parity with VS Code by storing retention policy in global CLI config and using the CLI's machine-wide retention endpoints for scheduling, manual cleanup, progress, and last-run results. Keep snapshot changes project-aware, place Checkpoints after Context, and preserve all CLI activity and fork-safety rules.
Preserve surrounding config when retention days are malformed, restore invalid day input on Reset and successful Apply, stop idle retention polling, and tie forced cleanup requests to the settings page lifecycle.
Keep Run Cleanup Now available when automatic cleanup is disabled. For pinned CLI versions that gate forced retention on an enabled policy, temporarily enable the saved policy for the manual pass and restore it in a non-cancellable cleanup step.
Do not disable Run Cleanup Now merely because automatic cleanup or retention days have unsaved edits. Use the last saved retention policy for the manual pass so running cleanup cannot implicitly apply the draft.
Render Enable snapshots as a retained DialogView footer button before Redo instead of an inline link. Format workspace restoration notices as escaped auto-wrapping HTML so long explanations reflow within narrow chat cards.
Add a shared retained left-action API to DialogView so Enable snapshots uses the standard footer button at the left edge and survives temporary progress content. Mark Redo as the primary action for the common default-button style.
Update retained left-action state even while a temporary progress component occupies the footer slot. Restoring the slot now deterministically shows or clears Enable snapshots based on the latest revert workspace status.
Issue
Ports #14464 to the JetBrains plugin and completes the missing Checkpoints settings parity needed by its revert notice.
Fixes #
Context
PR #14464 fixed the CLI so a revert in a non-Git folder reports a dedicated
not-a-git-repoworkspace status, and updated the VS Code webview to show a specific notice for that case.JetBrains did not model the revert workspace status at all: its rollback banner always showed one hardcoded snapshots-disabled message, even when the cause was a missing Git repository or checkpoint. It also had no Checkpoints UI for snapshots or the CLI's machine-wide session retention feature.
Implementation
revert.workspacevalue through the shared session DTO and both backend decode paths.DraftReadyConfigurable,BaseSettingsUi,SettingsRow, andSettingsToggleclasses.snapshotvalue for the current project and patches that project's config through the split-mode workspace RPC; unset remains enabled by default, matching the CLI and VS Code. Without a project context, it falls back to global config.retention.enabled,retention.maxAgeDays), with disabled/30-day defaults, validation, Apply/Reset behavior, confirmation, progress, errors, and persisted last-run results from the CLI.No CLI, SDK, or VS Code files are changed; this is scoped to
packages/kilo-jetbrains/.Screenshots / Video
How to Test
snapshotis absent from the effective project config."snapshot": false."snapshot": true.retention.enabledandretention.maxAgeDays.Automated verification covers nested retention config parsing/patching, generated endpoint mapping, forced/scheduled cleanup, scheduler timing, settings defaults/apply/reset/scope, confirmation, ordering, localization, revert reasons, and banner-link visibility/action. Local checks: the CLI's 26 retention tests, plus
./gradlew typecheck,./gradlew test, and./gradlew buildPluginfrompackages/kilo-jetbrains/.Checklist
.changeset/jetbrains-revert-not-a-git-repo-notice.md)Get in Touch