Commit Graph
17338 Commits
Author SHA1 Message Date
Joshua Lambert 8ea33da72f Merge branch 'main' into fix/smoke-test-draft-release 2026-04-18 20:34:26 -04:00
kilo-maintainer[bot] b24baf93ec chore: update nix node_modules hashes 2026-04-18 18:33:44 +00:00
Imanol Maiztegui 568d7463b5 Merge pull request #9014 from Kilo-Org/johnnyamancio/kilo-opencode-v1.4.4
OpenCode v1.4.4
2026-04-18 20:21:39 +02:00
Imanol Maiztegui 4a8e1b5472 Merge branch 'main' into johnnyamancio/kilo-opencode-v1.4.4 2026-04-18 18:17:05 +02:00
Josh Lambert a1321bf54f ci: drop pagination and head pipe in asset URL lookup
Addresses review feedback: `gh api | head -n1` can fail under bash
pipefail because head closes the pipe early and SIGPIPEs gh api. The
tag_name + asset-name filter already returns a single URL, so drop
--paginate and the head pipe.
2026-04-18 10:55:45 -04:00
kilo-maintainer[bot] 9d6d622e94 chore: update nix node_modules hashes 2026-04-18 11:09:58 +00:00
Christiaan Arnoldus dfd9394438 Merge pull request #9164 from Kilo-Org/update-anthropic-sdk-3.0.71
chore: update @ai-sdk/anthropic to 3.0.71
2026-04-18 12:59:04 +02:00
kiloconnect[bot] 41e0df6b4d chore: improve changeset description with 3.0.71 fix detail 2026-04-18 10:30:07 +00:00
kiloconnect[bot] 448dba8ca5 chore(cli,gateway): update @ai-sdk/anthropic to 3.0.71 with xhigh effort support 2026-04-18 10:22:28 +00:00
Christiaan Arnoldus 46e785b031 Merge pull request #8968 from Kilo-Org/feat/variant-chat-template-args
feat(vscode): support chat_template_args variant in custom providers
2026-04-18 09:18:45 +02:00
Josh Lambert b3ce557f21 ci: resolve draft release assets via API in smoke-test
Fixes Kilo CLI install failing with curl exit 22 when the smoke-test
workflow runs as a pre-publish gate. The browser download URL
(github.com/.../releases/download/...) 404s on draft releases, so
look up the asset via the releases API and let the installer use the
API URL with Accept: application/octet-stream and bearer auth.

Also bumps smoke-test.yml permissions to contents: write so the job
token can see draft releases, and re-enables the smoke-test job in
publish.yml.
2026-04-18 01:11:18 -04:00
kilo-maintainer[bot] 1b4f9cd3d7 chore: update nix node_modules hashes 2026-04-17 21:59:27 +00:00
Christiaan Arnoldus f1cb23a217 Merge pull request #9152 from Kilo-Org/imanol/morph-sdk-version
Update morphsdk version
2026-04-17 23:43:16 +02:00
Imanol Maiztegui afebe32c02 chore: align morphsdk version to 0.2.166 across packages
Unify @morphllm/morphsdk dependency from divergent versions (0.2.141
in root, 0.2.148 in opencode) to a consistent 0.2.166.
2026-04-17 23:32:55 +02:00
Imanol Maiztegui 8bae4413fd test(bash): migrate permission metadata tests to Effect runtime
Replace raw async/Promise-based test helpers with Effect-based
equivalents to align with the upstream BashTool API changes. Introduce
a ManagedRuntime composed of CrossSpawnSpawner, AppFileSystem, Plugin,
Truncate, and Agent layers. Update metadata, ask, and execute call
sites to return Effect values instead of plain promises.
2026-04-17 22:54:14 +02:00
Imanol Maiztegui 2ee8394cf1 feat: add workspace API endpoints, sanitize export flag, and update SDK types
Add experimental workspace adaptor list and status endpoints to the
OpenAPI spec. Add --sanitize flag to CLI export command for redacting
sensitive data. Update SDK types to reorder session status types before
suggestion types. Remove deprecated /global/sync-event endpoint.

