Skip to content

Commit 5fbb2e8

Browse files
authored
Merge branch 'main' into fix/jetbrains-commit-generation
2 parents 4583fd2 + ed3e401 commit 5fbb2e8

Some content is hidden

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

43 files changed

+4400
-414
lines changed

.changeset/busy-beds-argue.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/eight-rivers-lick.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changeset/forty-bananas-fall.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"kilo-code": patch
3+
---
4+
5+
Improve organization/managed indexing performance

.changeset/tender-sides-sink.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/workflows/marketplace-publish.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,8 @@ jobs:
9595
else
9696
# Extract changelog for current version
9797
echo "Extracting changelog for version ${current_package_version}"
98-
# Try with 'v' prefix first (newer format), then without (older format)
99-
changelog_content=$(sed -n "/## \\[v${current_package_version}\\]/,/## \\[/p" CHANGELOG.md | sed '$d')
100-
if [ -z "$changelog_content" ]; then
101-
changelog_content=$(sed -n "/## \\[${current_package_version}\\]/,/## \\[/p" CHANGELOG.md | sed '$d')
102-
fi
98+
# Match version headers: ## [vX.X.X], ## [X.X.X], ## X.X.X (brackets and v are optional)
99+
changelog_content=$(sed -E -n "/## \\[?v?${current_package_version}\\]?/,/## /p" CHANGELOG.md | sed '$d')
103100
104101
# If changelog extraction failed, use a default message
105102
if [ -z "$changelog_content" ]; then

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# kilo-code
22

