Commit Graph
4609 Commits
Author SHA1 Message Date
kilo-maintainer[bot] 18c5fc3f22 release: v7.1.5 2026-03-26 09:56:13 +00:00
Marian Alexandru Alecu 4a2d979395 Merge pull request #7056 from Githubguy132010/fix/block-subagents-spawning-subagents
fix: block subagents from spawning subagents
2026-03-26 11:18:14 +02:00
kilo-maintainer[bot] fd5fee9ec3 release: v7.1.4 2026-03-25 16:32:24 +00:00
Marian Alexandru Alecu f0892bfe37 Merge pull request #7151 from shssoichiro/issue-6906
fix(cli): use configured Code model when implementing a plan
2026-03-25 17:30:19 +02:00
Mark IJbema d31f3c3693 Merge pull request #7517 from Kilo-Org/mark/bash-default-ask-new-users
feat(cli): change default bash permission to ask for new users only
2026-03-25 15:59:42 +01:00
Evgeny Shurakov 508378464a Merge pull request #7446 from Kilo-Org/eshurakov/ingest-stream
Remote - add real-time session relay and remote control over WebSocket
2026-03-25 13:43:17 +01:00
Mark IJbema e63e514e69 fix(cli): remove commands that can execute arbitrary code from bash allowlist
Remove find (-exec), env (runs commands), git (hooks/aliases),
npm/yarn/pnpm/bun (postinstall scripts, run subcommand), and make
(executes Makefile recipes). Keep only commands that cannot spawn
subprocesses or execute arbitrary code.
2026-03-25 13:23:49 +01:00
Mark IJbema 365c3bf708 fix(cli): check legacy TOML config for bash permission in migration
Prevents overwriting an explicit bash permission set in the legacy
TOML config file when a higher-precedence JSON/JSONC file exists.
2026-03-25 12:28:52 +01:00
Mark IJbema b73963578d fix(cli): trim bash allowlist to safe commands, handle legacy config
- Remove commands that can execute arbitrary code (node, python, curl,
  docker, etc.) from the default bash allowlist
- Keep only read-only/informational commands, text processing, file
  operations, git, package managers, compilers, and archive tools
- Handle legacy TOML config file in bash migration to detect existing
  users who only have the old config format
2026-03-25 12:22:41 +01:00
Mark IJbema 87fab14e94 fix(cli): correct bash permission type annotation for typecheck 2026-03-25 12:13:04 +01:00
Mark IJbema f5b85f15ee fix: move bash migration to config loading, add safe command defaults
- Move bash permission migration from storage.ts to Config.global() so
  it runs before config is consumed (fixes timing issue)
- Check all 5 global config files (config.json, kilo.json, kilo.jsonc,
  opencode.json, opencode.jsonc) for existing bash permission before
  migrating, and write to the highest-precedence existing file
- Add default allow-list of safe bash commands (ls, git, npm, etc.) so
  users aren't prompted for common development commands
2026-03-25 12:11:21 +01:00
Mark IJbema 6d7a04a33a feat(cli): change default bash permission to ask for new users only
Add bash:ask to hardcoded permission defaults so new users are prompted
before shell commands execute. A storage migration preserves the existing
bash:allow behavior for existing users by writing it to their global config
if they haven't explicitly set a bash permission.
2026-03-25 12:10:44 +01:00
Mark IJbema 94ed2ee73f Merge pull request #7576 from Kilo-Org/fix/orchestrator-remove-bash-access
fix(cli): remove bash access from orchestrator mode
2026-03-25 11:54:54 +01:00
Mark IJbema afe5df0449 fix(cli): enforce bash deny after user config in orchestrator permissions
Instead of placing user before the orchestrator allowlist (which prevents
users from restricting allowed tools), keep user in the normal position
but add an explicit bash deny after user. This way:
- User can still deny orchestrator-allowed tools (e.g. webfetch)
- User cannot re-enable bash since the post-user deny wins via findLast
2026-03-25 11:53:03 +01:00
Christiaan Arnoldus 9f985dda1a Merge pull request #7579 from Kilo-Org/christiaan/api-variants
Convert Kilo/OpenRouter variants to OpenAI/Anthropic format if necessary
2026-03-25 11:23:39 +01:00
Mark IJbema b1542bbd78 fix(cli): restore commented-out bash line for upstream merge compatibility 2026-03-25 11:22:40 +01:00
Christiaan Arnoldus 0f76380a2d Add openaiCompatible settings 2026-03-25 11:19:03 +01:00
Marius 6bb5776e5d fix(vscode, cli): handle Windows cross-drive paths in ignore checks (#7479)
On Windows, path.relative() returns an absolute path when source and
target are on different drives. The ignore npm package throws a
RangeError when fed such paths. This caused 'Failed to send prompt'
when VS Code had open tabs from another drive (e.g. extension settings
in AppData while workspace is on D:).

Guard all path.relative() → ignore.ignores() call sites against
absolute results by checking path.isAbsolute() and a Windows
drive-letter regex.
2026-03-25 11:17:52 +01:00
Mark IJbema 4ca6388f19 fix(cli): place user config before orchestrator allowlist so deny takes precedence
Move `user` before the orchestrator-specific PermissionNext.fromConfig()
so that findLast() returns the orchestrator's rules (which appear later
in the merged array), preventing user config from re-enabling bash.
This mirrors the pattern already used by the `ask` agent.

