Skip to content

fix(jetbrains): improve CLI recovery and config paths - #11850

Merged
kirillk merged 6 commits into
mainfrom
nervous-marionberry
Jul 1, 2026
Merged

fix(jetbrains): improve CLI recovery and config paths#11850
kirillk merged 6 commits into
mainfrom
nervous-marionberry

Conversation

@kirillk

@kirillk kirillk commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Issue

No linked issue; user-requested JetBrains plugin fixes.

Context

This PR improves the JetBrains plugin connection recovery and config-file actions so users can recover CLI startup/config issues more easily and see the exact config paths the CLI will use.

Implementation

  • Float the connection status panel above the prompt so connection errors/warnings stay visible without consuming prompt layout space.
  • Change the retry link into a CLI recovery popup that exposes Restart CLI and Reinstall CLI actions from the connection banner.
  • Refresh local/global config targets in the background so settings menu actions show current resolved paths and reflect filesystem changes.
  • Align JetBrains global config path resolution with the CLI's XDG config fallback (~/.config/kilo).
  • Add focused coverage for config-path resolution, background refresh dedupe/prewarm, popup labels, and connection-banner layout.

Screenshots

Open/Create settings file

Screen Shot 2026-07-01 at 10 08 01 AM

Try Again options

Screen Shot 2026-07-01 at 10 10 27 AM

Error details

Screen Shot 2026-07-01 at 10 11 04 AM

Loading indicator

Screen Shot 2026-07-01 at 10 12 22 AM

How to Test

Manual/local verification

  • Agent ran ./gradlew :backend:test --tests ai.kilocode.backend.cli.KiloCliConfigPathTest :frontend:test --tests ai.kilocode.client.actions.KiloRecoveryActionsTest --tests ai.kilocode.client.session.ui.ConnectionPanelTest from packages/kilo-jetbrains/.
  • Agent ran ./gradlew typecheck from packages/kilo-jetbrains/.
  • Pre-push hook ran bun turbo typecheck successfully.

Reviewer test steps

  1. Launch the JetBrains plugin sandbox.
  2. Trigger a CLI connection error or warning and confirm the connection banner floats above the prompt.
  3. Click Try again in the banner and confirm the popup offers Restart CLI and Reinstall CLI.
  4. Open the Kilo settings menu and confirm local/global config actions show resolved paths.
  5. Create or delete a local config file and reopen the settings menu to confirm the action updates between Create: and Open:.
  6. Confirm the global config action targets the same global config directory used by the CLI.

Blocked checks and substitute verification

  • No blocked checks.

Checklist

  • Issue linked above, or exception explained
  • Tests/verification described
  • Screenshots/video included for visual changes, or marked N/A
  • Changeset considered for user-facing changes
  • I personally reviewed the diff and can explain the changes, including any AI-assisted work.

Get in Touch

Kilo team PR.

Comment thread .changeset/jetbrains-config-paths.md Outdated
@kilo-code-bot

kilo-code-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • packages/kilo-jetbrains/AGENTS.md
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/ConnectionPanelTest.kt
Previous Review Summaries (2 snapshots, latest commit d5f9e53)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit d5f9e53)

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt 302 New recoveryActionTexts() accessor exists only for test access, against the packages/kilo-jetbrains/AGENTS.md rule against production methods added solely for test inspection
Resolved since last review
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/actions/KiloRecoveryActionsTest.ktwaitFor/delay(25) polling replaced with deterministic CompletableDeferred signals
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt — retry click now adds a "Try again" action to the recovery popup that calls controller.retryConnection(), so the lightweight retry path is reachable again
  • .changeset/jetbrains-config-paths.md — description now covers the recovery popup and floating banner, and calls out that macOS/Windows users may need to move their existing global config file to ~/.config/kilo
Files Reviewed (6 files changed since last review)
  • .changeset/jetbrains-config-paths.md
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/KiloSettingsAction.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/app/KiloWorkspaceService.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt - 1 issue
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/actions/KiloRecoveryActionsTest.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/ConnectionPanelTest.kt

Fix these issues in Kilo Cloud

Previous review (commit 02c1177)

Status: 4 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 2
SUGGESTION 2
Issue Details (click to expand)

WARNING

File Line Issue
packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/actions/KiloRecoveryActionsTest.kt 278 New waitFor helper polls with delay(25) instead of deterministic synchronization, against project convention in packages/kilo-jetbrains/AGENTS.md
packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt 70 Retry click no longer reaches SessionController.retryConnection(), leaving its lightweight refresh/restart escalation policy unreachable from production code

SUGGESTION

File Line Issue
packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliConfigPath.kt 11 No migration/callout for existing macOS/Windows users whose global config lives at the old platform-specific directory
.changeset/jetbrains-config-paths.md 5 Changeset description only covers config paths, omitting the CLI recovery popup and floating connection banner changes
Files Reviewed (38 files)
  • .changeset/jetbrains-config-paths.md
  • packages/kilo-jetbrains/AGENTS.md
  • packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/cli/KiloCliConfigPath.kt
  • packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/KiloCliConfigPathTest.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/ActionEventWorkspace.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/KiloActionPlaces.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/KiloSettingsAction.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/OpenConfigActions.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/ReinstallKiloAction.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/actions/RestartKiloAction.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/app/KiloWorkspaceService.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/SessionUi.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/ConnectionPanel.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/prompt/PromptPanel.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/style/SessionUiStyle.kt
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle*.properties (19 locale files)
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/actions/KiloRecoveryActionsTest.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/SessionUiLayoutTest.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/ConnectionPanelTest.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/testing/FakeWorkspaceRpcApi.kt

Fix these issues in Kilo Cloud


Reviewed by claude-sonnet-5-20260630 · Input: 20 · Output: 5.7K · Cached: 497.5K

Review guidance: REVIEW.md from base branch main

@kirillk

kirillk commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the review feedback in d5f9e53:

  • Replaced polling/delay-based test waiting with deterministic CompletableDeferred signals and job joins.
  • Kept the lightweight retryConnection() path reachable by adding Try again as the first action in the recovery popup, followed by restart/reinstall.
  • Broadened the changeset to include the floating banner and recovery popup.
  • Added the macOS/Windows old global-config-location callout in the changeset.

Validation run locally:

  • ./gradlew :backend:test --tests ai.kilocode.backend.cli.KiloCliConfigPathTest :frontend:test --tests ai.kilocode.client.actions.KiloRecoveryActionsTest --tests ai.kilocode.client.session.ui.ConnectionPanelTest
  • ./gradlew typecheck
  • Pre-push bun turbo typecheck

@kirillk

kirillk commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the latest review feedback in 2a75b6c:

  • Removed the production-only recoveryActionTexts() test accessor.
  • Adjusted ConnectionPanelTest so it no longer depends on that test-only accessor.
  • Strengthened packages/kilo-jetbrains/AGENTS.md guidance to explicitly avoid exposing internal accessors/helpers/synthetic seams only for test inspection.

Validation run locally:

  • ./gradlew :frontend:test --tests ai.kilocode.client.session.ui.ConnectionPanelTest
  • ./gradlew typecheck
  • Pre-push bun turbo typecheck

@kirillk
kirillk merged commit ef013ba into main Jul 1, 2026
21 checks passed
@kirillk
kirillk deleted the nervous-marionberry branch July 1, 2026 15:12
t7tran pushed a commit to t7tran/kilocode that referenced this pull request Aug 14, 2026
fix(jetbrains): improve CLI recovery and config paths
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants