diff --git a/.changeset/avoid-repeat-compactions.md b/.changeset/avoid-repeat-compactions.md deleted file mode 100644 index 11bb0a33c0..0000000000 --- a/.changeset/avoid-repeat-compactions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Prevent unnecessary repeat auto-compactions when providers report inconsistent token totals. diff --git a/.changeset/calm-agents-keep-worktrees.md b/.changeset/calm-agents-keep-worktrees.md deleted file mode 100644 index 44f66ddbb1..0000000000 --- a/.changeset/calm-agents-keep-worktrees.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Preserve existing Agent Manager worktrees and use deterministic suffixes when explicit branch names collide. diff --git a/.changeset/calm-shells-timeout.md b/.changeset/calm-shells-timeout.md deleted file mode 100644 index 9c2e411c36..0000000000 --- a/.changeset/calm-shells-timeout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Allow hosted runtimes to cap shell command duration and explain environment-enforced timeouts. diff --git a/.changeset/clear-empty-models.md b/.changeset/clear-empty-models.md deleted file mode 100644 index 80956ed835..0000000000 --- a/.changeset/clear-empty-models.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Indicate when no models are available in model-not-found errors. diff --git a/.changeset/clear-kilo-commands.md b/.changeset/clear-kilo-commands.md deleted file mode 100644 index 3d5fcc0b55..0000000000 --- a/.changeset/clear-kilo-commands.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Group Kilo Code commands in the VS Code command palette and clarify the Open in Tab command title. diff --git a/.changeset/default-lancedb-search.md b/.changeset/default-lancedb-search.md deleted file mode 100644 index ef8a8153d8..0000000000 --- a/.changeset/default-lancedb-search.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@kilocode/cli": minor -"@kilocode/kilo-indexing": minor -"kilo-code": minor ---- - -Use embedded LanceDB as the default semantic search vector store so indexing works without a separate Qdrant server. Existing Qdrant users and Intel Mac users can select `qdrant` with `indexing.vectorStore`. diff --git a/.changeset/dismiss-stale-permissions.md b/.changeset/dismiss-stale-permissions.md deleted file mode 100644 index 0c031b224b..0000000000 --- a/.changeset/dismiss-stale-permissions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Dismiss stale permission prompts when another view has already answered them. diff --git a/.changeset/fast-agent-snapshots.md b/.changeset/fast-agent-snapshots.md deleted file mode 100644 index 039e35176a..0000000000 --- a/.changeset/fast-agent-snapshots.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Speed up the first Agent Manager prompt in new worktrees by seeding snapshots from the checkout's Git index. diff --git a/.changeset/fast-agent-transcripts.md b/.changeset/fast-agent-transcripts.md deleted file mode 100644 index 47915f465a..0000000000 --- a/.changeset/fast-agent-transcripts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Keep large chat transcripts responsive by mounting only viewport-visible conversation rows. diff --git a/.changeset/fast-session-forks.md b/.changeset/fast-session-forks.md deleted file mode 100644 index c42452d0fe..0000000000 --- a/.changeset/fast-session-forks.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@kilocode/cli": patch -"@kilocode/kilo-ui": patch -"kilo-code": patch ---- - -Speed up large session forks by retaining final task outcomes instead of duplicating resumable subagent histories, and load completed task details only when expanded. diff --git a/.changeset/fresh-provider-models.md b/.changeset/fresh-provider-models.md deleted file mode 100644 index 5919d57f2f..0000000000 --- a/.changeset/fresh-provider-models.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Refresh connected provider model lists when the models catalog updates. diff --git a/.changeset/honest-model-badges.md b/.changeset/honest-model-badges.md deleted file mode 100644 index f808c5181a..0000000000 --- a/.changeset/honest-model-badges.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"kilo-code": patch -"@kilocode/cli": patch -"@kilocode/kilo-gateway": patch ---- - -Show model free and prompt-training indicators only when their explicit catalog metadata is enabled. diff --git a/.changeset/keep-error-status-inline.md b/.changeset/keep-error-status-inline.md deleted file mode 100644 index c9af5fda82..0000000000 --- a/.changeset/keep-error-status-inline.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Keep HTTP status codes beside tool error titles when error details wrap. diff --git a/.changeset/prevent-subagent-questions.md b/.changeset/prevent-subagent-questions.md deleted file mode 100644 index e953140748..0000000000 --- a/.changeset/prevent-subagent-questions.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@kilocode/cli": patch -"kilo-code": patch ---- - -Prevent task subagents from asking questions that users cannot answer from the parent session. diff --git a/.changeset/quick-local-prompts.md b/.changeset/quick-local-prompts.md deleted file mode 100644 index f373d57712..0000000000 --- a/.changeset/quick-local-prompts.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Show the first Agent Manager Local prompt and progress indicator immediately while its session is being created. diff --git a/.changeset/quiet-kilo-attention.md b/.changeset/quiet-kilo-attention.md deleted file mode 100644 index 7e55f8fd6e..0000000000 --- a/.changeset/quiet-kilo-attention.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Prevent duplicate CLI attention alerts and route Kilo prompts through the configurable notification system. diff --git a/.changeset/remove-vscode-paste-summary.md b/.changeset/remove-vscode-paste-summary.md deleted file mode 100644 index 9ae0712be7..0000000000 --- a/.changeset/remove-vscode-paste-summary.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Remove the unsupported paste-summary toggle from VS Code settings. diff --git a/.changeset/restore-failed-question-replies.md b/.changeset/restore-failed-question-replies.md deleted file mode 100644 index 2763fda704..0000000000 --- a/.changeset/restore-failed-question-replies.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"kilo-code": patch -"@kilocode/cli": patch -"@kilocode/kilo-gateway": patch ---- - -Prevent streamed tool calls from executing twice and leaving answered questions disabled in VS Code. diff --git a/.changeset/restore-scout-codesearch.md b/.changeset/restore-scout-codesearch.md deleted file mode 100644 index 9e2073bc39..0000000000 --- a/.changeset/restore-scout-codesearch.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@kilocode/cli": patch -"kilo-code": patch ---- - -Remove the unsupported code search tool. diff --git a/.changeset/restore-vercel-providers.md b/.changeset/restore-vercel-providers.md deleted file mode 100644 index ada074e654..0000000000 --- a/.changeset/restore-vercel-providers.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@kilocode/cli": patch -"@kilocode/kilo-gateway": patch ---- - -Update the Vercel AI SDK providers for Cerebras, xAI, and OpenAI-compatible endpoints. diff --git a/.changeset/select-custom-question-answer.md b/.changeset/select-custom-question-answer.md deleted file mode 100644 index f48e853936..0000000000 --- a/.changeset/select-custom-question-answer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Keep custom-answer selection in sync and show one submit action while entering custom text. diff --git a/.changeset/session-patches-stay-whole.md b/.changeset/session-patches-stay-whole.md deleted file mode 100644 index 05f145ceac..0000000000 --- a/.changeset/session-patches-stay-whole.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Preserve complete session state when applying partial session updates in VS Code. diff --git a/.changeset/share-vscode-session-database.md b/.changeset/share-vscode-session-database.md deleted file mode 100644 index aa85b9aa04..0000000000 --- a/.changeset/share-vscode-session-database.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Restore persisted sessions across development extension branches and worktrees. diff --git a/.changeset/steady-tui-streams.md b/.changeset/steady-tui-streams.md deleted file mode 100644 index 65b122ba07..0000000000 --- a/.changeset/steady-tui-streams.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@kilocode/cli": patch ---- - -Restore streamed responses in the CLI TUI and move code indexing status into the session sidebar. diff --git a/.changeset/warm-agent-manager-mcp.md b/.changeset/warm-agent-manager-mcp.md deleted file mode 100644 index 1a052339ee..0000000000 --- a/.changeset/warm-agent-manager-mcp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"kilo-code": patch ---- - -Start MCP servers while Agent Manager worktree sessions initialize to reduce the delay before the first response. diff --git a/.github/workflows/kilo-auto-close.yml b/.github/workflows/kilo-auto-close.yml index 65c87b9c4a..5d1ce14a3c 100644 --- a/.github/workflows/kilo-auto-close.yml +++ b/.github/workflows/kilo-auto-close.yml @@ -125,6 +125,15 @@ jobs: createdAt } } + reviewThreads(last: 100) { + nodes { + comments(last: 1) { + nodes { + createdAt + } + } + } + } } } } @@ -159,23 +168,35 @@ jobs: core.info(`Found ${allPrs.length} open pull requests`) - const stalePrs = allPrs.filter((pr) => { - const dates = [ - new Date(pr.createdAt), - pr.commits.nodes[0] ? new Date(pr.commits.nodes[0].commit.committedDate) : null, - pr.comments.nodes[0] ? new Date(pr.comments.nodes[0].createdAt) : null, - pr.reviews.nodes[0] ? new Date(pr.reviews.nodes[0].createdAt) : null, - ].filter((d) => d !== null) + function entry(source, date) { + if (!date) return null - const lastActivity = dates.sort((a, b) => b.getTime() - a.getTime())[0] + return { source, date: new Date(date) } + } - if (!lastActivity || lastActivity > prCutoff) { - core.info(`PR #${pr.number} is fresh (last activity: ${lastActivity?.toISOString() || "unknown"})`) - return false + function latest(items) { + return items.filter(Boolean).sort((a, b) => b.date.getTime() - a.date.getTime())[0] + } + + const stalePrs = allPrs.flatMap((pr) => { + const activity = latest([ + entry("created", pr.createdAt), + entry("commit", pr.commits.nodes[0]?.commit.committedDate), + entry("comment", pr.comments.nodes[0]?.createdAt), + entry("review", pr.reviews.nodes[0]?.createdAt), + ...pr.reviewThreads.nodes.map((t) => entry("review comment", t.comments.nodes[0]?.createdAt)), + ]) + const text = activity + ? `${activity.date.toISOString()} via ${activity.source}` + : "unknown" + + if (!activity || activity.date > prCutoff) { + core.info(`PR #${pr.number} is fresh (last activity: ${text})`) + return [] } - core.info(`PR #${pr.number} is STALE (last activity: ${lastActivity.toISOString()})`) - return true + core.info(`PR #${pr.number} is STALE (last activity: ${text})`) + return [{ ...pr, activity }] }) core.info(`Found ${stalePrs.length} stale pull requests`) @@ -194,7 +215,7 @@ jobs: const closeComment = `To stay organized pull requests are automatically closed after ${PR_DAYS_INACTIVE} days of inactivity. If the pull request is still relevant please open a new one.` if (dryRun) { - core.info(`[dry-run] Would close PR #${issue_number} from ${pr.author?.login || 'unknown'}: ${pr.title}`) + core.info(`[dry-run] Would close PR #${issue_number} from ${pr.author?.login || 'unknown'} (last activity: ${pr.activity.date.toISOString()} via ${pr.activity.source}): ${pr.title}`) continue } @@ -222,7 +243,7 @@ jobs: ) closedPrCount++ - core.info(`Closed PR #${issue_number} from ${pr.author?.login || 'unknown'}: ${pr.title}`) + core.info(`Closed PR #${issue_number} from ${pr.author?.login || 'unknown'} (last activity: ${pr.activity.date.toISOString()} via ${pr.activity.source}): ${pr.title}`) // Delay before processing next PR await sleep(prDelayMs) @@ -272,7 +293,7 @@ jobs: continue } - staleIssues.push(issue) + staleIssues.push({ ...issue, activity: updated }) } if (!stop) { @@ -296,7 +317,7 @@ jobs: const closeComment = `To stay organized issues are automatically closed after ${ISSUE_DAYS_INACTIVE} days of no activity. If the issue is still relevant please open a new one.` if (dryRun) { - core.info(`[dry-run] Would close issue #${issue.number}: ${issue.title}`) + core.info(`[dry-run] Would close issue #${issue.number} (last activity: ${issue.activity.toISOString()} via updated): ${issue.title}`) continue } @@ -323,7 +344,7 @@ jobs: ) closedIssueCount++ - core.info(`Closed issue #${issue.number}: ${issue.title}`) + core.info(`Closed issue #${issue.number} (last activity: ${issue.activity.toISOString()} via updated): ${issue.title}`) await sleep(issueDelayMs) } catch (error) { diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index c339ebfb6e..e7407da1fc 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "kilo" name = "Kilo" description = "The open source coding agent." -version = "7.3.42" +version = "7.3.44" 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.3.42/opencode-darwin-arm64.zip" +archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.44/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.3.42/opencode-darwin-x64.zip" +archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.44/opencode-darwin-x64.zip" cmd = "./opencode" args = ["acp"] [agent_servers.opencode.targets.linux-aarch64] -archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.42/opencode-linux-arm64.tar.gz" +archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.44/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.3.42/opencode-linux-x64.tar.gz" +archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.44/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.3.42/opencode-windows-x64.zip" +archive = "https://github.com/Kilo-Org/kilocode/releases/download/v7.3.44/opencode-windows-x64.zip" cmd = "./opencode.exe" args = ["acp"] diff --git a/packages/kilo-console/src/client.ts b/packages/kilo-console/src/client.ts index 9a3eb36489..adca1648a7 100644 --- a/packages/kilo-console/src/client.ts +++ b/packages/kilo-console/src/client.ts @@ -52,6 +52,7 @@ export type ProjectConsoleQuery = ProjectQuery & { export type ProjectConsoleSnapshot = { project: ProjectItem + config: EffectiveConfig vcs: VcsInfo worktrees: string[] terminals: ProjectTerminalItem[] @@ -439,7 +440,8 @@ export async function loadProjectConsole(input: ProjectConsoleQuery): Promise -
-
+
event.key === "Escape" && props.onCancel()}> +
-

{props.title}

- {(text) =>

{text()}

}
+

{props.title}

+ {(text) =>

{text()}

}
- + +
+ +
+
+ + ) +} diff --git a/packages/kilo-console/src/layouts/ConfigLayout.tsx b/packages/kilo-console/src/layouts/ConfigLayout.tsx index 8f779b9328..be9be5043e 100644 --- a/packages/kilo-console/src/layouts/ConfigLayout.tsx +++ b/packages/kilo-console/src/layouts/ConfigLayout.tsx @@ -30,13 +30,6 @@ function ConfigContent(props: { children?: JSX.Element }) { )} - - {(item) => ( - - )} -