Also removes the dead commented-out bash line since `*: deny` already
covers it.
2026-03-25 11:17:28 +01:00
Christiaan Arnoldus bee882ad0b Remove unused imports 2026-03-25 11:16:06 +01:00
Mark IJbema a848ade0a3 fix(cli): comment out bash access instead of removing the line 2026-03-25 11:04:01 +01:00
Christiaan Arnoldus de6c1fdeae Convert Kilo/OpenRouter variants to OpenAI/Anthropic format if necessary
and use generic openaiCompatible name like elsewhere
2026-03-25 11:03:44 +01:00
Kilo Code 63ce373539 fix(cli): remove bash access from orchestrator mode to prevent direct file editing
The orchestrator mode had `bash: "allow"` in its permission ruleset, creating a
loophole where the LLM could use shell commands (sed, echo >, tee, etc.) to write
files directly instead of delegating to sub-agents via the task tool.

This is inconsistent with the orchestrator system prompt which says "Do not edit
files directly" and with how kilocode-legacy handled this (no command access at
all for orchestrator).

Removes bash from the allowed tools. The orchestrator still has read, grep, glob,
and list for lightweight codebase investigation, plus task for delegation.

Closes #7575
2026-03-25 09:40:05 +00:00
Christiaan Arnoldus 43ba89dd7d Reduce code duplication 2026-03-24 20:45:27 +01:00
Christiaan Arnoldus 7b911749fa Make less brittle 2026-03-24 20:27:35 +01:00
Christiaan Arnoldus e6342147ce Retain ai_sdk_provider here 2026-03-24 18:05:45 +01:00
Christiaan Arnoldus c0a8fdb358 Avoid building a new SDK object 2026-03-24 17:11:36 +01:00
Evgeny Shurakov ac898b5c32 fix(cli): address remote relay review feedback — race, leak, and stuck-state fixes
Fix .finally() clearing a newer enabling promise on disable→re-enable,
grandchild entries leaking in the children map on unsubscribe, and
permanent WS close codes leaving remote stuck enabled forever.
2026-03-24 15:51:09 +01:00
Christiaan Arnoldus 1fdfa77294 Merge branch 'main' into feat/honor-ai-sdk-provider-metadata 2026-03-24 15:36:16 +01:00
Mark IJbema d45370c71d Merge pull request #7530 from Kilo-Org/fix-windows-cmd-popups
fix: prevent cmd.exe windows from appearing on Windows
2026-03-24 15:33:05 +01:00
Mark IJbema 00aa44579f refactor(vscode): centralise process spawning in util/process.ts to enforce windowsHide
Add src/util/process.ts with spawn() and exec() wrappers that always set
windowsHide: true, preventing cmd.exe console popups on Windows.

Replace direct child_process imports in GitOps, shell-env, installer, and
server-manager with the new wrappers. Document the pattern in both
packages/kilo-vscode/AGENTS.md and packages/opencode/AGENTS.md so future
contributors know to use the wrappers instead of raw child_process calls.
2026-03-24 15:10:15 +01:00
Catriel Müller 7441339a7f Merge pull request #7535 from Kilo-Org/catrielmuller/kilo-custom-modes-support
feat(gateway): add organization custom modes support
2026-03-24 11:07:19 -03:00
Catriel Müller a8e0da3da7 feat: Kilo gateway custom modes 2026-03-24 10:22:54 -03:00
Mark IJbema 80aacd6518 fix: scope process.type shim to vscode context via KILO_PLATFORM env var 2026-03-24 14:11:39 +01:00
Christiaan Arnoldus 25eac04833 honor ai_sdk_provider metadata for Vercel AI SDK provider selection 2026-03-24 14:00:08 +01:00
Evgeny Shurakov 37b866f1ef feat(cli): add remote session relay over WebSocket
Introduce WebSocket-based remote session relay so external clients can
subscribe to sessions, send messages, answer questions, and respond to
permissions in real time.

