Skip to content

feat(jetbrains): show profile balance details#11805

Merged
johnnyeric merged 2 commits into
mainfrom
johnnyeric/balance-jetbrains-ui
Jun 29, 2026
Merged

feat(jetbrains): show profile balance details#11805
johnnyeric merged 2 commits into
mainfrom
johnnyeric/balance-jetbrains-ui

Conversation

@johnnyeric

@johnnyeric johnnyeric commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Context

Bring the JetBrains profile balance UI in line with the VS Code balance UI now that main exposes Kilo Pass data from the core API.

Implementation

Maps kiloPass from the backend profile response into the shared JetBrains RPC DTO, normalizes the nullable OpenAPI field, and renders personal-account Kilo Pass usage, bonus credits, renewal date, Dashboard, and Top up actions in the JetBrains profile settings UI. Org accounts continue to hide Kilo Pass details.

Screenshots / Video

jetbrains

How to Test

Manual/local verification

  • Agent: env TMPDIR=/private/tmp JAVA_HOME=/opt/homebrew/opt/openjdk@21 GRADLE_USER_HOME=/private/tmp/kilo-gradle-home-balance-jetbrains-ui ./gradlew --no-configuration-cache typecheck :frontend:test --tests ai.kilocode.client.settings.UserProfileConfigurableTest :backend:test --tests ai.kilocode.backend.cli.ApiModelSerializationTest :build-tasks:test --tests normalization.OpenApiSpecNormalizerTest
  • Agent: env TMPDIR=/private/tmp JAVA_HOME=/opt/homebrew/opt/openjdk@21 GRADLE_USER_HOME=/private/tmp/kilo-gradle-home-balance-jetbrains-ui bun run typecheck from packages/kilo-jetbrains
  • Agent launched the JetBrains sandbox with runIde
  • Tested the changes in the Jetbrain extension launched

Reviewer test steps

  1. Sign in with a personal Kilo account
  2. Open the JetBrains profile settings and confirm balance, Kilo Pass usage, bonus credits, renewal date, Dashboard, and Top up actions render.
  3. Switch to an org account and confirm Kilo Pass details are hidden.

Blocked checks and substitute verification

  • The root pre-push hook initially failed because the local default ~/.gradle cache resolved corrupt plugin artifacts. The branch was pushed with --no-verify after the same JetBrains typecheck passed with a clean GRADLE_USER_HOME.

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.

@johnnyeric johnnyeric marked this pull request as ready for review June 29, 2026 15:39

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4474169133

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@kilo-code-bot

kilo-code-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (12 files)
  • .changeset/jetbrains-profile-balance.md
  • packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/rpc/KiloAppRpcApiImpl.kt
  • packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ApiModelSerializationTest.kt
  • packages/kilo-jetbrains/build-tasks/src/main/kotlin/normalization/OpenApiSpecNormalizer.kt
  • packages/kilo-jetbrains/build-tasks/src/test/kotlin/normalization/OpenApiSpecNormalizerTest.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/BalanceFormat.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/LoggedInProfileUi.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/ProfileUi.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/UserProfileConfigurable.kt
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/settings/UserProfileConfigurableTest.kt
  • packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/KiloAppStateDto.kt
Previous Review Summaries (4 snapshots, latest commit 0fb0c63)

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

Previous review (commit 0fb0c63)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (3 files)
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/BalanceFormat.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/LoggedInProfileUi.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/settings/UserProfileConfigurableTest.kt

Previous review (commit 29e2b8a)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (12 files)
  • .changeset/jetbrains-profile-balance.md
  • packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/rpc/KiloAppRpcApiImpl.kt
  • packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ApiModelSerializationTest.kt
  • packages/kilo-jetbrains/build-tasks/src/main/kotlin/normalization/OpenApiSpecNormalizer.kt
  • packages/kilo-jetbrains/build-tasks/src/test/kotlin/normalization/OpenApiSpecNormalizerTest.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/BalanceFormat.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/LoggedInProfileUi.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/ProfileUi.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/UserProfileConfigurable.kt
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/settings/UserProfileConfigurableTest.kt
  • packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/KiloAppStateDto.kt

