Skip to content

fix(jetbrains): unify session strip interactions - #14548

Merged
kirillk merged 3 commits into
mainfrom
quiet-raccoon
Sep 25, 2026
Merged

kirillk merged 3 commits into
mainfrom
quiet-raccoon

Conversation

@kirillk

@kirillk kirillk commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Issue

No linked issue. This implements a requested JetBrains background-agent strip UX adjustment.

Context

Collapsed background-agent names looked like independent controls and opened transcripts directly, even though the surrounding header expanded the strip. This made the header response depend on the exact click target. The todo and agent strips also lacked the hover feedback used by expandable transcript blocks.

Implementation

Treat collapsed agent previews as part of the strip toggle rather than transcript links. The shared strip chrome now tracks dynamically added header descendants, preserving independent trailing actions while making inert header content consistently expand or collapse the body. Both agent and todo strip headers use the existing rounded transcript-header hover surface. Expanded agent rows retain their existing transcript-opening behavior.

Screenshots / Video

GIF Recording 2026-09-25 at 11 29 01 AM

How to Test

Manual/local verification

  • Agent executed ./gradlew typecheck from packages/kilo-jetbrains/; passed.
  • Agent executed ./gradlew :frontend:test from packages/kilo-jetbrains/; passed.
  • Agent executed focused StripTest, BackgroundAgentStripTest, and BackgroundAgentStripStressTest; passed.
  • The pre-push repository typecheck hook passed.

Reviewer test steps

  1. Start a JetBrains chat session with one or more background agents.
  2. Hover the background-agent strip and confirm the full header receives the same rounded hover fill as a transcript block.
  3. Click an agent name in the collapsed header and confirm the strip expands without opening that agent transcript.
  4. Click anywhere on the expanded strip header and confirm it collapses.
  5. Expand the strip again, click an agent row in the body, and confirm its transcript still opens.
  6. Create todos and confirm the todo strip uses the same full-header hover treatment and expand/collapse behavior.

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

N/A

@kilo-code-bot

kilo-code-bot Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStrip.kt
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/Strip.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStripTest.kt
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/StripTest.kt
Previous Review Summary (commit c5c36fc)

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

Previous review (commit c5c36fc)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

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

SUGGESTION

File Line Issue
packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/Strip.kt 82 Hover fill can stick when an overlay covers the strip header, since exit uses bounds-only containment while the sibling Row.inside documents the topmost-component check.
packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStrip.kt 402 Chip tooltip set only on the container; the chip's child labels own the mouse listeners, so the title tooltip will not show over the icon/name.
Files Reviewed (6 files)
  • .changeset/calm-strips-toggle.md - no issues
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStrip.kt - 1 suggestion
  • packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/session/ui/header/Strip.kt - 1 suggestion
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStripStressTest.kt - no issues
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/BackgroundAgentStripTest.kt - no issues
  • packages/kilo-jetbrains/frontend/src/test/kotlin/ai/kilocode/client/session/ui/header/StripTest.kt - no issues

Fix these issues in Kilo Cloud


Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0

Review guidance: REVIEW.md from base branch main

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