Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Commit 6f599cf

Browse files
committed
Merge upstream/dev into feature/179-guide-mode - resolve conflicts
2 parents 6d545ce + 263a799 commit 6f599cf

1,755 files changed

Lines changed: 95261 additions & 128647 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug-report.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ body:
2020
required: false
2121

2222
- type: input
23-
id: opencode-version
23+
id: kilo-version
2424
attributes:
25-
label: OpenCode version
26-
description: What version of OpenCode are you using?
25+
label: Kilo version
26+
description: What version of Kilo are you using?
2727
validations:
2828
required: false
2929

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
blank_issues_enabled: true
1+
blank_issues_enabled: false
22
contact_links:
3-
- name: 💬 Discord Community
4-
url: https://discord.gg/opencode
3+
- name: 💬 Join our Discord
4+
url: https://kilo.ai/discord
55
about: For quick questions or real-time discussion. Note that issues are searchable and help others with the same question.

.github/actions/setup-bun/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ runs:
66
- name: Mount Bun Cache
77
uses: useblacksmith/stickydisk@v1
88
with:
9-
key: ${{ github.repository }}-bun-cache
9+
key: ${{ github.repository }}-bun-cache-${{ runner.os }}
1010
path: ~/.bun
1111

1212
- name: Setup Bun

.github/actions/setup-git-committer/action.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
name: "Setup Git Committer"
22
description: "Create app token and configure git user"
33
inputs:
4-
opencode-app-id:
5-
description: "OpenCode GitHub App ID"
4+
# kilocode_change start
5+
kilo-maintainer-app-id:
6+
description: "Kilo Maintainer GitHub App ID"
67
required: true
7-
opencode-app-secret:
8-
description: "OpenCode GitHub App private key"
8+
kilo-maintainer-app-secret:
9+
description: "Kilo Maintainer GitHub App private key"
910
required: true
11+
# kilocode_change end
1012
outputs:
1113
token:
1214
description: "GitHub App token"
@@ -21,8 +23,10 @@ runs:
2123
id: apptoken
2224
uses: actions/create-github-app-token@v2
2325
with:
24-
app-id: ${{ inputs.opencode-app-id }}
25-
private-key: ${{ inputs.opencode-app-secret }}
26+
# kilocode_change start
27+
app-id: ${{ inputs['kilo-maintainer-app-id'] }}
28+
private-key: ${{ inputs['kilo-maintainer-app-secret'] }}
29+
# kilocode_change end
2630
owner: ${{ github.repository_owner }}
2731

2832
- name: Configure git user
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# kilocode_change - new file
2+
name: "Setup Kilo"
3+
description: "Install Kilo CLI globally"
4+
runs:
5+
using: "composite"
6+
steps:
7+
- name: Install Kilo CLI
8+
run: curl -fsSL https://kilo.ai/cli/install | bash
9+
shell: bash
10+
11+
- name: Add Kilo to PATH
12+
run: echo "$HOME/.kilo/bin" >> $GITHUB_PATH
13+
shell: bash

.github/workflows/beta.yml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@ on:
77

88
jobs:
99
sync:
10-
# kilocode_change start - disabled for kilo-cli fork (OpenCode Discord integration)
11-
if: false
12-
# if: |
13-
# github.event_name == 'push' ||
14-
# (github.event_name == 'pull_request' &&
15-
# contains(github.event.pull_request.labels.*.name, 'contributor'))
16-
# kilocode_change end
1710
runs-on: blacksmith-4vcpu-ubuntu-2404
1811
permissions:
1912
contents: write
@@ -28,13 +21,15 @@ jobs:
2821
uses: ./.github/actions/setup-bun
2922

3023
- name: Setup Git Committer
31-
id: setup-git-committer
24+
id: committer
3225
uses: ./.github/actions/setup-git-committer
3326
with:
34-
opencode-app-id: ${{ vars.OPENCODE_APP_ID }}
35-
opencode-app-secret: ${{ secrets.OPENCODE_APP_SECRET }}
27+
# kilocode_change start
28+
kilo-maintainer-app-id: ${{ secrets.KILO_MAINTAINER_APP_ID }}
29+
kilo-maintainer-app-secret: ${{ secrets.KILO_MAINTAINER_APP_SECRET }}
30+
# kilocode_change end
3631

3732
- name: Sync beta branch
3833
env:
39-
GH_TOKEN: ${{ steps.setup-git-committer.outputs.token }}
34+
GH_TOKEN: ${{ steps.committer.outputs.token }}
4035
run: bun script/beta.ts
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: check-org-member
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
username:
7+
required: true
8+
type: string
9+
secrets:
10+
kilo-maintainer-app-id:
11+
required: true
12+
kilo-maintainer-app-secret:
13+
required: true
14+
outputs:
15+
is-member:
16+
description: Whether the user is an org member or kilo-maintainer bot
17+
value: ${{ jobs.check.outputs['is-member'] }}
18+
19+
jobs:
20+
check:
21+
runs-on: blacksmith-2vcpu-ubuntu-2404
22+
outputs:
23+
is-member: ${{ steps.check.outputs['is-member'] }}
24+
steps:
25+
- name: Create app token
26+
id: apptoken
27+
uses: actions/create-github-app-token@v2
28+
with:
29+
app-id: ${{ secrets['kilo-maintainer-app-id'] }}
30+
private-key: ${{ secrets['kilo-maintainer-app-secret'] }}
31+
owner: ${{ github.repository_owner }}
32+
33+
- name: Check if author is org member or kilo bot
34+
id: check
35+
env:
36+
GITHUB_TOKEN: ${{ steps.apptoken.outputs.token }}
37+
USERNAME: ${{ inputs.username }}
38+
run: |
39+
if [[ "$USERNAME" == "kilo-maintainer[bot]" || "$USERNAME" == "kiloconnect[bot]" || "$USERNAME" == "kiloconnect-lite[bot]" ]]; then
40+
echo "is-member=true" >> "$GITHUB_OUTPUT"
41+
echo "User is a kilo bot"
42+
elif gh api orgs/Kilo-Org/members/"$USERNAME" --silent 2>/dev/null; then
43+
echo "is-member=true" >> "$GITHUB_OUTPUT"
44+
echo "User is an org member"
45+
else
46+
echo "is-member=false" >> "$GITHUB_OUTPUT"
47+
echo "User is not an org member"
48+
fi

