Merge branch 'main' into fluttering-belt

This commit is contained in:
Christiaan Arnoldus
2026-07-29 14:31:41 +02:00
committed by GitHub
96 changed files with 525 additions and 416 deletions
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Support adaptive thinking levels for Claude Opus and Sonnet 5 and later.
@@ -1,5 +0,0 @@
---
"kilo-code": minor
---
Show the ⌘1-9 (Ctrl+1-9 on Windows/Linux) shortcut badges on every Agent Manager sidebar card while the modifier key is held, making it easy to see which number jumps to which worktree before pressing it.
@@ -1,5 +0,0 @@
---
"kilo-code": minor
---
Let users open Agent Manager terminals in the VS Code terminal or an embedded side panel. The terminal button's dropdown picks the destination; the side panel shares the right-hand inspector with the diff view and keeps running in the background when hidden.
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Keep each Agent Manager panel's terminal destination consistent. A dropdown pick is now remembered per panel and no longer flips when another window rewrites the shared terminal destination setting, so the terminal shortcut keeps opening the terminal type that panel is actually using. The shortcut also no longer dead-ends on worktrees without an active session, and terminals left over from a reloaded webview are cleaned up instead of leaking.
-6
View File
@@ -1,6 +0,0 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---
Keep conversations and workspace files unchanged when a checkpoint cannot be fully restored.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Add a `/auto-approve` slash command in the TUI for toggling auto-approve mode, with aliases `/autoapprove`, `/approve-all`, and `/approveall`. The command dispatches the existing palette entry, so behavior matches the Ctrl+P "Enable/Disable auto-approve mode" toggle.
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Let the Context section in the TUI session sidebar collapse and expand on header click, matching the existing collapsible pattern used by Token Usage, Models, and Terminal Bench 2.0. When collapsed, the header shows a one-line summary of percent used and total cost.
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Include basic-auth credentials in the Local and Network Console URLs printed by `kilo console`, so users on headless hosts (no `DISPLAY`/`WAYLAND_DISPLAY`, SSH sessions, CI runners) can open the URL in a browser on another machine and reach the Console.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Exclude GPT-5.6 from models available through ChatGPT subscriptions while retaining access to variants such as GPT-5.6 Sol.
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Open Agent Manager terminals faster and avoid delayed shell prompts.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Keep Nix builds on the Bun version required by the repository.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Update the visible agent mode when cycling modes in Kilo sidebars and pending session tabs.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Fix settings changes sometimes failing to save and apply in VS Code.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Preserve parenthesized tilde expressions as literal text in rendered chat messages.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Fix session transcripts losing their final messages when the CLI exits — pending uploads are now flushed on shutdown and as soon as a session closes.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Show prompt input toggle tooltips instantly on hover instead of after a delay.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/kilo-jetbrains": minor
---
Publish a signed GitHub-hosted JetBrains plugin build with the CLI bundled for offline installation.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/kilo-jetbrains": patch
---
Allow sending prompts while a session is busy and show queued prompts with a remove action.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Route the websearch tool's Exa requests through the Kilo proxy when signed into Kilo. The MCP-Exa transport is preserved as a fallback for users who set `EXA_API_KEY` or are not authenticated. A new `KILO_WEBSEARCH_PROVIDER=kilo-exa` env override forces the Kilo proxy path. Results are capped at 10.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": minor
---
Support multiple Agent Manager side-panel terminals per context. The panel header is now a tab strip that reuses the main tab bar's terminal tabs: click to switch, drag to reorder, X to close a single terminal, and + to open another one. Terminal numbers fill gaps left by closed terminals, and tabs pick up the live title from the shell or running program (OSC escape codes), so a dev server or build names its own tab.
-30
View File
@@ -1,30 +0,0 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---
Changes from opencode v1.17.5 to v1.17.9 upstream:
- Core Bugfixes: Improved MCP server compatibility by declaring Kilo's supported client capabilities.
- Core Bugfixes: Plugin client requests now reuse the active server instead of assuming the default local port.
- Core Bugfixes: ACP shell tool calls now show the command and working directory from the start.
- Core Bugfixes: Plugin-provided shell environment variables now apply to PTY sessions.
- Core Bugfixes: OpenAI-compatible providers now accept MCP tool schemas that previously failed validation. (@jquense)
- Core Bugfixes: Cloudflare AI Gateway now receives the configured API key correctly. (@keefetang)
- Core Bugfixes: MCP tools without declared schema properties now work with providers that expect object properties.
- Core Bugfixes: Long-running MCP tools now keep their timeout alive when they report progress. (@Nomadcxx)
- Core Bugfixes: The MCP OAuth callback server now shuts down once authorization finishes or is cancelled.
- Core Bugfixes: MCP tool failures now surface the server's error text instead of a generic failure.
- Core Bugfixes: MCP OAuth error pages now escape provider error text correctly.
- Core Bugfixes: Honor configured agent step limits by forcing a final text response instead of failing mid-run.
- Core Bugfixes: Queue steering prompts before dismissing pending questions so the previous turn cannot resume first.
- Core Bugfixes: Prevent local server credentials from leaking into spawned PTY processes.
- Core Bugfixes: Fix Devstral model detection when provider IDs use different casing. (@Robin1987China)
- Core Bugfixes: Pass configured custom headers to Copilot model requests.
- Core Improvements: MCP servers can now receive the current workspace as a client root.
- Core Improvements: Session timelines load much faster and avoid flicker or scroll jumps.
- Core Improvements: Add `high` and `max` thinking variants for GLM-5.2 across supported providers. (@imranshaiedi-byte)
- Core Improvements: Stop wrapping follow-up user messages in a steering reminder so prompt caching stays effective.
- TUI Bugfixes: MCP debug now uses the SDK's latest protocol version.
- TUI Bugfixes: Only show the background subagent shortcut when the server supports it.
- UI Bugfixes: Render completed Mermaid blocks from diagram source instead of fenced Markdown.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": minor
---
Add a prompt navigator rail to the chat transcript. A thin rail of ticks on the left edge shows one tick per prompt you sent; hovering or focusing it expands a card listing those prompts with a short preview of the answer, and clicking jumps the transcript to that turn. It appears in the sidebar, Kilo editor tabs, the sub-agent viewer, and Agent Manager, and never changes the readable width of the chat.
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Fix bash permission rules being bypassed on PowerShell for commands containing a bare `--` such as `git checkout -- <file>`. Commands the shell parser cannot parse now get checked against their raw command text instead of executing without a permission check.
-5
View File
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Emit each agent event once from `kilo run --format json`.
-6
View File
@@ -1,6 +0,0 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---
Prevent the VS Code backend from eagerly starting native file watchers for every Agent Manager worktree.
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Keep message and response copy buttons working after switching focus away from VS Code.
@@ -1,6 +0,0 @@
---
"@kilocode/cli": patch
"kilo-code": patch
---
Keep Windows snapshot diffs parseable and preserve valid files when a stored patch is malformed.
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Bound the wait for a provider's first response byte by the request timeout. A provider that accepts a request and returns headers but never sends body data now fails and retries instead of leaving the turn hanging after a tool call completes. The same `timeout` value now covers both the connection phase and the wait for the first byte as a single deadline; streaming responses that have already produced data are unaffected.
@@ -1,5 +0,0 @@
---
"@kilocode/cli": patch
---
Stabilize cross-platform CLI subprocess tests under constrained CI runners
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Open Kilo chats, settings, and files as tabs in the selected editor pane without creating, locking, or resizing editor panes.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Remove unused translation keys from the Agent Manager, sidebar webview, shared kilo-i18n, and autocomplete dictionaries across all locales, and add a conservative lint test for unreferenced, unprotected dictionary keys.
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Show the `Ctrl+T` variant cycling shortcut in the TUI prompt hint row whenever the active model exposes reasoning variants, as the first hint before the agent and command palette hints
-5
View File
@@ -1,5 +0,0 @@
---
"kilo-code": patch
---
Show the worktree directory name on the Agent Manager worktree hover card
+36 -36
View File
@@ -32,7 +32,7 @@
},
"packages/core": {
"name": "@opencode-ai/core",
"version": "7.4.16",
"version": "7.4.17",
"bin": {
"opencode": "./bin/opencode",
},
@@ -127,7 +127,7 @@
},
"packages/effect-drizzle-sqlite": {
"name": "@opencode-ai/effect-drizzle-sqlite",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"drizzle-orm": "catalog:",
"effect": "catalog:",
@@ -141,7 +141,7 @@
},
"packages/effect-sqlite-node": {
"name": "@opencode-ai/effect-sqlite-node",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"effect": "catalog:",
},
@@ -153,7 +153,7 @@
},
"packages/http-recorder": {
"name": "@opencode-ai/http-recorder",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@effect/platform-node": "4.0.0-beta.74",
"@effect/platform-node-shared": "4.0.0-beta.74",
@@ -174,7 +174,7 @@
},
"packages/kilo-console": {
"name": "@kilocode/kilo-console",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/kilo-indexing": "workspace:*",
"@kilocode/kilo-web-ui": "workspace:*",
@@ -197,7 +197,7 @@
},
"packages/kilo-docs": {
"name": "@kilocode/kilo-docs",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@docsearch/css": "^4",
"@docsearch/js": "^4",
@@ -227,7 +227,7 @@
},
"packages/kilo-gateway": {
"name": "@kilocode/kilo-gateway",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@ai-sdk/alibaba": "1.0.17",
"@ai-sdk/anthropic": "3.0.71",
@@ -263,7 +263,7 @@
},
"packages/kilo-i18n": {
"name": "@kilocode/kilo-i18n",
"version": "7.4.16",
"version": "7.4.17",
"devDependencies": {
"@tsconfig/node22": "catalog:",
"@types/bun": "catalog:",
@@ -273,7 +273,7 @@
},
"packages/kilo-indexing": {
"name": "@kilocode/kilo-indexing",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@aws-sdk/client-bedrock-runtime": "3.1005.0",
"@aws-sdk/credential-provider-ini": "3.972.31",
@@ -309,7 +309,7 @@
},
"packages/kilo-memory": {
"name": "@kilocode/kilo-memory",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"effect": "catalog:",
"zod": "catalog:",
@@ -323,7 +323,7 @@
},
"packages/kilo-sandbox": {
"name": "@kilocode/sandbox",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@anthropic-ai/sandbox-runtime": "catalog:",
"effect": "catalog:",
@@ -338,7 +338,7 @@
},
"packages/kilo-telemetry": {
"name": "@kilocode/kilo-telemetry",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/kilo-gateway": "workspace:*",
"posthog-node": "4.4.0",
@@ -352,7 +352,7 @@
},
"packages/kilo-ui": {
"name": "@kilocode/kilo-ui",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "0.13.11",
@@ -389,7 +389,7 @@
},
"packages/kilo-vscode": {
"name": "kilo-code",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@anthropic-ai/sdk": "^0.39.0",
"@kilocode/kilo-gateway": "workspace:*",
@@ -458,7 +458,7 @@
},
"packages/kilo-web-ui": {
"name": "@kilocode/kilo-web-ui",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/kilo-ui": "workspace:*",
"@kobalte/core": "catalog:",
@@ -475,7 +475,7 @@
},
"packages/llm": {
"name": "@opencode-ai/llm",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@smithy/eventstream-codec": "4.2.14",
"@smithy/util-utf8": "4.2.2",
@@ -493,7 +493,7 @@
},
"packages/opencode": {
"name": "@kilocode/cli",
"version": "7.4.16",
"version": "7.4.17",
"bin": {
"kilo": "./bin/kilo",
"kilocode": "./bin/kilo",
@@ -660,7 +660,7 @@
},
"packages/plugin": {
"name": "@kilocode/plugin",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"effect": "catalog:",
@@ -688,7 +688,7 @@
},
"packages/plugin-atomic-chat": {
"name": "@kilocode/plugin-atomic-chat",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/plugin": "workspace:*",
},
@@ -702,7 +702,7 @@
},
"packages/script": {
"name": "@opencode-ai/script",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"semver": "^7.6.3",
},
@@ -713,7 +713,7 @@
},
"packages/sdk/js": {
"name": "@kilocode/sdk",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"cross-spawn": "catalog:",
},
@@ -728,7 +728,7 @@
},
"packages/server": {
"name": "@opencode-ai/server",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@opencode-ai/core": "workspace:*",
"drizzle-orm": "catalog:",
@@ -742,7 +742,7 @@
},
"packages/storybook": {
"name": "@opencode-ai/storybook",
"version": "7.4.16",
"version": "7.4.17",
"devDependencies": {
"@opencode-ai/ui": "workspace:*",
"@solidjs/meta": "catalog:",
@@ -765,7 +765,7 @@
},
"packages/tui": {
"name": "@opencode-ai/tui",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/plugin": "workspace:*",
"@kilocode/sdk": "workspace:*",
@@ -792,7 +792,7 @@
},
"packages/ui": {
"name": "@opencode-ai/ui",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {
"@kilocode/sdk": "workspace:*",
"@kobalte/core": "catalog:",
@@ -845,22 +845,22 @@
},
},
"trustedDependencies": [
"web-tree-sitter",
"esbuild",
"tree-sitter-bash",
"protobufjs",
"web-tree-sitter",
"tree-sitter-bash",
],
"patchedDependencies": {
"virtua@0.49.1": "patches/virtua@0.49.1.patch",
"mammoth@1.12.0": "patches/mammoth@1.12.0.patch",
"@ff-labs/fff-bun@0.9.4": "patches/@ff-labs%2Ffff-bun@0.9.4.patch",
"@standard-community/standard-openapi@0.2.9": "patches/@standard-community%2Fstandard-openapi@0.2.9.patch",
"@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
"@ai-sdk/google@3.0.73": "patches/@ai-sdk%2Fgoogle@3.0.73.patch",
"pacote@21.5.1": "patches/pacote@21.5.1.patch",
"@silvia-odwyer/photon-node@0.3.4": "patches/@silvia-odwyer%2Fphoton-node@0.3.4.patch",
"@npmcli/agent@4.0.2": "patches/@npmcli%2Fagent@4.0.2.patch",
"@ai-sdk/xai@3.0.102": "patches/@ai-sdk%2Fxai@3.0.102.patch",
"@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
"@ff-labs/fff-bun@0.9.4": "patches/@ff-labs%2Ffff-bun@0.9.4.patch",
"pacote@21.5.1": "patches/pacote@21.5.1.patch",
"@standard-community/standard-openapi@0.2.9": "patches/@standard-community%2Fstandard-openapi@0.2.9.patch",
"@npmcli/agent@4.0.2": "patches/@npmcli%2Fagent@4.0.2.patch",
"@silvia-odwyer/photon-node@0.3.4": "patches/@silvia-odwyer%2Fphoton-node@0.3.4.patch",
"virtua@0.49.1": "patches/virtua@0.49.1.patch",
"@ai-sdk/google@3.0.73": "patches/@ai-sdk%2Fgoogle@3.0.73.patch",
"mammoth@1.12.0": "patches/mammoth@1.12.0.patch",
},
"overrides": {
"@effect/platform-node-shared": "4.0.0-beta.74",
+1 -1
View File
@@ -171,6 +171,6 @@
"pacote@21.5.1": "patches/pacote@21.5.1.patch",
"mammoth@1.12.0": "patches/mammoth@1.12.0.patch"
},
"version": "7.4.16",
"version": "7.4.17",
"peerDependencies": {}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@opencode-ai/core",
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@opencode-ai/effect-drizzle-sqlite",
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@opencode-ai/effect-sqlite-node",
"type": "module",
"license": "MIT",
+6 -6
View File
@@ -1,7 +1,7 @@
id = "kilo"
name = "Kilo"
description = "The open source coding agent."
version = "7.4.16"
version = "7.4.17"
schema_version = 1
authors = ["Anomaly"]
repository = "https://github.com/Kilo-Org/kilocode"
@@ -11,26 +11,26 @@ name = "Kilo"
icon = "./icons/opencode.svg"
[agent_servers.opencode.targets.darwin-aarch64]
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.16/opencode-darwin-arm64.zip"
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.17/opencode-darwin-arm64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.darwin-x86_64]
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.16/opencode-darwin-x64.zip"
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.17/opencode-darwin-x64.zip"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-aarch64]
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.16/opencode-linux-arm64.tar.gz"
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.17/opencode-linux-arm64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.linux-x86_64]
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.16/opencode-linux-x64.tar.gz"
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.17/opencode-linux-x64.tar.gz"
cmd = "./opencode"
args = ["acp"]
[agent_servers.opencode.targets.windows-x86_64]
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.16/opencode-windows-x64.zip"
archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.4.17/opencode-windows-x64.zip"
cmd = "./opencode.exe"
args = ["acp"]
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@opencode-ai/http-recorder",
"description": "Record and replay Effect HTTP client traffic with deterministic cassettes",
"type": "module",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-console",
"version": "7.4.16",
"version": "7.4.17",
"private": true,
"type": "module",
"scripts": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-docs",
"version": "7.4.16",
"version": "7.4.17",
"private": true,
"scripts": {
"dev": "next dev --webpack --port 3002",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-gateway",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"description": "Unified Kilo Gateway package for OpenCode - authentication, provider, and API integration",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-i18n",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"description": "Kilo-specific i18n translations and overrides",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-indexing",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"description": "Standalone indexing engine and host helpers for Kilo Code",
+12
View File
@@ -1,5 +1,15 @@
# Changelog
## 7.5.0
### Minor Changes
- [#12518](https://github.com/Kilo-Org/kilocode/pull/12518) [`452d0eb`](https://github.com/Kilo-Org/kilocode/commit/452d0eb55f740e951cfd906375e22cf97250144c) - Publish a signed GitHub-hosted JetBrains plugin build with the CLI bundled for offline installation.
### Patch Changes
- [#12571](https://github.com/Kilo-Org/kilocode/pull/12571) [`9950739`](https://github.com/Kilo-Org/kilocode/commit/9950739e36b40a682c0a25173e62f5236e60f81a) - Allow sending prompts while a session is busy and show queued prompts with a remove action.
## 7.4.16
### Patch Changes
@@ -134,7 +144,9 @@
### Changed
- Update the JetBrains CLI pin from Kilo Core 7.4.15 to 7.4.16.
## [7.0.10] - 2026-07-24
## [7.0.10] - 2026-07-24
### Added
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-memory",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"description": "Project memory storage, indexing, recall, and command helpers for Kilo Code",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/sandbox",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"private": true,
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/kilo-telemetry",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"description": "Telemetry for Kilo CLI - PostHog analytics integration",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-ui",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"exports": {
+73
View File
@@ -1,5 +1,78 @@
# kilo-code
## 7.4.17
### Minor Changes
- [#12631](https://github.com/Kilo-Org/kilocode/pull/12631) [`3321216`](https://github.com/Kilo-Org/kilocode/commit/3321216c0157e1a8a1829b0c8e0a1cae8d2f2ad2) - Show the ⌘1-9 (Ctrl+1-9 on Windows/Linux) shortcut badges on every Agent Manager sidebar card while the modifier key is held, making it easy to see which number jumps to which worktree before pressing it.
- [#12598](https://github.com/Kilo-Org/kilocode/pull/12598) [`c6711fc`](https://github.com/Kilo-Org/kilocode/commit/c6711fcf6cea9fdbe78a04b95276d09a2faabfa7) - Let users open Agent Manager terminals in the VS Code terminal or an embedded side panel. The terminal button's dropdown picks the destination; the side panel shares the right-hand inspector with the diff view and keeps running in the background when hidden.
- [#12633](https://github.com/Kilo-Org/kilocode/pull/12633) [`23039c0`](https://github.com/Kilo-Org/kilocode/commit/23039c0fb1e5b32704119ddde10a6a28ccd6bff3) - Support multiple Agent Manager side-panel terminals per context. The panel header is now a tab strip that reuses the main tab bar's terminal tabs: click to switch, drag to reorder, X to close a single terminal, and + to open another one. Terminal numbers fill gaps left by closed terminals, and tabs pick up the live title from the shell or running program (OSC escape codes), so a dev server or build names its own tab.
- [#12632](https://github.com/Kilo-Org/kilocode/pull/12632) [`0d853df`](https://github.com/Kilo-Org/kilocode/commit/0d853df3ec338ac99e025939f74136dec6d9daa1) - Add a prompt navigator rail to the chat transcript. A thin rail of ticks on the left edge shows one tick per prompt you sent; hovering or focusing it expands a card listing those prompts with a short preview of the answer, and clicking jumps the transcript to that turn. It appears in the sidebar, Kilo editor tabs, the sub-agent viewer, and Agent Manager, and never changes the readable width of the chat.
### Patch Changes
- [#12629](https://github.com/Kilo-Org/kilocode/pull/12629) [`0a1c140`](https://github.com/Kilo-Org/kilocode/commit/0a1c14073a4bf14f8ad4e3c8295dc6ae6bfbfdaf) - Keep each Agent Manager panel's terminal destination consistent. A dropdown pick is now remembered per panel and no longer flips when another window rewrites the shared terminal destination setting, so the terminal shortcut keeps opening the terminal type that panel is actually using. The shortcut also no longer dead-ends on worktrees without an active session, and terminals left over from a reloaded webview are cleaned up instead of leaking.
- [#12587](https://github.com/Kilo-Org/kilocode/pull/12587) [`16f8e7e`](https://github.com/Kilo-Org/kilocode/commit/16f8e7ef7fbd47755395539e7df54af3baae0c63) - Keep conversations and workspace files unchanged when a checkpoint cannot be fully restored.
- [#12333](https://github.com/Kilo-Org/kilocode/pull/12333) [`290a5af`](https://github.com/Kilo-Org/kilocode/commit/290a5af56e6ddccd8b4a459883625e30f2ae0344) Thanks [@IamCoder18](https://github.com/IamCoder18)! - Include basic-auth credentials in the Local and Network Console URLs printed by `kilo console`, so users on headless hosts (no `DISPLAY`/`WAYLAND_DISPLAY`, SSH sessions, CI runners) can open the URL in a browser on another machine and reach the Console.
- [#12630](https://github.com/Kilo-Org/kilocode/pull/12630) [`a7f972f`](https://github.com/Kilo-Org/kilocode/commit/a7f972f63bc948d70b73a36a5beab6d694316037) - Open Agent Manager terminals faster and avoid delayed shell prompts.
- [#12560](https://github.com/Kilo-Org/kilocode/pull/12560) [`65c5e9d`](https://github.com/Kilo-Org/kilocode/commit/65c5e9d2c03cea152b140710228075edf9156def) - Update the visible agent mode when cycling modes in Kilo sidebars and pending session tabs.
- [#12561](https://github.com/Kilo-Org/kilocode/pull/12561) [`44f5963`](https://github.com/Kilo-Org/kilocode/commit/44f596366931d5336f1cd4dfdd97ef54e0f2fa4c) - Fix settings changes sometimes failing to save and apply in VS Code.
- [#12540](https://github.com/Kilo-Org/kilocode/pull/12540) [`2da8949`](https://github.com/Kilo-Org/kilocode/commit/2da89498138e49f857c354924fdecac85337e742) Thanks [@Githubguy132010](https://github.com/Githubguy132010)! - Preserve parenthesized tilde expressions as literal text in rendered chat messages.
- [#12591](https://github.com/Kilo-Org/kilocode/pull/12591) [`625d2b9`](https://github.com/Kilo-Org/kilocode/commit/625d2b974de1381b4d475808c9215becb263d1f0) - Show prompt input toggle tooltips instantly on hover instead of after a delay.
- [#12460](https://github.com/Kilo-Org/kilocode/pull/12460) [`51d8031`](https://github.com/Kilo-Org/kilocode/commit/51d8031c9997bd5478bcde715562169f732d04d4) - Changes from opencode v1.17.5 to v1.17.9 upstream:
- Core Bugfixes: Improved MCP server compatibility by declaring Kilo's supported client capabilities.
- Core Bugfixes: Plugin client requests now reuse the active server instead of assuming the default local port.
- Core Bugfixes: ACP shell tool calls now show the command and working directory from the start.
- Core Bugfixes: Plugin-provided shell environment variables now apply to PTY sessions.
- Core Bugfixes: OpenAI-compatible providers now accept MCP tool schemas that previously failed validation. (@jquense)
- Core Bugfixes: Cloudflare AI Gateway now receives the configured API key correctly. (@keefetang)
- Core Bugfixes: MCP tools without declared schema properties now work with providers that expect object properties.
- Core Bugfixes: Long-running MCP tools now keep their timeout alive when they report progress. (@Nomadcxx)
- Core Bugfixes: The MCP OAuth callback server now shuts down once authorization finishes or is cancelled.
- Core Bugfixes: MCP tool failures now surface the server's error text instead of a generic failure.
- Core Bugfixes: MCP OAuth error pages now escape provider error text correctly.
- Core Bugfixes: Honor configured agent step limits by forcing a final text response instead of failing mid-run.
- Core Bugfixes: Queue steering prompts before dismissing pending questions so the previous turn cannot resume first.
- Core Bugfixes: Prevent local server credentials from leaking into spawned PTY processes.
- Core Bugfixes: Fix Devstral model detection when provider IDs use different casing. (@Robin1987China)
- Core Bugfixes: Pass configured custom headers to Copilot model requests.
- Core Improvements: MCP servers can now receive the current workspace as a client root.
- Core Improvements: Session timelines load much faster and avoid flicker or scroll jumps.
- Core Improvements: Add `high` and `max` thinking variants for GLM-5.2 across supported providers. (@imranshaiedi-byte)
- Core Improvements: Stop wrapping follow-up user messages in a steering reminder so prompt caching stays effective.
- TUI Bugfixes: MCP debug now uses the SDK's latest protocol version.
- TUI Bugfixes: Only show the background subagent shortcut when the server supports it.
- UI Bugfixes: Render completed Mermaid blocks from diagram source instead of fenced Markdown.
- [#11984](https://github.com/Kilo-Org/kilocode/pull/11984) [`26dac19`](https://github.com/Kilo-Org/kilocode/commit/26dac197fe28294c391c8d437abf06e18e2d22bd) Thanks [@sylwester-liljegren](https://github.com/sylwester-liljegren)! - Mention `@` file references in the chat input placeholder so users know they can add file mentions. Translated across all supported languages.
- [#12593](https://github.com/Kilo-Org/kilocode/pull/12593) [`160b066`](https://github.com/Kilo-Org/kilocode/commit/160b06661acc5f04b21221ab6578c468325f64c5) - Prevent the VS Code backend from eagerly starting native file watchers for every Agent Manager worktree.
- [#12123](https://github.com/Kilo-Org/kilocode/pull/12123) [`3075d35`](https://github.com/Kilo-Org/kilocode/commit/3075d35f13ba9738446ac28fa2eebf054097f2f5) Thanks [@mjnaderi](https://github.com/mjnaderi)! - Keep message and response copy buttons working after switching focus away from VS Code.
- [#12583](https://github.com/Kilo-Org/kilocode/pull/12583) [`1310c12`](https://github.com/Kilo-Org/kilocode/commit/1310c1200ab613b316f27fe4fd59e23e262df02f) Thanks [@noobezlol](https://github.com/noobezlol)! - Keep Windows snapshot diffs parseable and preserve valid files when a stored patch is malformed.
- [#12410](https://github.com/Kilo-Org/kilocode/pull/12410) [`85d65a3`](https://github.com/Kilo-Org/kilocode/commit/85d65a3137ecadfcbda8255bfb4a40daf1f155fb) - Open Kilo chats, settings, and files as tabs in the selected editor pane without creating, locking, or resizing editor panes.
- [#12639](https://github.com/Kilo-Org/kilocode/pull/12639) [`8a47d8b`](https://github.com/Kilo-Org/kilocode/commit/8a47d8b78885fa8fd14c73b3aecdb57e1fc96c9c) - Stop flashing a "Turn interrupted" warning when a follow-up message is queued while the assistant is still working. The running turn now closes with a dedicated "superseded" reason instead of "interrupted" when it hands off to the queued prompt, so the premature-stop warning only appears for real interruptions.
- [#12602](https://github.com/Kilo-Org/kilocode/pull/12602) [`5d87ca5`](https://github.com/Kilo-Org/kilocode/commit/5d87ca598c4c66328f0e476cb1be3fc9b26d05aa) - Remove unused translation keys from the Agent Manager, sidebar webview, shared kilo-i18n, and autocomplete dictionaries across all locales, and add a conservative lint test for unreferenced, unprotected dictionary keys.
- [#12463](https://github.com/Kilo-Org/kilocode/pull/12463) [`1f3383c`](https://github.com/Kilo-Org/kilocode/commit/1f3383cf3de37327b02e0fc2a1c5ac176ca9134f) Thanks [@IamCoder18](https://github.com/IamCoder18)! - Show the `Ctrl+T` variant cycling shortcut in the TUI prompt hint row whenever the active model exposes reasoning variants, as the first hint before the agent and command palette hints
- [#12634](https://github.com/Kilo-Org/kilocode/pull/12634) [`4c5c242`](https://github.com/Kilo-Org/kilocode/commit/4c5c2428927f26c4c818f23a650cfaf5723b7641) - Show the worktree directory name on the Agent Manager worktree hover card
## 7.4.16
### Minor Changes
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "kilo-code",
"displayName": "Kilo Code: AI Coding Agent, Copilot, and Autocomplete",
"description": "Open Source AI coding agent that generates code from natural language, automates tasks, and runs terminal commands. Features inline autocomplete, browser automation, automated refactoring, and custom modes for planning, coding, and debugging. Supports 500+ AI models including Claude (Anthropic), Gemini, Grok, GPT, Codex and GLM.",
"version": "7.4.16",
"version": "7.4.17",
"icon": "assets/icons/logo-outline-black.png",
"galleryBanner": {
"color": "#FFFFFF",
@@ -408,7 +408,7 @@ export type WebviewMessage =
message: Record<string, unknown>
}
| { type: "sessionStatus"; sessionID: string; status: string; attempt?: number; message?: string; next?: number }
| { type: "sessionTurnClosed"; sessionID: string; reason: "completed" | "error" | "interrupted" }
| { type: "sessionTurnClosed"; sessionID: string; reason: "completed" | "error" | "interrupted" | "superseded" }
| {
type: "permissionRequest"
permission: {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"type": "module",
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {},
"devDependencies": {},
"peerDependencies": {}
@@ -138,6 +138,13 @@ describe("terminal", () => {
).toBe("error")
})
it("hides superseded turns that handed off to a queued follow-up", () => {
expect(
terminal({ reason: "superseded", messages: [message("tool-calls")], todos: [todo("pending")] }),
).toBeUndefined()
expect(terminal({ reason: "superseded", messages: [message("unknown")], todos: [] })).toBeUndefined()
})
it("reports only the latest assistant finish reason", () => {
const user: Message = { id: "u1", sessionID: "s1", role: "user", createdAt: new Date(1).toISOString() }
expect(terminal({ reason: "completed", messages: [message("length"), user], todos: [] })?.finish).toBeUndefined()
@@ -41,6 +41,9 @@ function identifiers(
export function terminal(input: Input): TerminalState | undefined {
if (!input.reason) return undefined
// A superseded turn handed off to a queued follow-up; it is not a premature
// stop, and the follow-up turn closes with its own reason afterwards.
if (input.reason === "superseded") return undefined
const last = input.messages[input.messages.length - 1]
const finish = last?.role === "assistant" ? last.finish : undefined
const ids = identifiers(last, input.parts)
+1 -1
View File
@@ -736,7 +736,7 @@ export const dict = {
"prompt.placeholder.connecting": "جارٍ الاتصال بالخادم...",
"prompt.placeholder.error": "فشل الاتصال. تحقق من لوحة الإخراج أو أعد تشغيل الإضافة.",
"prompt.placeholder.default": "اكتب رسالة... (Enter للإرسال، Shift+Enter لسطر جديد)",
"prompt.placeholder.default": "اكتب رسالة، @ للإشارة إلى الملفات... (Enter للإرسال، Shift+Enter لسطر جديد)",
"context.usage.sessionCost": "تكلفة الجلسة",
"context.usage.olderSessions": "{{count}} جلسات أقدم",
+2 -1
View File
@@ -754,7 +754,8 @@ export const dict = {
"prompt.placeholder.connecting": "Conectando ao servidor...",
"prompt.placeholder.error": "Conexão falhou. Verifique o painel de saída ou reinicie a extensão.",
"prompt.placeholder.default": "Digite uma mensagem... (Enter para enviar, Shift+Enter para nova linha)",
"prompt.placeholder.default":
"Digite uma mensagem, @ para mencionar arquivos... (Enter para enviar, Shift+Enter para nova linha)",
"context.usage.sessionCost": "Custo da sessão",
"context.usage.olderSessions": "{{count}} sessões anteriores",
+2 -1
View File
@@ -754,7 +754,8 @@ export const dict = {
"prompt.placeholder.connecting": "Povezivanje na server...",
"prompt.placeholder.error": "Povezivanje nije uspjelo. Provjerite panel za izlaz ili ponovo pokrenite ekstenziju.",
"prompt.placeholder.default": "Unesite poruku... (Enter za slanje, Shift+Enter za novi red)",
"prompt.placeholder.default":
"Unesite poruku, @ za spominjanje datoteka... (Enter za slanje, Shift+Enter za novi red)",
"context.usage.sessionCost": "Cijena sesije",
"context.usage.olderSessions": "{{count}} starijih sesija",
+2 -1
View File
@@ -752,7 +752,8 @@ export const dict = {
"prompt.placeholder.connecting": "Opretter forbindelse til server...",
"prompt.placeholder.error": "Forbindelse mislykkedes. Tjek outputpanelet eller genstart udvidelsen.",
"prompt.placeholder.default": "Skriv en besked... (Enter for at sende, Shift+Enter for ny linje)",
"prompt.placeholder.default":
"Skriv en besked, @ for at nævne filer... (Enter for at sende, Shift+Enter for ny linje)",
"context.usage.sessionCost": "Sessionsomkostning",
"context.usage.olderSessions": "{{count}} ældre sessioner",
@@ -766,7 +766,8 @@ export const dict = {
"prompt.placeholder.connecting": "Verbindung zum Server wird hergestellt...",
"prompt.placeholder.error":
"Verbindung fehlgeschlagen. Überprüfen Sie das Ausgabepanel oder starten Sie die Erweiterung neu.",
"prompt.placeholder.default": "Nachricht eingeben... (Enter zum Senden, Shift+Enter für neue Zeile)",
"prompt.placeholder.default":
"Nachricht eingeben, @ um Dateien zu erwähnen... (Enter zum Senden, Shift+Enter für neue Zeile)",
"context.usage.sessionCost": "Sitzungskosten",
"context.usage.olderSessions": "{{count}} ältere Sitzungen",
@@ -728,7 +728,7 @@ export const dict = {
"dialog.model.noProviders": "No providers",
"prompt.placeholder.connecting": "Connecting to server...",
"prompt.placeholder.default": "Type a message... (Enter to send, Shift+Enter for new line)",
"prompt.placeholder.default": "Type a message, @ to mention files... (Enter to send, Shift+Enter for new line)",
"prompt.placeholder.error": "Connection failed. Check the output panel or restart the extension.",
"context.usage.sessionCost": "Session cost",
+2 -1
View File
@@ -759,7 +759,8 @@ export const dict = {
"prompt.placeholder.connecting": "Conectando al servidor...",
"prompt.placeholder.error": "Conexión fallida. Revisa el panel de salida o reinicia la extensión.",
"prompt.placeholder.default": "Escribe un mensaje... (Enter para enviar, Shift+Enter para nueva línea)",
"prompt.placeholder.default":
"Escribe un mensaje, @ para mencionar archivos... (Enter para enviar, Shift+Enter para nueva línea)",
"context.usage.sessionCost": "Coste de la sesión",
"context.usage.olderSessions": "{{count}} sesiones anteriores",
+2 -1
View File
@@ -765,7 +765,8 @@ export const dict = {
"prompt.placeholder.connecting": "Connexion au serveur...",
"prompt.placeholder.error": "Échec de la connexion. Vérifiez le panneau de sortie ou redémarrez l'extension.",
"prompt.placeholder.default": "Tapez un message... (Entrée pour envoyer, Maj+Entrée pour un saut de ligne)",
"prompt.placeholder.default":
"Tapez un message, @ pour mentionner des fichiers... (Entrée pour envoyer, Maj+Entrée pour un saut de ligne)",
"context.usage.sessionCost": "Coût de la session",
"context.usage.olderSessions": "{{count}} sessions précédentes",
+2 -1
View File
@@ -610,7 +610,8 @@ export const dict = {
"ui.sessionTurn.status.consideringNextSteps": "Valutazione prossimi passi...",
"dialog.model.noProviders": "Nessun provider",
"prompt.placeholder.connecting": "Connessione al server...",
"prompt.placeholder.default": "Scrivi un messaggio... (Invio per inviare, Maiusc+Invio per nuova riga)",
"prompt.placeholder.default":
"Scrivi un messaggio, @ per menzionare i file... (Invio per inviare, Maiusc+Invio per nuova riga)",
"prompt.placeholder.error": "Connessione non riuscita. Controlla il pannello output o riavvia l'estensione.",
"context.usage.sessionCost": "Costo sessione",
"context.usage.olderSessions": "{{count}} sessioni precedenti",
+1 -1
View File
@@ -746,7 +746,7 @@ export const dict = {
"prompt.placeholder.connecting": "サーバーに接続中...",
"prompt.placeholder.error": "接続に失敗しました。出力パネルを確認するか、拡張機能を再起動してください。",
"prompt.placeholder.default": "メッセージを入力... (Enterで送信、Shift+Enterで改行)",
"prompt.placeholder.default": "メッセージを入力、@ でファイルを参照... (Enterで送信、Shift+Enterで改行)",
"context.usage.sessionCost": "セッションコスト",
"context.usage.olderSessions": "{{count}} 件の古いセッション",
+1 -1
View File
@@ -746,7 +746,7 @@ export const dict = {
"prompt.placeholder.connecting": "서버에 연결 중...",
"prompt.placeholder.error": "연결에 실패했습니다. 출력 패널을 확인하거나 확장 프로그램을 다시 시작하세요.",
"prompt.placeholder.default": "메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄 바꿈)",
"prompt.placeholder.default": "메시지를 입력하세요, @로 파일 언급... (Enter로 전송, Shift+Enter로 줄 바꿈)",
"context.usage.sessionCost": "세션 비용",
"context.usage.olderSessions": "{{count}}개의 이전 세션",
+2 -1
View File
@@ -743,7 +743,8 @@ export const dict = {
"dialog.model.noProviders": "Geen providers",
"prompt.placeholder.connecting": "Verbinden met server...",
"prompt.placeholder.default": "Typ een bericht... (Enter om te verzenden, Shift+Enter voor nieuwe regel)",
"prompt.placeholder.default":
"Typ een bericht, @ om bestanden te vermelden... (Enter om te verzenden, Shift+Enter voor nieuwe regel)",
"prompt.placeholder.error": "Verbinding mislukt. Controleer het uitvoerpaneel of herstart de extensie.",
"context.usage.sessionCost": "Sessiekosten",
+2 -1
View File
@@ -714,7 +714,8 @@ export const dict = {
"prompt.placeholder.connecting": "Kobler til server...",
"prompt.placeholder.error": "Tilkobling mislyktes. Sjekk utdatapanelet eller start utvidelsen på nytt.",
"prompt.placeholder.default": "Skriv en melding... (Enter for å sende, Shift+Enter for ny linje)",
"prompt.placeholder.default":
"Skriv en melding, @ for å nevne filer... (Enter for å sende, Shift+Enter for ny linje)",
"context.usage.sessionCost": "Sesjonskostnad",
"context.usage.olderSessions": "{{count}} eldre sesjoner",
+2 -1
View File
@@ -710,7 +710,8 @@ export const dict = {
"prompt.placeholder.connecting": "Łączenie z serwerem...",
"prompt.placeholder.error": "Połączenie nie powiodło się. Sprawdź panel wyjściowy lub uruchom ponownie rozszerzenie.",
"prompt.placeholder.default": "Wpisz wiadomość... (Enter, aby wysłać, Shift+Enter dla nowej linii)",
"prompt.placeholder.default":
"Wpisz wiadomość, @ aby wspomnieć pliki... (Enter, aby wysłać, Shift+Enter dla nowej linii)",
"context.usage.sessionCost": "Koszt sesji",
"context.usage.olderSessions": "{{count}} starszych sesji",
+2 -1
View File
@@ -751,7 +751,8 @@ export const dict = {
"prompt.placeholder.connecting": "Подключение к серверу...",
"prompt.placeholder.error": "Не удалось подключиться. Проверьте панель вывода или перезапустите расширение.",
"prompt.placeholder.default": "Введите сообщение... (Enter для отправки, Shift+Enter для новой строки)",
"prompt.placeholder.default":
"Введите сообщение, @ чтобы упомянуть файлы... (Enter для отправки, Shift+Enter для новой строки)",
"context.usage.sessionCost": "Стоимость сессии",
"context.usage.olderSessions": "{{count}} предыдущих сессий",
+1 -1
View File
@@ -743,7 +743,7 @@ export const dict = {
"prompt.placeholder.connecting": "กำลังเชื่อมต่อกับเซิร์ฟเวอร์...",
"prompt.placeholder.error": "การเชื่อมต่อล้มเหลว ตรวจสอบแผงเอาต์พุตหรือรีสตาร์ทส่วนขยาย",
"prompt.placeholder.default": "พิมพ์ข้อความ... (Enter เพื่อส่ง, Shift+Enter เพื่อขึ้นบรรทัดใหม่)",
"prompt.placeholder.default": "พิมพ์ข้อความ, @ เพื่ออ้างถึงไฟล์... (Enter เพื่อส่ง, Shift+Enter เพื่อขึ้นบรรทัดใหม่)",
"context.usage.sessionCost": "ค่าใช้จ่ายเซสชัน",
"context.usage.olderSessions": "{{count}} เซสชันก่อนหน้า",
+2 -1
View File
@@ -737,7 +737,8 @@ export const dict = {
"dialog.model.noProviders": "Sağlayıcı yok",
"prompt.placeholder.connecting": "Sunucuya bağlanılıyor...",
"prompt.placeholder.default": "Bir mesaj yazın... (Göndermek için Enter, yeni satır için Shift+Enter)",
"prompt.placeholder.default":
"Bir mesaj yazın, dosyaları belirtmek için @ kullanın... (Göndermek için Enter, yeni satır için Shift+Enter)",
"prompt.placeholder.error": "Bağlantı başarısız. Çıktı panelini kontrol edin veya uzantıyı yeniden başlatın.",
"context.usage.sessionCost": "Oturum maliyeti",
+2 -1
View File
@@ -739,7 +739,8 @@ export const dict = {
"dialog.model.noProviders": "Немає провайдерів",
"prompt.placeholder.connecting": "Підключення до сервера...",
"prompt.placeholder.default": "Напишіть повідомлення... (Enter для надсилання, Shift+Enter для нового рядка)",
"prompt.placeholder.default":
"Напишіть повідомлення, @ щоб згадати файли... (Enter для надсилання, Shift+Enter для нового рядка)",
"prompt.placeholder.error": "Підключення не вдалося. Перевірте панель виводу або перезапустіть розширення.",
"context.usage.sessionCost": "Вартість сесії",
+1 -1
View File
@@ -726,7 +726,7 @@ export const dict = {
"prompt.placeholder.connecting": "正在连接服务器...",
"prompt.placeholder.error": "连接失败。请检查输出面板或重启扩展。",
"prompt.placeholder.default": "输入消息... (Enter 发送,Shift+Enter 换行)",
"prompt.placeholder.default": "输入消息,用 @ 提及文件... (Enter 发送,Shift+Enter 换行)",
"context.usage.sessionCost": "会话费用",
"context.usage.olderSessions": "{{count}} 个较早的会话",
+1 -1
View File
@@ -686,7 +686,7 @@ export const dict = {
"prompt.placeholder.connecting": "正在連線至伺服器...",
"prompt.placeholder.error": "連線失敗。請檢查輸出面板或重新啟動擴充功能。",
"prompt.placeholder.default": "輸入訊息... (Enter 送出,Shift+Enter 換行)",
"prompt.placeholder.default": "輸入訊息,用 @ 提及檔案... (Enter 送出,Shift+Enter 換行)",
"context.usage.sessionCost": "工作階段費用",
"context.usage.olderSessions": "{{count}} 個較早的工作階段",
@@ -3,7 +3,7 @@ import type { Part, TokenUsage } from "./parts"
export type SessionModelUsage = KilocodeSessionModelUsageResponse
export type SessionCloseReason = "completed" | "error" | "interrupted"
export type SessionCloseReason = "completed" | "error" | "interrupted" | "superseded"
// Message structure (simplified for webview)
export interface Message {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/kilo-web-ui",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@opencode-ai/llm",
"type": "module",
"license": "MIT",
+59
View File
@@ -1,5 +1,64 @@
# @kilocode/cli
## 7.4.17
### Patch Changes
- [#12544](https://github.com/Kilo-Org/kilocode/pull/12544) [`b8d83fb`](https://github.com/Kilo-Org/kilocode/commit/b8d83fb537040afd6632a6d893acc412395832e4) - Support adaptive thinking levels for Claude Opus and Sonnet 5 and later.
- [#12587](https://github.com/Kilo-Org/kilocode/pull/12587) [`16f8e7e`](https://github.com/Kilo-Org/kilocode/commit/16f8e7ef7fbd47755395539e7df54af3baae0c63) - Keep conversations and workspace files unchanged when a checkpoint cannot be fully restored.
- [#12444](https://github.com/Kilo-Org/kilocode/pull/12444) [`92076e7`](https://github.com/Kilo-Org/kilocode/commit/92076e7071084b4bf2ce87d90eb6d45a502c836c) Thanks [@IamCoder18](https://github.com/IamCoder18)! - Add a `/auto-approve` slash command in the TUI for toggling auto-approve mode, with aliases `/autoapprove`, `/approve-all`, and `/approveall`. The command dispatches the existing palette entry, so behavior matches the Ctrl+P "Enable/Disable auto-approve mode" toggle.
- [#11986](https://github.com/Kilo-Org/kilocode/pull/11986) [`0abe474`](https://github.com/Kilo-Org/kilocode/commit/0abe474b6d5c5d482ce950abfd9033bf0c5af3b4) Thanks [@IamCoder18](https://github.com/IamCoder18)! - Let the Context section in the TUI session sidebar collapse and expand on header click, matching the existing collapsible pattern used by Token Usage, Models, and Terminal Bench 2.0. When collapsed, the header shows a one-line summary of percent used and total cost.
- [#12601](https://github.com/Kilo-Org/kilocode/pull/12601) [`dab2e79`](https://github.com/Kilo-Org/kilocode/commit/dab2e79d6ecc24acfd8737a10dfdf8ef02765b30) - Exclude GPT-5.6 from models available through ChatGPT subscriptions while retaining access to variants such as GPT-5.6 Sol.
- [#12592](https://github.com/Kilo-Org/kilocode/pull/12592) [`8c88048`](https://github.com/Kilo-Org/kilocode/commit/8c880487818728f41ffc3087d27d6ce6b4591b53) Thanks [@noobezlol](https://github.com/noobezlol)! - Keep Nix builds on the Bun version required by the repository.
- [#12545](https://github.com/Kilo-Org/kilocode/pull/12545) [`b2735bf`](https://github.com/Kilo-Org/kilocode/commit/b2735bfbc9df170274a12ec4786106dacb61090f) - Fix session transcripts losing their final messages when the CLI exits — pending uploads are now flushed on shutdown and as soon as a session closes.
- [#12470](https://github.com/Kilo-Org/kilocode/pull/12470) [`c0ebf98`](https://github.com/Kilo-Org/kilocode/commit/c0ebf987789ab6fa070106219ebc8c46cd0105af) Thanks [@IamCoder18](https://github.com/IamCoder18)! - Route the websearch tool's Exa requests through the Kilo proxy when signed into Kilo. The MCP-Exa transport is preserved as a fallback for users who set `EXA_API_KEY` or are not authenticated. A new `KILO_WEBSEARCH_PROVIDER=kilo-exa` env override forces the Kilo proxy path. Results are capped at 10.
- [#12460](https://github.com/Kilo-Org/kilocode/pull/12460) [`51d8031`](https://github.com/Kilo-Org/kilocode/commit/51d8031c9997bd5478bcde715562169f732d04d4) - Changes from opencode v1.17.5 to v1.17.9 upstream:
- Core Bugfixes: Improved MCP server compatibility by declaring Kilo's supported client capabilities.
- Core Bugfixes: Plugin client requests now reuse the active server instead of assuming the default local port.
- Core Bugfixes: ACP shell tool calls now show the command and working directory from the start.
- Core Bugfixes: Plugin-provided shell environment variables now apply to PTY sessions.
- Core Bugfixes: OpenAI-compatible providers now accept MCP tool schemas that previously failed validation. (@jquense)
- Core Bugfixes: Cloudflare AI Gateway now receives the configured API key correctly. (@keefetang)
- Core Bugfixes: MCP tools without declared schema properties now work with providers that expect object properties.
- Core Bugfixes: Long-running MCP tools now keep their timeout alive when they report progress. (@Nomadcxx)
- Core Bugfixes: The MCP OAuth callback server now shuts down once authorization finishes or is cancelled.
- Core Bugfixes: MCP tool failures now surface the server's error text instead of a generic failure.
- Core Bugfixes: MCP OAuth error pages now escape provider error text correctly.
- Core Bugfixes: Honor configured agent step limits by forcing a final text response instead of failing mid-run.
- Core Bugfixes: Queue steering prompts before dismissing pending questions so the previous turn cannot resume first.
- Core Bugfixes: Prevent local server credentials from leaking into spawned PTY processes.
- Core Bugfixes: Fix Devstral model detection when provider IDs use different casing. (@Robin1987China)
- Core Bugfixes: Pass configured custom headers to Copilot model requests.
- Core Improvements: MCP servers can now receive the current workspace as a client root.
- Core Improvements: Session timelines load much faster and avoid flicker or scroll jumps.
- Core Improvements: Add `high` and `max` thinking variants for GLM-5.2 across supported providers. (@imranshaiedi-byte)
- Core Improvements: Stop wrapping follow-up user messages in a steering reminder so prompt caching stays effective.
- TUI Bugfixes: MCP debug now uses the SDK's latest protocol version.
- TUI Bugfixes: Only show the background subagent shortcut when the server supports it.
- UI Bugfixes: Render completed Mermaid blocks from diagram source instead of fenced Markdown.
- [#12585](https://github.com/Kilo-Org/kilocode/pull/12585) [`a0a760e`](https://github.com/Kilo-Org/kilocode/commit/a0a760e00e915a800125f03db7e08381ddc63e2a) - Fix bash permission rules being bypassed on PowerShell for commands containing a bare `--` such as `git checkout -- <file>`. Commands the shell parser cannot parse now get checked against their raw command text instead of executing without a permission check.
- [#12505](https://github.com/Kilo-Org/kilocode/pull/12505) [`bcf8b8b`](https://github.com/Kilo-Org/kilocode/commit/bcf8b8b9a852969ee842783e33a7fe32f9b3c3b8) - Emit each agent event once from `kilo run --format json`.
- [#12593](https://github.com/Kilo-Org/kilocode/pull/12593) [`160b066`](https://github.com/Kilo-Org/kilocode/commit/160b06661acc5f04b21221ab6578c468325f64c5) - Prevent the VS Code backend from eagerly starting native file watchers for every Agent Manager worktree.
- [#12583](https://github.com/Kilo-Org/kilocode/pull/12583) [`1310c12`](https://github.com/Kilo-Org/kilocode/commit/1310c1200ab613b316f27fe4fd59e23e262df02f) Thanks [@noobezlol](https://github.com/noobezlol)! - Keep Windows snapshot diffs parseable and preserve valid files when a stored patch is malformed.
- [#12588](https://github.com/Kilo-Org/kilocode/pull/12588) [`deddf00`](https://github.com/Kilo-Org/kilocode/commit/deddf0012fe36c5bb8072f4378abd444fbd134fe) - Bound the wait for a provider's first response byte by the request timeout. A provider that accepts a request and returns headers but never sends body data now fails and retries instead of leaving the turn hanging after a tool call completes. The same `timeout` value now covers both the connection phase and the wait for the first byte as a single deadline; streaming responses that have already produced data are unaffected.
- [#12514](https://github.com/Kilo-Org/kilocode/pull/12514) [`a33493e`](https://github.com/Kilo-Org/kilocode/commit/a33493e7222857a5c9f5e2c09a17312781567b3f) - Stabilize cross-platform CLI subprocess tests under constrained CI runners
- [#12639](https://github.com/Kilo-Org/kilocode/pull/12639) [`8a47d8b`](https://github.com/Kilo-Org/kilocode/commit/8a47d8b78885fa8fd14c73b3aecdb57e1fc96c9c) - Stop flashing a "Turn interrupted" warning when a follow-up message is queued while the assistant is still working. The running turn now closes with a dedicated "superseded" reason instead of "interrupted" when it hands off to the queued prompt, so the premature-stop warning only appears for real interruptions.
## 7.4.16
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "7.4.16",
"version": "7.4.17",
"name": "@kilocode/cli",
"type": "module",
"license": "MIT",
@@ -78,7 +78,9 @@ export namespace MemoryLifecycle {
if (!enabled) return
yield* MemoryTurn.close({
sessionID: evt.properties.sessionID,
reason: evt.properties.reason,
// A superseded turn handed off to a queued follow-up after draining
// its step; for digest purposes it was cut short like an interrupt.
reason: evt.properties.reason === "superseded" ? "interrupted" : evt.properties.reason,
sessions: input.sessions,
summary: input.summary,
provider: input.provider,
@@ -2,7 +2,10 @@ import { BusEvent } from "@/bus/bus-event"
import { MessageID, SessionID } from "@/session/schema"
import { Schema } from "effect"
const CloseReason = Schema.Literals(["completed", "error", "interrupted"])
// "superseded": the turn handed off to a queued follow-up after draining its
// current step. Distinct from "interrupted" so clients do not surface a
// premature-stop warning for a deliberate queue handoff.
const CloseReason = Schema.Literals(["completed", "error", "interrupted", "superseded"])
export const KiloSessionEvent = {
TurnOpen: BusEvent.define(
+4 -2
View File
@@ -1848,9 +1848,11 @@ export const layer = Layer.effect(
// kilocode_change start — break out so a newer queued prompt can take over
// instead of starting another LLM step for the now-superseded turn. The
// current handle.process has fully drained (tokens + inline tool calls) by
// the time we get here, so nothing is cut off.
// the time we get here, so nothing is cut off. The close reason is
// "superseded", not "interrupted": this is a deliberate queue handoff,
// not a premature stop, so clients must not flash an interruption warning.
if (KiloSessionPromptQueue.hasFollowup(sessionID)) {
closeReasons.set(sessionID, "interrupted")
closeReasons.set(sessionID, "superseded")
return "break" as const
}
// kilocode_change end
@@ -549,6 +549,96 @@ describe("session prompt queue", () => {
}
})
test("closes a queued-handoff turn as superseded, not interrupted", async () => {
const ready = Promise.withResolvers<void>()
const release = Promise.withResolvers<void>()
const server = Bun.serve({
port: 0,
async fetch(req) {
const url = new URL(req.url)
if (!url.pathname.endsWith("/chat/completions")) return new Response("not found", { status: 404 })
// Hold every stream open until the follow-up prompt is queued, so
// runLoop deterministically takes the hasFollowup break once its
// current step drains. Forked title/summary calls get held too; they
// are Effect.ignore'd and drain once released.
ready.resolve()
const stream = reply({ text: "reply", wait: release.promise })
return new Response(stream, {
status: 200,
headers: { "Content-Type": "text/event-stream" },
})
},
})
try {
await using tmp = await tmpdir({
git: true,
init: async (dir) => {
await Bun.write(path.join(dir, "opencode.json"), JSON.stringify(providerCfg(server.url.origin)))
},
})
await provideTestInstance({
directory: tmp.path,
fn: async () =>
scoped(tmp.path, async (prompt) => {
const closed: KiloSession.CloseReason[] = []
const unsubscribe = Bus.subscribe(KiloSession.Event.TurnClose, (event) => {
closed.push(event.properties.reason)
})
const session = await sessions.create({ title: "Superseded close reason" })
const first = Effect.runPromise(
prompt.prompt({
sessionID: session.id,
agent: "code",
parts: [{ type: "text", text: "first prompt" }],
}),
)
// A request reaching the mock implies the turn loop is running
// (forked title/summary calls fire from step 1 of the loop).
await ready.promise
const second = Effect.runPromise(
prompt.prompt({
sessionID: session.id,
agent: "code",
parts: [{ type: "text", text: "second prompt" }],
}),
)
// Wait until the follow-up is actually queued behind the in-flight
// turn, then let the first stream drain so runLoop hands off.
await Effect.runPromise(
pollWithTimeout(
Effect.sync(() => (KiloSessionPromptQueue.hasFollowup(session.id) ? (true as const) : undefined)),
"follow-up prompt never queued behind the in-flight turn",
"3 seconds",
),
)
release.resolve()
expect((await first).info.role).toBe("assistant")
expect((await second).info.role).toBe("assistant")
// Bus delivery is a microtask chain; flush a macrotask so the last
// TurnClose callback lands before asserting.
await new Promise((resolve) => setTimeout(resolve, 0))
unsubscribe()
expect(closed).toHaveLength(2)
// The first turn drained its stream cleanly and handed off to the
// queued follow-up; it must not look like a user interruption to
// clients (they flash a "Turn interrupted" warning on that reason).
expect(closed[0]).toBe("superseded")
expect(closed[1]).toBe("completed")
}),
})
} finally {
server.stop(true)
}
}, 20_000)
test("bridges legacy instance context for prompts after a completed turn", async () => {
const calls: number[] = []
const server = Bun.serve({
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/plugin-atomic-chat",
"version": "7.4.16",
"version": "7.4.17",
"description": "Kilo Code plugin for Atomic Chat: auto-detection and dynamic model discovery (OpenAI-compatible local API)",
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/plugin",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"scripts": {
+1 -1
View File
@@ -12,6 +12,6 @@
"exports": {
".": "./src/index.ts"
},
"version": "7.4.16",
"version": "7.4.17",
"peerDependencies": {}
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@kilocode/sdk",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"scripts": {
+1 -1
View File
@@ -3557,7 +3557,7 @@ export type EventSessionTurnClose = {
properties: {
sessionID: string
parentID?: string
reason: "completed" | "error" | "interrupted"
reason: "completed" | "error" | "interrupted" | "superseded"
}
}
+164 -126
View File
@@ -24496,6 +24496,15 @@
{
"$ref": "#/components/schemas/EventServerInstanceDisposed"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSessionQueueChanged"
},
{
"$ref": "#/components/schemas/EventSessionNetworkAsked"
},
@@ -24523,12 +24532,6 @@
{
"$ref": "#/components/schemas/EventInteractive_terminalDeleted"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSandboxStatusChanged"
},
@@ -24557,10 +24560,10 @@
"$ref": "#/components/schemas/EventKilocodeNotebookCancelled"
},
{
"$ref": "#/components/schemas/EventLspClientDiagnostics"
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
},
{
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
"$ref": "#/components/schemas/EventLspClientDiagnostics"
},
{
"$ref": "#/components/schemas/EventMemoryStatus1"
@@ -24818,10 +24821,10 @@
"$ref": "#/components/schemas/EventProjectUpdated"
},
{
"$ref": "#/components/schemas/EventLspUpdated"
"$ref": "#/components/schemas/EventVcsBranchUpdated"
},
{
"$ref": "#/components/schemas/EventVcsBranchUpdated"
"$ref": "#/components/schemas/EventLspUpdated"
},
{
"$ref": "#/components/schemas/EventWorkspaceReady"
@@ -26838,7 +26841,7 @@
"type": "object",
"properties": {
"start": {
"type": "number",
"type": "integer",
"minimum": 0
}
},
@@ -26914,11 +26917,11 @@
"type": "object",
"properties": {
"start": {
"type": "number",
"type": "integer",
"minimum": 0
},
"end": {
"type": "number",
"type": "integer",
"minimum": 0
},
"elapsed": {
@@ -27686,6 +27689,15 @@
{
"$ref": "#/components/schemas/EventServerInstanceDisposed"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSessionQueueChanged"
},
{
"$ref": "#/components/schemas/EventSessionNetworkAsked"
},
@@ -27713,12 +27725,6 @@
{
"$ref": "#/components/schemas/EventInteractive_terminalDeleted"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSandboxStatusChanged"
},
@@ -27747,10 +27753,10 @@
"$ref": "#/components/schemas/EventKilocodeNotebookCancelled"
},
{
"$ref": "#/components/schemas/EventLspClientDiagnostics"
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
},
{
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
"$ref": "#/components/schemas/EventLspClientDiagnostics"
},
{
"$ref": "#/components/schemas/EventMemoryStatus"
@@ -28008,10 +28014,10 @@
"$ref": "#/components/schemas/EventProjectUpdated"
},
{
"$ref": "#/components/schemas/EventLspUpdated"
"$ref": "#/components/schemas/EventVcsBranchUpdated"
},
{
"$ref": "#/components/schemas/EventVcsBranchUpdated"
"$ref": "#/components/schemas/EventLspUpdated"
},
{
"$ref": "#/components/schemas/EventWorkspaceReady"
@@ -35218,6 +35224,96 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnOpen": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.open"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnClose": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.close"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"parentID": {
"type": "string",
"pattern": "^ses"
},
"reason": {
"type": "string",
"enum": ["completed", "error", "interrupted", "superseded"]
}
},
"required": ["sessionID", "reason"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionQueueChanged": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.queue.changed"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"queued": {
"type": "array",
"items": {
"type": "string",
"pattern": "^msg"
}
}
},
"required": ["sessionID", "queued"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionNetworkAsked": {
"type": "object",
"properties": {
@@ -35470,64 +35566,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnOpen": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.open"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnClose": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.close"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"parentID": {
"type": "string",
"pattern": "^ses"
},
"reason": {
"type": "string",
"enum": ["completed", "error", "interrupted"]
}
},
"required": ["sessionID", "reason"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSandboxStatusChanged": {
"type": "object",
"properties": {
@@ -35837,33 +35875,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspClientDiagnostics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.client.diagnostics"]
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventKilo-sessionsRemote-status-changed": {
"type": "object",
"properties": {
@@ -35891,6 +35902,33 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspClientDiagnostics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.client.diagnostics"]
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventMemoryStatus": {
"type": "object",
"properties": {
@@ -39854,24 +39892,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspUpdated": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.updated"]
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventVcsBranchUpdated": {
"type": "object",
"properties": {
@@ -39895,6 +39915,24 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspUpdated": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.updated"]
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventWorkspaceReady": {
"type": "object",
"properties": {
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/server",
"version": "7.4.16",
"version": "7.4.17",
"private": true,
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -26,7 +26,7 @@
"typescript": "catalog:",
"vite": "catalog:"
},
"version": "7.4.16",
"version": "7.4.17",
"dependencies": {},
"peerDependencies": {}
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/tui",
"version": "7.4.16",
"version": "7.4.17",
"private": true,
"type": "module",
"license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/ui",
"version": "7.4.16",
"version": "7.4.17",
"type": "module",
"license": "MIT",
"exports": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@kilocode/upstream-merge",
"version": "7.4.16",
"version": "7.4.17",
"private": true,
"type": "module",
"description": "Scripts for automating upstream opencode merges into Kilo",