Skip to content

feat(kilo-jetbrains): add model and config settings#10839

Merged
kirillk merged 33 commits into
mainfrom
generated-flame
Jun 3, 2026
Merged

feat(kilo-jetbrains): add model and config settings#10839
kirillk merged 33 commits into
mainfrom
generated-flame

Conversation

@kirillk

@kirillk kirillk commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Context

JetBrains users need first-class settings surfaces for Kilo model defaults, reasoning configuration, profile state, and config file access instead of relying on hidden backend state or manual file discovery.

Screenshots

Models settings

Screen Shot 2026-06-02 at 11 37 05 PM

Model picker, reset

Screen Shot 2026-06-02 at 11 39 50 PM

Models settings, not logged in

Screen Shot 2026-06-02 at 11 37 36 PM

Tool window actions

Screen Shot 2026-06-02 at 11 38 06 PM

Open/Create settings file

Screen Shot 2026-06-02 at 11 38 51 PM

Implementation

Adds a JetBrains Models settings page for default profile/model and reasoning selections, backed by reusable Swing settings UI scaffolding, loading overlays, and state restoration.

Extends frontend/backend/shared RPC state so the frontend can load and save app/workspace settings, config targets, and related model/profile metadata.

Adds actions for opening local, project, and external Kilo config files from the JetBrains plugin, plus notifications for action feedback.

Updates the session model picker to support empty settings selections, favorite/free/data-collection indicators, and small-model filtering used by the settings page.

Includes a small Kilo CLI type compatibility fix for zstd worker helpers so root typecheck passes after merging main.

How to Test

Manual/local verification

  • Agent ran java -version from packages/kilo-jetbrains/: OpenJDK 21.0.5 available.
  • Agent ran ./gradlew typecheck from packages/kilo-jetbrains/: passed.
  • Agent ran ./gradlew :frontend:test --tests ai.kilocode.client.session.ui.model.ModelPickerTest from packages/kilo-jetbrains/: passed.
  • Agent ran ./gradlew test from packages/kilo-jetbrains/: passed.
  • Agent ran bun run typecheck from packages/opencode/: passed.
  • Agent ran bun turbo typecheck from the repo root: passed.

Reviewer test steps

  1. Launch the JetBrains plugin in a sandbox IDE.
  2. Open Settings and confirm the Kilo profile/settings page can be selected and restored.
  3. Open the Models settings page and verify default model/profile, reasoning, and empty model selections load and save correctly.
  4. Open the model picker and verify favorites, free badges, Kilo free-model data warning indicators, and small-model filtering behave as expected.
  5. Run the Kilo config open actions for local, project, and external config targets and confirm they open the intended file or show actionable feedback.

Blocked checks and substitute verification

  • None.

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-code-bot

kilo-code-bot Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

The latest commits (since last review at 33333e44) contain only:

  • zstd import cleanup: Named imports { zstdCompress, zstdDecompress } from node:zlib replace the previous type-cast approach; @types/node added then removed as a dev dependency.
  • Free model disclosure copy: Label updated from "Data collected""May train" (compact TUI form) and panel text to "Free - data may be used for training" for greater clarity.
  • i18n updates: All 16 locales updated to reflect the clarified model.tag.dataCollected phrasing.
  • Changeset extended: @kilocode/cli and @kilocode/kilo-jetbrains added to the changeset alongside the existing entries.
  • Test/string alignment: JetBrains bundle key and test assertions updated to match the new strings.

✅ The 2 previously flagged runBlocking issues in OpenConfigActions.kt are resolved — the final implementation uses ActionUpdateThread.BGT with non-blocking ConcurrentHashMap reads, no runBlocking anywhere.

✅ The previously flagged bare KiloBackendCliManager() instantiation concern in KiloWorkspaceRpcApiImpl.kt is not present — there is no such instantiation in that file; it lives in KiloBackendAppService's service-injection constructor which is the correct managed location.

Files Reviewed (incremental diff, 29 files)
  • packages/opencode/src/kilocode/session-export/worker/zstd.ts — no issues
  • packages/opencode/src/kilocode/components/free-model-disclosure.ts — no issues
  • packages/opencode/test/kilocode/free-model-disclosure.test.ts — no issues
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties — no issues
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/model/ModelPickerTest.kt — string alignment only, no issues
  • packages/kilo-vscode/tests/unit/model-selector-utils.test.ts — string alignment only, no issues
  • packages/kilo-vscode/webview-ui/src/i18n/*.ts (16 locale files) — no issues
  • .changeset/brain-circuit-data-disclosure.md — no issues
  • package.json, bun.lock@types/node dev dep added then removed, no issues

Reviewed by claude-4.6-sonnet-20260217 · 5,140,911 tokens

Review guidance: REVIEW.md from base branch main

@kirillk kirillk enabled auto-merge June 3, 2026 17:31
@kirillk kirillk merged commit 73d641a into main Jun 3, 2026
20 checks passed
@kirillk kirillk deleted the generated-flame branch June 3, 2026 17:38
LigiaZ added a commit that referenced this pull request Jun 3, 2026
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