Includes formatting fixes across i18n files, opencode source, and
tests, plus a warpgrep import path correction.
2026-04-17 22:51:24 +02:00
Imanol Maiztegui 5a2789167f Merge branch 'main' into johnnyamancio/kilo-opencode-v1.4.4 2026-04-17 22:35:10 +02:00
Johnny Amancio 8aa490c66e chore: Add kilocode_change marker 2026-04-17 20:17:57 +02:00
Johnny Amancio 2172616229 fix: Remove Bash string appearing before commands - brought back on earlier opencode merge 2026-04-17 20:17:57 +02:00
kilo-maintainer[bot] 024ad48c50 release: v7.2.14 v7.2.14 2026-04-17 18:09:17 +00:00
Joshua Lambert d42e2b7445 Merge pull request #9147 from Kilo-Org/chore/disable-publish-smoke-test
ci: disable smoke-test job in publish workflow
2026-04-17 13:49:51 -04:00
Joshua Lambert bec9d9b04d Apply suggestions from code review
Co-authored-by: Joshua Lambert <25085430+lambertjosh@users.noreply.github.com>
2026-04-17 13:37:26 -04:00
Josh Lambert c55a9a9af1 ci: disable smoke-test job in publish workflow 2026-04-17 13:34:45 -04:00
Marius 72fc5d9918 docs(cli): note cloud schema mirror when adding kilocode_change config keys (#9117)
* docs(cli): note cloud schema mirror when adding kilocode_change config keys

Points devs to apps/web/src/app/config.json/extras.ts in the cloud repo
so new Kilo-only config keys get recognised by $schema references.

Closes #9115

* docs: add CLI config schema page and AGENTS.md mirror rule

Short page under Contributing → Architecture explaining how the cloud
overlays Kilo extras on top of the upstream opencode JSON Schema, with
the step-by-step for adding a new Kilo-only config key. AGENTS.md gains
a one-liner in the Fork Merge Process section pointing to it.
2026-04-17 17:57:24 +02:00
Marian Alexandru Alecu 28abdededc Merge pull request #9046 from Kilo-Org/fix/memory-leak-agent-manager
fix(vscode Windows): fix native memory leak in Agent Manager git polling
2026-04-17 18:26:01 +03:00
kilo-maintainer[bot] 2367e279af chore: update nix node_modules hashes 2026-04-17 15:03:15 +00:00
Alex Alecu 213101da4e fix(vscode): raise per-file diff cap to 20 MB
Bumps MAX_DETAIL_BYTES from 2 MB to 20 MB so most real-world files open
in the diff detail view without falling back to the summarized entry.
2026-04-17 17:59:12 +03:00
Mariusandgithub-actions[bot] eac2dbafa0 perf(vscode): paginated message loading with virtualized scroll (#8911)
* perf(vscode): paginated message loading with virtualized scroll

Reimplement session message loading with cursor-based pagination and
virtual list rendering to reduce initial load time and memory for long
sessions.

* chore: update kilo-vscode visual regression baselines

* fix(vscode): update VscodeSessionTurn props in storybook

* chore: update kilo-vscode visual regression baselines

* perf(vscode): skip reconcile on session switch, lazy part hydration, fast markdown render

Skip SolidJS reconcile() for replace-mode message loads — direct array
assignment avoids expensive O(n) diffing and proxy creation for 80+
messages on every session switch.

Defer part hydration until the virtualizer renders each turn, reducing
reactive store writes by 85% on initial load. Double-rAF scroll
restoration avoids forced layout reflow mid-paint.

Extract markdown fast-path render into packages/ui/src/kilocode/ to
minimize shared file changes.

* fix(vscode): keep lazy part hydration correct in stories

* fix(vscode): resolve state-risk regressions in message pagination

Five correctness issues surfaced during review of the paginated-message-
loading stack, plus the follow-through performance tuning needed to keep
session switching near-instant:

- focus-mode selection re-enters the server for the tail (new "reconcile"
  load mode) so SSE drops self-heal on the next session switch instead of
  stranding the webview on a stale snapshot. Throttled to 1s to avoid
  stacking up fetches on rapid tab switching, and early-outs in the
  webview when the server tail matches local state.
- cursor pagination falls back to a client-synthesized `{id,time}` cursor
  when a proxy or older binary strips the X-Next-Cursor header, so "load
  earlier" keeps working.
- in-flight loadMessages results for a session deleted mid-fetch are
  dropped instead of resurrecting a ghost entry in the webview store.
- sub-agent viewer now loads the full transcript via `limit: 0` instead
  of silently truncating to MESSAGE_PAGE_LIMIT (it has no "load earlier"
  UI to recover from the cap).
- stashed message parts are now cleared on messageRemoved. Extracted the
  stash-access helpers into a PartStash class so every lifecycle event
  coordinates store + stash cleanup in one place.

Also restores the two-pass markdown rendering intended by PR #7102 — an
upstream merge silently re-added marked-shiki, which made Shiki run
synchronously during parse and froze the main thread for up to 1.3s on
session switches with many code blocks. Code blocks render as plain
<pre><code> first and deferredHighlight() upgrades them after paint.

Regression tests cover all five state risks (fetchMessagePage cursor
fallback, KiloProvider focus reconcile, ghost session on prepend,
sub-agent full load, focus-mode throttle, PartStash leak on
messageRemoved).

* chore(vscode): restore unrelated doc comments in KiloProvider

PR review: the previous fix commit trimmed four unrelated doc comments
(loadMessagesAbort, handleSyncSession JSDoc, "inherit parent directory"
comment, handleDeleteSession JSDoc) to squeeze under the 3350-line
max-lines cap. Restoring them — the cap is hit exactly at 3350 and the
PR surface stays focused on the state-risk fixes.

* chore: update kilo-vscode visual regression baselines

* refactor: simplify pagination helpers without behavior change

- fetchMessagePage: drop the conditional spread for `limit`/`before` — the
  server schema accepts `limit: 0` the same as omitted (`z.coerce.number()
  .int().min(0).optional()`), so always passing the values directly works.
  Inline the `oldest` temp and drop `?? undefined` (`headers.get()` returns
  `null | string` which `??` handles identically downstream).
- handleLoadMessages: inline the single-use `focus` boolean, fold the
  `mode === "replace"` refresh call into the `if (abort)` block since
  they're gated by the same condition.
- sameReconcileShape: destructure `c`/`n` once per iteration instead of
  accessing `current[i]!` / `incoming[i]!` three times each.

All 1815 tests pass, typecheck + lint clean.

* docs: clarify intent of helpers flagged in PR review

- commands.ts: comment explains the in-flight dedup pattern and why the
  identity check in the `finally` guards against clear-then-restart races.
- sessionsForWorktree: comment notes the oldest-first sort is the canonical
  order before applyTabOrder, and why both the worktree label and the tab
  bar must agree on "which session is first".

No behavior change — both helpers already did this; now the intent is on
the page for future readers.

* chore: address PR #8911 review feedback from chrarnoldus

- Rewrite changeset as user-facing imperative summary (per AGENTS.md
  guidance: changesets appear in release notes; keep concise and feature-
  oriented, not implementation details).
- Drop redundant `kilocode_change - new file` marker on
  packages/ui/src/kilocode/markdown-fast-path.ts — the kilocode/ directory
  already signals the file is a Kilo addition; markers aren't needed in
  paths containing "kilocode".

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-17 16:47:45 +02:00
Alex Alecu 671129d4d7 chore: add changeset for agent manager memory leak fix 2026-04-17 17:29:26 +03:00
Joshua Lambert e258fa2bce Merge pull request #9048 from Kilo-Org/fix/publish-smoke-test-gate-main
fix: gate publish on smoke test
2026-04-17 10:26:40 -04:00
Alex Alecu dc1bb79509 Merge remote-tracking branch 'origin/main' into fix/memory-leak-agent-manager
# Conflicts:
#	packages/kilo-vscode/src/agent-manager/worktree-diff-controller.ts
2026-04-17 17:18:48 +03:00
Alex Alecu 77e52748cd fix(vscode): cap diff detail reads at 2MB per side
Addresses PR #9046 review feedback. diffFile() used to read the entire ancestor blob, working copy, and unified patch into memory unconditionally, which could spike the extension host's RSS when opening a very large tracked file. Probes the sizes first via `git cat-file -s` and `fs.stat`, and falls back to a summarized entry (empty before/after/patch, counts preserved) when either side exceeds 2 MB.
2026-04-17 17:09:09 +03:00
Christiaan Arnoldus b098d547f8 Merge branch 'main' into feat/variant-chat-template-args 2026-04-17 15:49:29 +02:00
Christiaan Arnoldus 2e0e663212 Merge pull request #9132 from Kilo-Org/chore/add-dependabot-to-team-list
chore: fix missing team entries that leak 'Thanks' lines into release notes
2026-04-17 15:49:01 +02:00
Alex Alecu d02a658db1 fix(vscode): move Agent Manager git polling into extension host
Runs the diff summary and detail computations in-process using the existing GitOps child_process.spawn path instead of routing through kilo serve over HTTP. This avoids the Bun spawn native-memory leak on Windows (oven-sh/bun#18265) that was driving kilo serve RSS into the multi-GB range within minutes of opening the Agent Manager.
2026-04-17 16:38:27 +03:00
kiloconnect[bot] 96bd75067a fix: suppress 'Thanks' credit for kilo-code-bot app in changelog
@changesets/changelog-github renders GitHub App credits with the app slug (e.g. [@kilo-code-bot](https://github.com/apps/kilo-code-bot)), not the '[bot]'-suffixed commit author login. v7.2.12 leaked a 'Thanks @kilo-code-bot!' line because the team set only contained 'kilo-code-bot[bot]'. Add the bare slug.
2026-04-17 13:35:52 +00:00
Christiaan Arnoldus cbc96a25e8 Merge pull request #9126 from Kilo-Org/docs/update-kilo-auto-models
docs: update kilo-auto model mappings
2026-04-17 15:34:17 +02:00
kiloconnect[bot] 3895139f5c chore: add dependabot[bot] to team list
dependabot[bot] opens PRs regularly; suppress the 'Thanks' line in release notes the same way we do for other team bots.
2026-04-17 13:16:09 +00:00
kiloconnect[bot] 2ba069350d docs(kilo-docs): note that kilo-auto underlying models can change 2026-04-17 12:14:46 +00:00
Marius c8fd421823 fix(vscode): restore sidebar diff viewer parity with Agent Manager (#9121)
* fix(vscode): restore sidebar diff viewer parity with Agent Manager

The sidebar diff viewer bundle was missing agent-manager-review.css, so
FullScreenDiffView rendered with a broken file tree (no flex layout, no
revert styles) since PR #7455. Co-locate the CSS imports with the
component so every consumer gets them automatically, and wire per-file
revert end-to-end via a shared WorktreeDiffClient used by both the
sidebar provider and the Agent Manager controller.

* fix(cli): skip flaky shell-completion test on Windows CI

The 'shell completion resumes queued loop callers' test relies on shell
process spawn timing that is unreliable on Windows CI and times out at
3s. Every other shell-process test in this file already uses the
existing `unix(...)` helper for the same reason — align this test
with that pattern.
2026-04-17 14:12:19 +02:00
Alex Alecu 81173e3e80 fix(vscode): set MIMALLOC_PURGE_DELAY=0 on spawned kilo serve
Workaround for upstream Bun memory leak oven-sh/bun#18265: Bun.spawn
with piped stdio accumulates ~2 MB of native RSS per call on Windows
because mimalloc retains freed pages in its arenas instead of returning
them to the OS. The Agent Manager polls git once per second per
worktree via the CLI, so a few minutes of use reaches multi-GB RSS.

Jarred (Bun) confirmed the workaround in oven-sh/bun#21560: setting
MIMALLOC_PURGE_DELAY=0 forces immediate page return, greatly reducing
the RSS growth.

Applied only to the kilo serve process spawned by the VS Code
extension - no other code changes.
2026-04-17 15:06:02 +03:00
Alex Alecu 830b4ffda7 Merge remote-tracking branch 'origin/main' into fix/memory-leak-agent-manager 2026-04-17 15:04:35 +03:00
Alex Alecu 7267b7dc9b revert: undo all Agent Manager leak-fix attempts
None of the speculative fixes on this branch addressed the root
cause: Agent Manager RSS growth is upstream Bun memory leak
oven-sh/bun#18265 - Bun.spawn with piped stdio retains native
memory in mimalloc arenas on every call. Measured this branch at
~2.1 MB/spawn, flat, identical on Bun.spawn and node:child_process
(the latter is a Bun polyfill over the same machinery). No code
path in our tree is the problem.

Restoring branch tree to the merge-base state so the Bun-blessed
MIMALLOC_PURGE_DELAY=0 workaround can be applied cleanly in a
follow-up commit.

Commits whose effects are undone (kept in history for posterity):
  96ce0cb fix(cli,vscode): fix native memory leak in Agent Manager git polling
  7682f1a fix(review): surface truncated git output to callers
  18d6867 fix(review): drain stderr concurrently to avoid hang
  0965571 fix(cli,vscode): evict idle worktree instances and stream git output
2026-04-17 15:04:29 +03:00
Christiaan Arnoldus 11343c4473 Merge pull request #9067 from Kilo-Org/fix/queued-prompt-reorder
fix(cli): move queued user prompts to end of history
2026-04-17 13:55:38 +02:00
Marian Alexandru Alecu 852b52e846 Merge pull request #9118 from Kilo-Org/kilocode-model-switcher
fix(cli): preserve per-agent model overrides
2026-04-17 14:43:48 +03:00
kiloconnect[bot] 20331784f5 docs(kilo-docs): bump stale claude model IDs to current versions 2026-04-17 11:30:02 +00:00
kiloconnect[bot] b5bc3fe025 docs(kilo-docs): remove legacy kilo/auto alias mentions 2026-04-17 11:26:34 +00:00
MariusandSylwester Liljegren 9749cc178d feat(kilo-ui): enhance MCP tool display with input/output sections and improved styling (#9123)
* feat(kilo-ui): enhance MCP tool display with input/output sections and improved styling

- Add subtitle and args display to MCP tool triggers for better context
- Separate input and output sections with labels and dividers
- Format input and output as JSON with proper syntax highlighting
- Reposition copy button tooltip to prevent clipping in tool output
- Add styling for MCP section labels and tool dividers

* feat(kilo-ui): i18n for MCP input/output labels

* chore: add changeset

---------

Co-authored-by: Sylwester Liljegren <sylwester.liljegren@softronic.se>
2026-04-17 13:24:35 +02:00
Johnny Amancio eb89a1966f chore: Keep scope by project_id to prevent cross-project leakage 2026-04-17 13:20:51 +02:00
kiloconnect[bot] 6231a54a57 docs(kilo-docs): clarify balanced and free routing in auto-model guide 2026-04-17 11:18:43 +00:00