feat(jetbrains): badge agent manager as beta

This commit is contained in:
kirillk
2026-08-14 13:36:52 -04:00
parent 66819e69a0
commit aadf773f28
4 changed files with 40 additions and 0 deletions
@@ -0,0 +1,5 @@
---
"@kilocode/kilo-jetbrains": patch
---
Show a Beta badge on the Agent Manager tool window tab.
@@ -13,6 +13,7 @@ import ai.kilocode.client.agentManager.worktree.WorktreeController
import ai.kilocode.client.agentManager.AgentManagerPanel
import ai.kilocode.client.plugin.KiloBundle
import ai.kilocode.log.KiloLog
import com.intellij.icons.AllIcons
import com.intellij.openapi.actionSystem.ActionGroup
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.DataProvider
@@ -25,6 +26,7 @@ import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import com.intellij.platform.project.projectIdOrNull
import com.intellij.openapi.wm.impl.content.ToolWindowContentUi
import com.intellij.ui.content.Content
import com.intellij.ui.content.ContentManagerEvent
import com.intellij.ui.content.ContentManagerListener
import com.intellij.ui.content.ContentFactory
@@ -33,6 +35,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.awt.BorderLayout
import java.awt.ComponentOrientation
import javax.swing.JPanel
/**
@@ -126,6 +129,7 @@ internal class KiloToolWindowSetupService(
chatContent.setDisposer(manager)
chatContent.setPreferredFocusedComponent { manager.defaultFocusedComponent }
val agentContent = factory.createContent(agent, KiloBundle.message("sidePanel.mode.agentManager"), false)
agentContent.applyAgentManagerBetaBadge()
agentContent.setPreferredFocusedComponent { agentManagerPanel.component }
toolWindow.contentManager.addContent(chatContent)
toolWindow.contentManager.addContent(agentContent)
@@ -158,3 +162,10 @@ internal class KiloToolWindowSetupService(
}
}
}
internal fun Content.applyAgentManagerBetaBadge() {
icon = AllIcons.General.Beta
description = KiloBundle.message("sidePanel.mode.agentManager.beta.description")
putUserData(ToolWindow.SHOW_CONTENT_ICON, true)
putUserData(Content.TAB_LABEL_ORIENTATION_KEY, ComponentOrientation.RIGHT_TO_LEFT)
}
@@ -338,6 +338,7 @@ history.error.cloud.delete=Cloud sessions cannot be deleted yet
sidePanel.mode.branch=AI Chat
sidePanel.mode.agentManager=Agent Manager
sidePanel.mode.agentManager.beta.description=Agent Manager (Beta)
worktree.empty=No worktrees
worktree.delete.action=Delete worktree
worktree.delete.confirm.message=Delete worktree "{0}"?
@@ -0,0 +1,23 @@
package ai.kilocode.client
import ai.kilocode.client.util.edtWait
import com.intellij.icons.AllIcons
import com.intellij.openapi.wm.ToolWindow
import com.intellij.testFramework.fixtures.BasePlatformTestCase
import com.intellij.ui.content.Content
import com.intellij.ui.content.ContentFactory
import java.awt.ComponentOrientation
import javax.swing.JPanel
class KiloToolWindowFactoryTest : BasePlatformTestCase() {
fun `test agent manager content uses beta badge metadata`() = edtWait {
val content = ContentFactory.getInstance().createContent(JPanel(), "Agent Manager", false)
content.applyAgentManagerBetaBadge()
assertSame(AllIcons.General.Beta, content.icon)
assertEquals("Agent Manager (Beta)", content.description)
assertEquals(true, content.getUserData(ToolWindow.SHOW_CONTENT_ICON))
assertEquals(ComponentOrientation.RIGHT_TO_LEFT, content.getUserData(Content.TAB_LABEL_ORIENTATION_KEY))
}
}