diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.bin b/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.bin deleted file mode 100644 index 4029e652d0d..00000000000 Binary files a/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.bin and /dev/null differ diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.lock b/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.lock deleted file mode 100644 index d6b9a37badb..00000000000 Binary files a/packages/kilo-jetbrains/build-tasks/.gradle/9.4.1/executionHistory/executionHistory.lock and /dev/null differ diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index 4b8c6caa37c..00000000000 Binary files a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/cache.properties b/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index 0a05d98f9bd..00000000000 --- a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Tue May 19 16:04:08 CEST 2026 -gradle.version=9.4.1 diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/outputFiles.bin b/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/outputFiles.bin deleted file mode 100644 index 4b2f277b5af..00000000000 Binary files a/packages/kilo-jetbrains/build-tasks/.gradle/buildOutputCleanup/outputFiles.bin and /dev/null differ diff --git a/packages/kilo-jetbrains/build-tasks/.gradle/file-system.probe b/packages/kilo-jetbrains/build-tasks/.gradle/file-system.probe deleted file mode 100644 index 8ef91659780..00000000000 Binary files a/packages/kilo-jetbrains/build-tasks/.gradle/file-system.probe and /dev/null differ diff --git a/packages/opencode/test/kilocode/background-process.test.ts b/packages/opencode/test/kilocode/background-process.test.ts index e4231d03c8d..911f5ac8a88 100644 --- a/packages/opencode/test/kilocode/background-process.test.ts +++ b/packages/opencode/test/kilocode/background-process.test.ts @@ -2,10 +2,27 @@ import { describe, expect } from "bun:test" import { Bus } from "@/bus" import { BackgroundProcess } from "@/kilocode/background-process" import { SessionID } from "@/session/schema" +import { Shell } from "@/shell/shell" import { Effect } from "effect" +import path from "path" import { TestInstance } from "../fixture/fixture" import { it } from "../lib/effect" +function quote(input: string) { + const value = input.replaceAll("\\", "/") + if (process.platform === "win32") return `"${value.replaceAll('"', '""')}"` + return `'${value.replaceAll("'", "'\\''")}'` +} + +async function script(dir: string, name: string, source: string) { + const file = path.join(dir, name) + await Bun.write(file, source) + const bin = quote(process.execPath) + const arg = quote(file) + if (Shell.ps(Shell.acceptable())) return `& ${bin} ${arg}` + return `${bin} ${arg}` +} + function update(sessionID: SessionID) { const state: { off?: () => void; timer?: ReturnType } = {} const promise = new Promise((resolve, reject) => { @@ -36,7 +53,15 @@ describe("BackgroundProcess", () => { Effect.gen(function* () { const test = yield* TestInstance const sessionID = SessionID.descending() - const command = "printf 'ready\\n'; while true; do sleep 1; done" + const command = yield* Effect.promise(() => + script( + test.directory, + "ready.mjs", + `console.log("ready") +setInterval(() => {}, 1_000) +`, + ), + ) const info = yield* Effect.promise(() => BackgroundProcess.start({ @@ -56,8 +81,10 @@ describe("BackgroundProcess", () => { const stopped = yield* Effect.promise(() => BackgroundProcess.stop(info.id)) expect(stopped?.status).toBe("stopped") - expect(stopped?.exitCode).toBeUndefined() - expect(stopped?.signal).toBe("SIGTERM") + if (process.platform !== "win32") { + expect(stopped?.exitCode).toBeUndefined() + expect(stopped?.signal).toBe("SIGTERM") + } yield* Effect.promise(() => BackgroundProcess.stopSession(sessionID)) const next = yield* Effect.promise(() => BackgroundProcess.list({ sessionID })) @@ -69,7 +96,16 @@ describe("BackgroundProcess", () => { Effect.gen(function* () { const test = yield* TestInstance const sessionID = SessionID.descending() - const command = "printf 'ready\n'; sleep 0.2; printf 'tick\n'; while true; do sleep 1; done" + const command = yield* Effect.promise(() => + script( + test.directory, + "tick.mjs", + `console.log("ready") +setTimeout(() => console.log("tick"), 200) +setInterval(() => {}, 1_000) +`, + ), + ) const wait = update(sessionID) const info = yield* Effect.promise(() => BackgroundProcess.start({