- RemoteWS manages the authenticated WebSocket lifecycle with reconnect
- RemoteSender dispatches inbound commands and forwards server events
- Backfill pending questions/permissions when a client subscribes
- Add question_reject command for dismissing questions remotely
- Consolidate /remote TUI command into kilo-commands
- Add session.viewed endpoint to the generated SDK
- RemoteProtocol.Preview schema for diagnostic logging
2026-03-24 13:54:30 +01:00
Mark IJbema 53ab8e9652 fix: prevent cmd.exe windows from appearing on Windows
- Set process.type in mcp/index.ts so MCP SDK's StdioClientTransport
  uses windowsHide:true when spawning MCP servers on Windows (the SDK
  only enables this in Electron, checking 'type' in process)
- Add windowsHide:true to GitOps.ts git execFile calls
- Add windowsHide:true to marketplace installer tar execFile call
2026-03-24 13:11:56 +01:00
kilo-code-bot[bot]andkiloconnect[bot] c87457ba5a fix(cli,vscode): consume stream explicitly to prevent commit message infinite loading (#7434)
* fix(cli,vscode): prevent infinite loading in commit message generation

Add timeout-based AbortController to both server-side LLM stream (30s)
and client-side HTTP request (35s) so the SCM progress spinner cannot
hang indefinitely. Make the VS Code progress indicator cancellable so
users can abort manually. Also fix outdated test mocks that referenced
the removed getHttpClient API instead of the current SDK getClient.

* fix(cli,vscode): consume stream explicitly to prevent infinite loading

Replace `await stream.text` with `for await (chunk of stream.textStream)`
so that stream-level errors surface immediately instead of leaving the
promise hanging indefinitely. With some providers and Vercel AI SDK
versions, the `.text` promise never resolves when the underlying stream
errors out early, causing the spinner to load forever (fixes #7345).

Add a catch block that distinguishes timeout aborts from other errors
and re-throws with a human-readable message (partially addresses #6568).

In the VS Code extension, log the actual error in the getClient catch
block instead of silently discarding it.

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-24 12:25:17 +01:00
kilo-maintainer[bot] b20cedb571 release: v7.1.3 2026-03-24 10:45:11 +00:00
Mark IJbema a637715a5e Revert "feat(cli,vscode): change default bash auto-approve rule to ask" 2026-03-24 11:09:37 +01:00
Marian Alexandru Alecu 9cd7bb32d6 Merge pull request #7444 from Kilo-Org/feat/cli-config-awareness
feat(cli): add config location awareness
2026-03-23 22:27:44 +02:00
kilo-maintainer[bot] bb20679c42 release: v7.1.2 2026-03-23 17:48:25 +00:00
Mark IJbema 9f8079058a fix(cli): always use kilo.db regardless of channel
The upstream merge in PR #7240 introduced channel-based database path
separation, causing non-latest/beta channels (including local dev) to
open a different DB file (e.g. kilo-local.db) instead of kilo.db. This
made all existing sessions invisible.

Remove the channel-based path logic and always use kilo.db. Also remove
the now-unused KILO_DISABLE_CHANNEL_DB flag.

Closes #7472
2026-03-23 18:33:21 +01:00
Thomas Brugman 710ec68828 Merge branch 'main' into fix/block-subagents-spawning-subagents 2026-03-23 17:50:58 +01:00
Marian Alexandru Alecu dbf8e66fe6 Merge pull request #7417 from mvanhorn/fix/snapshot-cleanup-windows-git-config
fix(snapshot): add missing git config flags to cleanup() for Windows
2026-03-23 18:30:02 +02:00
Alex Alecu 26f207e8fa fix(cli): clarify config paths 2026-03-23 18:24:28 +02:00
kilo-maintainer[bot] 6888ff1515 release: v7.1.1 2026-03-23 16:03:34 +00:00
Alex Alecu 2847ec4a85 fix(cli): use strict .kilo/ directive in config hint
Replace conditional fallback language with an imperative instruction
to always use .kilo/ and never create config under .kilocode/ or
.opencode/.
2026-03-23 18:03:00 +02:00
Alex Alecu 5d5433681f fix(cli): remove .opencode/ from config dir hint
Only suggest .kilo/ and .kilocode/ as config directories, dropping
.opencode/ to avoid confusion with upstream naming.
2026-03-23 17:07:16 +02:00
Alex Alecu 433912769d fix(cli): prefer existing config dir over creating .kilo/
Instruct the model to reuse .kilocode/ or .opencode/ when already
present, falling back to .kilo/ only when no config dir exists.
2026-03-23 17:03:24 +02:00