.github/workflows/close-stale-prs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Close stale PRs
1+
name: close-stale-prs # kilocode_change
22

33
on:
44
workflow_dispatch:
@@ -17,7 +17,7 @@ permissions:
1717

1818
jobs:
1919
close-stale-prs:
20-
runs-on: ubuntu-latest
20+
runs-on: blacksmith-2vcpu-ubuntu-2404 # kilocode_change
2121
timeout-minutes: 15
2222
steps:
2323
- name: Close inactive PRs
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: compliance-close
2+
3+
on:
4+
schedule:
5+
# Run every 30 minutes to check for expired compliance windows
6+
- cron: "*/30 * * * *"
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
issues: write
12+
pull-requests: write
13+
14+
jobs:
15+
close-non-compliant:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Close non-compliant issues and PRs after 2 hours
19+
uses: actions/github-script@v7
20+
with:
21+
script: |
22+
const { data: items } = await github.rest.issues.listForRepo({
23+
owner: context.repo.owner,
24+
repo: context.repo.repo,
25+
labels: 'needs:compliance',
26+
state: 'open',
27+
per_page: 100,
28+
});
29+
30+
if (items.length === 0) {
31+
core.info('No open issues/PRs with needs:compliance label');
32+
return;
33+
}
34+
35+
const now = Date.now();
36+
const twoHours = 2 * 60 * 60 * 1000;
37+
38+
for (const item of items) {
39+
const isPR = !!item.pull_request;
40+
const kind = isPR ? 'PR' : 'issue';
41+
42+
const { data: comments } = await github.rest.issues.listComments({
43+
owner: context.repo.owner,
44+
repo: context.repo.repo,
45+
issue_number: item.number,
46+
});
47+
48+
const complianceComment = comments.find(c => c.body.includes('<!-- issue-compliance -->'));
49+
if (!complianceComment) continue;
50+
51+
const commentAge = now - new Date(complianceComment.created_at).getTime();
52+
if (commentAge < twoHours) {
53+
core.info(`${kind} #${item.number} still within 2-hour window (${Math.round(commentAge / 60000)}m elapsed)`);
54+
continue;
55+
}
56+
57+
const closeMessage = isPR
58+
? 'This pull request has been automatically closed because it was not updated to meet our [contributing guidelines](../blob/dev/CONTRIBUTING.md) within the 2-hour window.\n\nFeel free to open a new pull request that follows our guidelines.'
59+
: 'This issue has been automatically closed because it was not updated to meet our [contributing guidelines](../blob/dev/CONTRIBUTING.md) within the 2-hour window.\n\nFeel free to open a new issue that follows our issue templates.';
60+
61+
await github.rest.issues.createComment({
62+
owner: context.repo.owner,
63+
repo: context.repo.repo,
64+
issue_number: item.number,
65+
body: closeMessage,
66+
});
67+
68+
if (isPR) {
69+
await github.rest.pulls.update({
70+
owner: context.repo.owner,
71+
repo: context.repo.repo,
72+
pull_number: item.number,
73+
state: 'closed',
74+
});
75+
} else {
76+
await github.rest.issues.update({
77+
owner: context.repo.owner,
78+
repo: context.repo.repo,
79+
issue_number: item.number,
80+
state: 'closed',
81+
state_reason: 'not_planned',
82+
});
83+
}
84+
85+
core.info(`Closed non-compliant ${kind} #${item.number} after 2-hour window`);
86+
}

.github/workflows/containers.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ permissions:
1616

1717
jobs:
1818
build:
19-
# kilocode_change start - disabled for kilo-cli fork (OpenCode infrastructure deployment)
20-
if: false
21-
# kilocode_change end
2219
runs-on: blacksmith-4vcpu-ubuntu-2404
23-
env:
24-
REGISTRY: ghcr.io/${{ github.repository_owner }}
25-
TAG: "24.04"
2620
steps:
21+
# kilocode_change start
22+
- name: Set lowercase repository owner
23+
id: repo
24+
run: echo "owner_lc=${OWNER,,}" >> $GITHUB_OUTPUT
25+
env:
26+
OWNER: ${{ github.repository_owner }}
27+
# kilocode_change end
28+
2729
- uses: actions/checkout@v4
2830

2931
- uses: ./.github/actions/setup-bun
@@ -44,5 +46,7 @@ jobs:
4446
- name: Build and push containers
4547
run: bun ./packages/containers/script/build.ts --push
4648
env:
47-
REGISTRY: ${{ env.REGISTRY }}
48-
TAG: ${{ env.TAG }}
49+
# kilocode_change start
50+
REGISTRY: ghcr.io/${{ steps.repo.outputs.owner_lc }}
51+
TAG: "24.04"
52+
# kilocode_change end

0 commit comments

Comments
 (0)