On a fresh CI runner, multiple Turbo tasks starting in parallel can race
to extract the Gradle wrapper zip, producing ClosedFileSystemException.
Run ./gradlew --version before turbo test:ci to ensure the wrapper is
fully extracted before any parallel task touches it.
Re-enable @kilocode/kilo-jetbrains in bun turbo typecheck (package.json) and
bun turbo test:ci (test.yml). Add Java 21 setup to the typecheck workflow so
Gradle can run. Fix three serialization test failures:
- KiloProfile200Response with null balance / with organizations: Effect's HttpApi
OpenAPI generator emits balance and currentOrgId as non-nullable even though
the server schema uses Schema.NullOr. Add fixProfileNullable step to
OpenApiSpecNormalizer that wraps these fields in anyOf: [{schema}, {type:null}]
before Kotlin client generation, plus regression tests.
- model limit context and output deserialize with large values (NoSuchMethodError):
compileTestKotlin was not invalidated when the generated API type changed, leaving
stale bytecode referencing the old ProviderConfigModelsValueAnyOfLimit class.
Wire compileTestKotlin -> fixGeneratedApi in backend/build.gradle.kts so API
regeneration always invalidates test compilation.
Replace legacy "opencode" references with "kilo" in CLI output,
API metadata, SDK error messages, and documentation. Add automatic
labels to GitHub issue templates, expand triage agent with jetbrains
and extension teams, and update the github-triage tool to target the
Kilo-Org/kilocode repository.
- Adds 'new file' marker to check-forbidden-strings workflow
- Marks the SKIP_FILES addition in extract-source-links.ts
- Updates nvidia-headers test to assert the new kilo.ai/Kilo Code values
Replace the inline opncd.ai/s/ grep added to check-kilocode-change with a standalone script/check-forbidden-strings.ts. Wired into test-vscode.yml as a separate step alongside the existing marker check.
- Add kilocode_change markers around Java 21 setup in test.yml (required
by annotation checker for .github/** changes)
- Fix test-ci.ts: use ./gradlew.bat (not bare gradlew.bat) on Windows so
bun's shell can locate and execute the wrapper script
- Fix HistorySessionActionsTest: delete two items races — use waitFor
instead of fixed-duration flush so both coroutine deletes complete before
asserting; sort IDs for ordering-independent comparison
- Add setup-java@v4 (temurin 21) step to test.yml so Windows runner has
the JDK required for Gradle Kotlin compilation
- Fix SessionRecoveryTest: existing-session flow (controller("ses_test"))
calls showSession() after history load, setting showSession=true;
update show=false -> show=true in 7 assertSession calls that tested
this flow
`harbor run` (jobs.py) only exposes `--agent-setup-timeout-multiplier`;
the absolute `--agent-setup-timeout` flag only exists on `harbor trials`.
Use the multiplier (2.0 = 720s from the 360s default) instead.