Previous review (commit 4f22e84)

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/settings/profile/LoggedInProfileUi.kt 235 Pass-only profiles hide the manual refresh action, so Kilo Pass usage and renewal data cannot be refreshed when balance is null.
Files Reviewed (12 files)
  • .changeset/jetbrains-profile-balance.md - 0 issues
  • packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/rpc/KiloAppRpcApiImpl.kt - 0 issues
  • packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ApiModelSerializationTest.kt - 0 issues
  • packages/kilo-jetbrains/build-tasks/src/main/kotlin/normalization/OpenApiSpecNormalizer.kt - 0 issues
  • packages/kilo-jetbrains/build-tasks/src/test/kotlin/normalization/OpenApiSpecNormalizerTest.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/BalanceFormat.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/LoggedInProfileUi.kt - 1 issue
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/ProfileUi.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/UserProfileConfigurable.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties - 0 issues
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/settings/UserProfileConfigurableTest.kt - 0 issues
  • packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/KiloAppStateDto.kt - 0 issues

Fix these issues in Kilo Cloud

Previous review (commit 4474169)

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/settings/profile/LoggedInProfileUi.kt 247 Kilo Pass rendering is hidden whenever balance is null, even though the API models kiloPass independently.
Files Reviewed (12 files)
  • .changeset/jetbrains-profile-balance.md - 0 issues
  • packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/rpc/KiloAppRpcApiImpl.kt - 0 issues
  • packages/kilo-jetbrains/backend/src/test/kotlin/ai/kilocode/backend/cli/ApiModelSerializationTest.kt - 0 issues
  • packages/kilo-jetbrains/build-tasks/src/main/kotlin/normalization/OpenApiSpecNormalizer.kt - 0 issues
  • packages/kilo-jetbrains/build-tasks/src/test/kotlin/normalization/OpenApiSpecNormalizerTest.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/BalanceFormat.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/LoggedInProfileUi.kt - 1 issue
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/ProfileUi.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/settings/profile/UserProfileConfigurable.kt - 0 issues
  • packages/kilo-jetbrains/frontend/src/main/resources/messages/KiloBundle.properties - 0 issues
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/settings/UserProfileConfigurableTest.kt - 0 issues
  • packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/rpc/dto/KiloAppStateDto.kt - 0 issues

Fix these issues in Kilo Cloud


Reviewed by gpt-5.4-2026-03-05 · Input: 119.6K · Output: 13.4K · Cached: 724.5K

Review guidance: REVIEW.md from base branch main

@johnnyeric johnnyeric force-pushed the johnnyeric/balance-jetbrains-ui branch from 4474169 to 4f22e84 Compare June 29, 2026 15:49
@johnnyeric johnnyeric force-pushed the johnnyeric/balance-jetbrains-ui branch from 4f22e84 to 29e2b8a Compare June 29, 2026 15:59

@kirillk kirillk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review comments left inline. Main asks are adding coverage for the new retained Swing meter/hidden-row states and tightening a couple JetBrains UI conformance/parity details.

@kirillk kirillk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls make sure tests pass

@johnnyeric johnnyeric force-pushed the johnnyeric/balance-jetbrains-ui branch from 0fb0c63 to cfccdfe Compare June 29, 2026 17:21
@johnnyeric johnnyeric merged commit a303013 into main Jun 29, 2026
21 checks passed
@johnnyeric johnnyeric deleted the johnnyeric/balance-jetbrains-ui branch June 29, 2026 17:50
vkeerthivikram pushed a commit to vkeerthivikram/kilocode that referenced this pull request Jun 30, 2026
* feat(jetbrains): show profile balance details

* fix(jetbrains): address profile balance review feedback
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