From 8b2612fa1da5b0854db9795800cd85a7e0a3f661 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 09:40:51 +0000 Subject: [PATCH 1/7] ci: skip unrelated JetBrains tests --- .github/workflows/test.yml | 49 +++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 76e7f06d2ce..38149ed112f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,11 +16,48 @@ concurrency: permissions: contents: read checks: write + pull-requests: read env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: + changes: + name: detect JetBrains changes + runs-on: blacksmith-4vcpu-ubuntu-2404 + outputs: + jetbrains: ${{ steps.filter.outputs.jetbrains }} + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Detect JetBrains changes + id: filter + uses: dorny/paths-filter@6852f92c20ea7fd3b0c25de3b5112db3a98da050 # v3 + with: + filters: | + jetbrains: + - 'packages/kilo-jetbrains/**' + - 'packages/opencode/src/**' + - 'packages/opencode/package.json' + - 'packages/opencode/tsconfig.json' + - 'packages/opencode/bunfig.toml' + - 'packages/core/**' + - 'packages/kilo-gateway/**' + - 'packages/kilo-indexing/**' + - 'packages/kilo-telemetry/**' + - 'packages/plugin/**' + - 'packages/plugin-atomic-chat/**' + - 'packages/sdk/**' + - 'packages/script/**' + - 'packages/ui/**' + - 'package.json' + - 'bun.lock' + - 'bunfig.toml' + - 'patches/**' + - '.github/actions/setup-bun/**' + - '.github/workflows/test.yml' + unit: name: unit (${{ matrix.settings.name }}) strategy: @@ -107,6 +144,8 @@ jobs: # kilocode_change start jetbrains: name: jetbrains + needs: changes + if: github.event_name == 'workflow_dispatch' || needs.changes.outputs.jetbrains == 'true' runs-on: blacksmith-4vcpu-ubuntu-2404 defaults: run: @@ -160,13 +199,21 @@ jobs: name: test (linux) runs-on: blacksmith-4vcpu-ubuntu-2404 needs: + - changes - unit - jetbrains if: always() steps: - name: Verify upstream test jobs passed run: | + echo "changes=${{ needs.changes.result }}" echo "unit=${{ needs.unit.result }}" echo "jetbrains=${{ needs.jetbrains.result }}" + test "${{ needs.changes.result }}" = "success" test "${{ needs.unit.result }}" = "success" - test "${{ needs.jetbrains.result }}" = "success" + if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "${{ needs.changes.outputs.jetbrains }}" = "true" ]; then + test "${{ needs.jetbrains.result }}" = "success" + else + test "${{ needs.changes.outputs.jetbrains }}" = "false" + test "${{ needs.jetbrains.result }}" = "skipped" + fi From e6d2994651e228a6c9cd724deb44ab6ca15b8690 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 09:45:19 +0000 Subject: [PATCH 2/7] fix(ci): use built-in JetBrains change detection --- .github/workflows/test.yml | 52 ++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 38149ed112f..e04ffee89dd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,12 +16,12 @@ concurrency: permissions: contents: read checks: write - pull-requests: read env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: + # kilocode_change start changes: name: detect JetBrains changes runs-on: blacksmith-4vcpu-ubuntu-2404 @@ -30,34 +30,34 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v6 + with: + fetch-depth: 0 - name: Detect JetBrains changes id: filter - uses: dorny/paths-filter@6852f92c20ea7fd3b0c25de3b5112db3a98da050 # v3 - with: - filters: | - jetbrains: - - 'packages/kilo-jetbrains/**' - - 'packages/opencode/src/**' - - 'packages/opencode/package.json' - - 'packages/opencode/tsconfig.json' - - 'packages/opencode/bunfig.toml' - - 'packages/core/**' - - 'packages/kilo-gateway/**' - - 'packages/kilo-indexing/**' - - 'packages/kilo-telemetry/**' - - 'packages/plugin/**' - - 'packages/plugin-atomic-chat/**' - - 'packages/sdk/**' - - 'packages/script/**' - - 'packages/ui/**' - - 'package.json' - - 'bun.lock' - - 'bunfig.toml' - - 'patches/**' - - '.github/actions/setup-bun/**' - - '.github/workflows/test.yml' + env: + BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }} + HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ -z "$BASE_SHA" ] || [[ "$BASE_SHA" =~ ^0+$ ]]; then + echo "jetbrains=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + relevant=false + while IFS= read -r -d '' path; do + case "$path" in + packages/kilo-jetbrains/* | packages/opencode/src/* | packages/opencode/package.json | packages/opencode/tsconfig.json | packages/opencode/bunfig.toml | \ + packages/core/* | packages/kilo-gateway/* | packages/kilo-indexing/* | packages/kilo-telemetry/* | packages/plugin/* | \ + packages/plugin-atomic-chat/* | packages/sdk/* | packages/script/* | packages/ui/* | package.json | bun.lock | bunfig.toml | \ + patches/* | .github/actions/setup-bun/* | .github/workflows/test.yml) + relevant=true + break + ;; + esac + done < <(git diff --name-only -z "$BASE_SHA" "$HEAD_SHA") + echo "jetbrains=$relevant" >> "$GITHUB_OUTPUT" + # kilocode_change end unit: name: unit (${{ matrix.settings.name }}) strategy: @@ -195,6 +195,7 @@ jobs: path: packages/kilo-jetbrains/.artifacts/unit/junit.xml # kilocode_change end + # kilocode_change start required: name: test (linux) runs-on: blacksmith-4vcpu-ubuntu-2404 @@ -217,3 +218,4 @@ jobs: test "${{ needs.changes.outputs.jetbrains }}" = "false" test "${{ needs.jetbrains.result }}" = "skipped" fi + # kilocode_change end From 42ceb15e5342113058f3b85856c120b4f9d290b4 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 10:06:16 +0000 Subject: [PATCH 3/7] ci: filter editor-specific test suites --- .github/workflows/test-vscode.yml | 40 +++++++++++++++++++++++-------- .github/workflows/test.yml | 39 +++++++++++------------------- 2 files changed, 44 insertions(+), 35 deletions(-) diff --git a/.github/workflows/test-vscode.yml b/.github/workflows/test-vscode.yml index 60569585848..4f12b49f050 100644 --- a/.github/workflows/test-vscode.yml +++ b/.github/workflows/test-vscode.yml @@ -5,21 +5,40 @@ on: branches: - main - dev - paths: - - "packages/kilo-vscode/**" - - "packages/ui/**" - - "packages/kilo-ui/**" - - ".github/workflows/test-vscode.yml" pull_request: - paths: - - "packages/kilo-vscode/**" - - "packages/ui/**" - - "packages/kilo-ui/**" - - ".github/workflows/test-vscode.yml" workflow_dispatch: +# kilocode_change start +permissions: + contents: read + pull-requests: read + jobs: + changes: + name: detect VS Code changes + runs-on: blacksmith-4vcpu-ubuntu-2404 + outputs: + vscode: ${{ steps.filter.outputs.vscode }} + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Detect VS Code changes + id: filter + uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3 + with: + base: ${{ github.ref_name }} + predicate-quantifier: every + filters: | + vscode: + - '**' + - '!packages/kilo-jetbrains/**' + - '!packages/kilo-docs/**' + - '!docs/**' + unit: + needs: changes + if: github.event_name == 'workflow_dispatch' || needs.changes.outputs.vscode == 'true' name: unit tests runs-on: blacksmith-4vcpu-ubuntu-2404 defaults: @@ -53,3 +72,4 @@ jobs: - name: Check for kilocode_change markers working-directory: packages/kilo-vscode run: bun run check-kilocode-change +# kilocode_change end diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e04ffee89dd..92d6f5c1074 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,39 +25,27 @@ jobs: changes: name: detect JetBrains changes runs-on: blacksmith-4vcpu-ubuntu-2404 + permissions: + contents: read + pull-requests: read outputs: jetbrains: ${{ steps.filter.outputs.jetbrains }} steps: - name: Checkout repository uses: actions/checkout@v6 - with: - fetch-depth: 0 - name: Detect JetBrains changes id: filter - env: - BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.before }} - HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} - run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ -z "$BASE_SHA" ] || [[ "$BASE_SHA" =~ ^0+$ ]]; then - echo "jetbrains=true" >> "$GITHUB_OUTPUT" - exit 0 - fi - - relevant=false - while IFS= read -r -d '' path; do - case "$path" in - packages/kilo-jetbrains/* | packages/opencode/src/* | packages/opencode/package.json | packages/opencode/tsconfig.json | packages/opencode/bunfig.toml | \ - packages/core/* | packages/kilo-gateway/* | packages/kilo-indexing/* | packages/kilo-telemetry/* | packages/plugin/* | \ - packages/plugin-atomic-chat/* | packages/sdk/* | packages/script/* | packages/ui/* | package.json | bun.lock | bunfig.toml | \ - patches/* | .github/actions/setup-bun/* | .github/workflows/test.yml) - relevant=true - break - ;; - esac - done < <(git diff --name-only -z "$BASE_SHA" "$HEAD_SHA") - echo "jetbrains=$relevant" >> "$GITHUB_OUTPUT" - # kilocode_change end + uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3 + with: + base: ${{ github.ref_name }} + predicate-quantifier: every + filters: | + jetbrains: + - '**' + - '!packages/kilo-vscode/**' + - '!packages/kilo-docs/**' + - '!docs/**' unit: name: unit (${{ matrix.settings.name }}) strategy: @@ -140,6 +128,7 @@ jobs: if-no-files-found: ignore retention-days: 7 path: packages/*/.artifacts/unit/junit.xml + # kilocode_change end # kilocode_change start jetbrains: From 3095d990bb78f43c91123d902d7888015911cb1a Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 10:13:22 +0000 Subject: [PATCH 4/7] fix(ci): let paths-filter select event base --- .github/workflows/test-vscode.yml | 1 - .github/workflows/test.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/test-vscode.yml b/.github/workflows/test-vscode.yml index 4f12b49f050..3a7f096cfe0 100644 --- a/.github/workflows/test-vscode.yml +++ b/.github/workflows/test-vscode.yml @@ -27,7 +27,6 @@ jobs: id: filter uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3 with: - base: ${{ github.ref_name }} predicate-quantifier: every filters: | vscode: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 92d6f5c1074..2ed5a5e27f8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,7 +38,6 @@ jobs: id: filter uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3 with: - base: ${{ github.ref_name }} predicate-quantifier: every filters: | jetbrains: From dca49f29b60757bf34b554e860fc106cd90a95f0 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 11:37:25 +0000 Subject: [PATCH 5/7] chore(ci): mark VS Code workflow as Kilo-only --- .github/workflows/test-vscode.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-vscode.yml b/.github/workflows/test-vscode.yml index 3a7f096cfe0..4bb7ad05c35 100644 --- a/.github/workflows/test-vscode.yml +++ b/.github/workflows/test-vscode.yml @@ -1,3 +1,4 @@ +# kilocode_change - new file name: test-vscode on: @@ -8,7 +9,6 @@ on: pull_request: workflow_dispatch: -# kilocode_change start permissions: contents: read pull-requests: read @@ -45,7 +45,7 @@ jobs: shell: bash steps: - name: Checkout repository - uses: actions/checkout@v6 # kilocode_change + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -71,4 +71,3 @@ jobs: - name: Check for kilocode_change markers working-directory: packages/kilo-vscode run: bun run check-kilocode-change -# kilocode_change end From e49e5fef216a9ed321203a3270967c822e2beb8e Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 12:35:16 +0000 Subject: [PATCH 6/7] ci: keep existing VS Code path filters --- .github/workflows/test-vscode.yml | 40 +++++++++---------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/.github/workflows/test-vscode.yml b/.github/workflows/test-vscode.yml index 4bb7ad05c35..60569585848 100644 --- a/.github/workflows/test-vscode.yml +++ b/.github/workflows/test-vscode.yml @@ -1,4 +1,3 @@ -# kilocode_change - new file name: test-vscode on: @@ -6,38 +5,21 @@ on: branches: - main - dev + paths: + - "packages/kilo-vscode/**" + - "packages/ui/**" + - "packages/kilo-ui/**" + - ".github/workflows/test-vscode.yml" pull_request: + paths: + - "packages/kilo-vscode/**" + - "packages/ui/**" + - "packages/kilo-ui/**" + - ".github/workflows/test-vscode.yml" workflow_dispatch: -permissions: - contents: read - pull-requests: read - jobs: - changes: - name: detect VS Code changes - runs-on: blacksmith-4vcpu-ubuntu-2404 - outputs: - vscode: ${{ steps.filter.outputs.vscode }} - steps: - - name: Checkout repository - uses: actions/checkout@v6 - - - name: Detect VS Code changes - id: filter - uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3 - with: - predicate-quantifier: every - filters: | - vscode: - - '**' - - '!packages/kilo-jetbrains/**' - - '!packages/kilo-docs/**' - - '!docs/**' - unit: - needs: changes - if: github.event_name == 'workflow_dispatch' || needs.changes.outputs.vscode == 'true' name: unit tests runs-on: blacksmith-4vcpu-ubuntu-2404 defaults: @@ -45,7 +27,7 @@ jobs: shell: bash steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@v6 # kilocode_change with: token: ${{ secrets.GITHUB_TOKEN }} From 38f33f1a3c370b8c352d5f48226293eb46b9f1c5 Mon Sep 17 00:00:00 2001 From: Mark IJbema Date: Tue, 16 Jun 2026 16:29:57 +0200 Subject: [PATCH 7/7] ci: drop no-op docs/** filter exclusion There is no top-level docs/ directory in the repo (docs live under packages/kilo-docs/, already excluded), so the '!docs/**' entry never matched anything. Remove the dead filter line. --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2ed5a5e27f8..57c021238ed 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,7 +44,6 @@ jobs: - '**' - '!packages/kilo-vscode/**' - '!packages/kilo-docs/**' - - '!docs/**' unit: name: unit (${{ matrix.settings.name }}) strategy: