From f755792baa508096ffeb79bee99c5417086b0a74 Mon Sep 17 00:00:00 2001 From: kirillk Date: Sun, 31 May 2026 13:51:29 -0400 Subject: [PATCH] fix(jetbrains): keep telemetry payload on logger --- .../ai/kilocode/backend/dev/KiloDevMode.kt | 4 +- .../backend/telemetry/KiloBackendTelemetry.kt | 3 +- .../client/telemetry/KiloTelemetryService.kt | 5 +-- .../main/kotlin/ai/kilocode/log/KiloLog.kt | 42 +++++++++---------- 4 files changed, 25 insertions(+), 29 deletions(-) diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/dev/KiloDevMode.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/dev/KiloDevMode.kt index fedc21b82f8..1118cb96dd8 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/dev/KiloDevMode.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/dev/KiloDevMode.kt @@ -1,7 +1,7 @@ package ai.kilocode.backend.dev -import ai.kilocode.log.KiloEnvironment +import ai.kilocode.log.KiloLog object KiloDevMode { - fun enabled(): Boolean = KiloEnvironment.sandbox() + fun enabled(): Boolean = KiloLog.sandbox() } diff --git a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/telemetry/KiloBackendTelemetry.kt b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/telemetry/KiloBackendTelemetry.kt index 1d4f0d61a27..6a3fade0d25 100644 --- a/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/telemetry/KiloBackendTelemetry.kt +++ b/packages/kilo-jetbrains/backend/src/main/kotlin/ai/kilocode/backend/telemetry/KiloBackendTelemetry.kt @@ -1,7 +1,6 @@ package ai.kilocode.backend.telemetry import ai.kilocode.backend.dev.KiloDevMode -import ai.kilocode.log.KiloEnvironment import ai.kilocode.log.KiloLog import com.intellij.openapi.components.Service import kotlinx.coroutines.Dispatchers @@ -62,5 +61,5 @@ class KiloBackendTelemetry( ).toString() private fun base(): Map = - KiloEnvironment.payload(log).mapValues { JsonPrimitive(it.value) } + KiloLog.payload(log).mapValues { JsonPrimitive(it.value) } } diff --git a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/telemetry/KiloTelemetryService.kt b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/telemetry/KiloTelemetryService.kt index b4264327892..7dbe80eb65d 100644 --- a/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/telemetry/KiloTelemetryService.kt +++ b/packages/kilo-jetbrains/frontend/src/main/kotlin/ai/kilocode/client/telemetry/KiloTelemetryService.kt @@ -2,7 +2,6 @@ package ai.kilocode.client.telemetry -import ai.kilocode.log.KiloEnvironment import ai.kilocode.log.KiloLog import ai.kilocode.rpc.KiloAppRpcApi import ai.kilocode.rpc.dto.TelemetryCaptureDto @@ -32,8 +31,8 @@ class KiloTelemetryService internal constructor( } fun send(event: String, properties: Map = emptyMap()) { - if (KiloEnvironment.sandbox()) { - val payload = KiloEnvironment.payload(LOG) + properties + if (KiloLog.sandbox()) { + val payload = KiloLog.payload(LOG) + properties LOG.info("telemetry capture sandbox: event=$event ${payload.entries.joinToString(" ") { "${it.key}=${it.value}" }}") return } diff --git a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/KiloLog.kt b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/KiloLog.kt index 3477a5adc2b..12763663cf3 100644 --- a/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/KiloLog.kt +++ b/packages/kilo-jetbrains/shared/src/main/kotlin/ai/kilocode/log/KiloLog.kt @@ -48,33 +48,31 @@ interface KiloLog { companion object { fun create(cls: Class<*>): KiloLog { - if (KiloEnvironment.sandbox()) return FileLog(cls) + if (sandbox()) return FileLog(cls) val intellij = IntellijLog(cls) if (!runCatching { KiloPlugin.isRc() }.getOrDefault(false)) return intellij return CompositeLog(intellij, FileLog(cls)) } - } -} -object KiloEnvironment { - fun sandbox(): Boolean = System.getProperty("idea.plugin.in.sandbox.mode", "false").toBoolean() + fun sandbox(): Boolean = System.getProperty("idea.plugin.in.sandbox.mode", "false").toBoolean() - fun payload(log: KiloLog? = null): Map = buildMap { - put("platform", "jetbrains") - put("client", "jetbrains") - put("feature", "jetbrains-plugin") - runCatching { - val info = ApplicationInfo.getInstance() - put("editorName", info.fullApplicationName) - put("jetbrainsBuild", info.build.asString()) - }.onFailure { log?.info("Could not read ApplicationInfo for environment payload: ${it.message}") } - runCatching { - val version = KiloPlugin.version() - if (version != null) { - put("pluginVersion", version) - put("appVersion", version) - } - }.onFailure { log?.info("Could not read plugin version for environment payload: ${it.message}") } + fun payload(log: KiloLog? = null): Map = buildMap { + put("platform", "jetbrains") + put("client", "jetbrains") + put("feature", "jetbrains-plugin") + runCatching { + val info = ApplicationInfo.getInstance() + put("editorName", info.fullApplicationName) + put("jetbrainsBuild", info.build.asString()) + }.onFailure { log?.info("Could not read ApplicationInfo for environment payload: ${it.message}") } + runCatching { + val version = KiloPlugin.version() + if (version != null) { + put("pluginVersion", version) + put("appVersion", version) + } + }.onFailure { log?.info("Could not read plugin version for environment payload: ${it.message}") } + } } } @@ -102,7 +100,7 @@ internal class FileLog(cls: Class<*>) : KiloLog { private val root: java.util.logging.Logger by lazy { val logger = java.util.logging.Logger.getLogger("ai.kilocode") - val payload = KiloEnvironment.payload().entries.joinToString(" ") { "${it.key}=${it.value}" } + val payload = KiloLog.payload().entries.joinToString(" ") { "${it.key}=${it.value}" } logger.addHandler(handler) logger.useParentHandlers = false logger.level = level