3+
## 4.121.2
4+
5+
### Patch Changes
6+
7+
- [#3951](https://github.com/Kilo-Org/kilocode/pull/3951) [`1f4f9bd`](https://github.com/Kilo-Org/kilocode/commit/1f4f9bdf739d5b0dec0fdef366c1d58b6d3ffbcb) Thanks [@chrarnoldus](https://github.com/chrarnoldus)! - Add Gemini 3 Pro Image Preview
8+
9+
- [#3879](https://github.com/Kilo-Org/kilocode/pull/3879) [`d07e192`](https://github.com/Kilo-Org/kilocode/commit/d07e1924fe5be984a630442cfcc8e3bd3a4879b1) Thanks [@Maosghoul](https://github.com/Maosghoul)! - Optimized MiniMax M2 interleaved thinking by merging environment details into tool results.
10+
11+
- [#3939](https://github.com/Kilo-Org/kilocode/pull/3939) [`189aee3`](https://github.com/Kilo-Org/kilocode/commit/189aee3a36906857d1e6fb02c05081382e87bf4e) Thanks [@ajspetner](https://github.com/ajspetner)! - Added grok-4-1-fast-reasoning and grok-4-1-fast-non-reasoning models
12+
313
## [v4.121.1]
414

515
- [#3601](https://github.com/Kilo-Org/kilocode/pull/3601) [`eaf1f5a`](https://github.com/Kilo-Org/kilocode/commit/eaf1f5ab7d2916c4845093d605e54301938d8383) Thanks [@hassoncs](https://github.com/hassoncs)! - Now items in the Chat context menu will not be auto selected if your cursor is already on the row when the items change
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: Cloud Agents
3+
sidebar_label: Cloud Agents
4+
---
5+
6+
# Cloud Agents
7+
8+
Cloud Agents let you run Kilo Code in the cloud from any device, without relying on your local machine. They provide a remote development environment that can read and modify your GitHub repositories, run commands, and auto-commit changes as work progresses.
9+
10+
---
11+
12+
## What Cloud Agents Enable
13+
14+
- Run Kilo Code remotely from a browser
15+
- Auto-create branches and push work continuously
16+
- Use env vars + startup commands to shape the workspace
17+
- Work from anywhere while keeping your repo in sync
18+
19+
---
20+
21+
## Prerequisites
22+
23+
Before using Cloud Agents:
24+
25+
- **GitHub Integration must be configured**
26+
Connect your account via the [Integrations tab](https://app.kilo.ai/integrations) so that Cloud Agents can access your repositories.
27+
28+
---
29+
30+
## Cost
31+
32+
- **Compute is free during limited beta**
33+
- Please provide any feedback in our Cloud Agents beta Discord channel:
34+
- [Kilo Discord](https://discord.gg/D2ExdEcq)
35+
- **Kilo Code credits are still used** when the agent performs work (model usage, operations, etc.).
36+
37+
---
38+
39+
## How to Use
40+
41+
1. **Connect your GitHub account** in the [Integrations](https://app.kilo.ai/integrations) tab of your personal or organization dashboard.
42+
2. **Select a repository** to use as your workspace.
43+
3. **Add environment variables** (secrets supported) and set optional startup commands.
44+
4. **Start chatting with Kilo Code.**
45+
46+
Your work is always pushed to GitHub, ensuring nothing is lost.
47+
48+
---
49+
50+
## How Cloud Agents Work
51+
52+
- Each user receives an **isolated Linux container** with common dev tools preinstalled (Python, Node.js, git, etc.).
53+
- All Cloud Agent chats share a **single container instance**, while each session gets its own workspace directory.
54+
- When a session begins:
55+
1. Your repo is cloned
56+
2. A unique branch is created
57+
3. Your startup commands run
58+
4. Env vars are injected
59+
60+
- After every message, the agent:
61+
- Looks for file changes
62+
- Commits them
63+
- Pushes to the session’s branch
64+
65+
- Containers are **ephemeral**:
66+
- Spindown occurs after inactivity
67+
- Expect slightly longer setup after idle periods
68+
- Inactive sessions are deleted after **7 days** during the beta
69+
70+
---
71+
72+
## Environment Variables & Startup Commands
73+
74+
You can customize each Cloud Agent session by defining:
75+
76+
### Environment Variables
77+
- Add key/value pairs or secrets
78+
- Injected into the container before the session starts
79+
- Useful for API keys or config flags
80+
81+
### Startup Commands
82+
- Commands run immediately after cloning the repo and checking out the session branch
83+
- Great for:
84+
- Installing dependencies
85+
- Bootstrapping tooling
86+
- Running setup scripts
87+
88+
---
89+
90+
## Perfect For
91+
92+
Cloud Agents are great for:
93+
94+
- **Remote debugging** using Kilo Code debug mode
95+
- **Exploration of unfamiliar codebases** without touching your local machine
96+
- **Architect-mode brainstorming** while on the go
97+
- **Automated refactors or tech debt cleanup** driven by Kilo Code
98+
- **Offloading CI-like tasks**, experiments, or batch updates
99+
100+
---
101+
102+
## Limitations and Guidance
103+
104+
- Each message can run for **up to 10 minutes**.
105+
Break large tasks into smaller steps; use a `plan.md` or `todo.md` file to keep scope clear.
106+
- **Context is not persistent across messages yet.**
107+
Kilo Code does not remember previous turns; persistent in-repo notes help keep it aligned.
108+
- **Auto/YOLO mode is always on.**
109+
The agent will modify code without prompting for confirmation.
110+
- **Saved sessions** in the sidebar are not yet shared between logins or restorable locally.
111+
- **MCP support is coming**, but **Docker-based MCP servers will *not* be supported**.
112+

apps/kilocode-docs/sidebars.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ const sidebars: SidebarsConfig = {
153153
},
154154
"features/auto-launch-configuration",
155155
"advanced-usage/auto-cleanup",
156+
"advanced-usage/cloud-agent",
156157
"advanced-usage/deploy",
157158
"features/experimental/experimental-features",
158159
],

cli/src/host/VSCode.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,6 +1258,41 @@ export class WorkspaceAPI {
12581258
this.fs = new FileSystemAPI()
12591259
}
12601260

1261+
asRelativePath(pathOrUri: string | Uri, includeWorkspaceFolder?: boolean): string {
1262+
const fsPath = typeof pathOrUri === "string" ? pathOrUri : pathOrUri.fsPath
1263+
1264+
// If no workspace folders, return the original path
1265+
if (!this.workspaceFolders || this.workspaceFolders.length === 0) {
1266+
return fsPath
1267+
}
1268+
1269+
// Try to find a workspace folder that contains this path
1270+
for (const folder of this.workspaceFolders) {
1271+
const workspacePath = folder.uri.fsPath
1272+
1273+
// Normalize paths for comparison (handle different path separators)
1274+
const normalizedFsPath = path.normalize(fsPath)
1275+
const normalizedWorkspacePath = path.normalize(workspacePath)
1276+
1277+
// Check if the path is within this workspace folder
1278+
if (normalizedFsPath.startsWith(normalizedWorkspacePath)) {
1279+
// Get the relative path
1280+
let relativePath = path.relative(normalizedWorkspacePath, normalizedFsPath)
1281+
1282+
// If includeWorkspaceFolder is true and there are multiple workspace folders,
1283+
// prepend the workspace folder name
1284+
if (includeWorkspaceFolder && this.workspaceFolders.length > 1) {
1285+
relativePath = path.join(folder.name, relativePath)
1286+
}
1287+
1288+
return relativePath
1289+
}
1290+
}
1291+
1292+
// If not within any workspace folder, return the original path
1293+
return fsPath
1294+
}
1295+
12611296
onDidChangeWorkspaceFolders(listener: (event: WorkspaceFoldersChangeEvent) => void): Disposable {
12621297
return this._onDidChangeWorkspaceFolders.event(listener)
12631298
}

jetbrains/plugin/scripts/update_change_notes.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ function updateChangeNotes() {
2929
const changelogContent = readFileSync(changelogPath, "utf8")
3030

3131
// Find the version section in changelog
32-
const versionPattern = new RegExp(`## \\[v${version.replace(/\./g, "\\.")}\\]([\\s\\S]*?)(?=## \\[v|$)`)
32+
// Support multiple formats: ## [vX.X.X], ## [X.X.X], ## X.X.X
33+
const escapedVersion = version.replaceAll(".", "\\.")
34+
const versionPattern = new RegExp(`## \\[?v?${escapedVersion}\\]?([\\s\\S]*?)(?=## \\[?v?\\d|$)`)
3335
const changelogVersionMatch = changelogContent.match(versionPattern)
3436

3537
if (!changelogVersionMatch) {

0 commit comments

Comments
 (0)