Commit Graph
3430 Commits
Author SHA1 Message Date
Kevin van Dijk 3dc3af6a7d Re-add kilocode changes to refactored thread file 2026-03-12 13:14:05 +01:00
Kevin van Dijk b83c848909 Resolve merge conflicts 2026-03-12 12:42:48 +01:00
Kevin van Dijk e6d04c204b refactor: kilo compat for v1.2.17 2026-03-12 12:19:04 +01:00
Marius 2bca0ac9f1 feat(agent-manager): lazy-load worktree diff details (#6945)
* feat(agent-manager): lazy-load worktree diff details

* fix(agent-manager): remove unused diff helper

* fix(agent-manager): preserve summary diff accuracy

* fix(agent-manager): avoid stale diff summary targets

* perf(agent-manager): avoid rescanning diff details
2026-03-12 11:43:38 +01:00
Kevin van DijkandCatriel Müller d4518c39ff Update packages/opencode/src/provider/error.ts
Co-authored-by: Catriel Müller <catrielmuller@gmail.com>
2026-03-11 09:58:07 +01:00
Kevin van Dijk d50aa1ae8c Merge branch 'main' into kevinvandijk/kilo-opencode-v1.2.16 2026-03-11 09:17:41 +01:00
Evan Jacobson 67c375ce43 fix: wait for stdio streams to drain before flushing decoders in bash tool
Change proc.once('exit') to proc.once('close') so all stdout/stderr
data events are delivered before StringDecoder.end() is called. The
'exit' event fires when the process exits but before stdio streams
finish draining, which could cause the decoder flush to miss trailing
chunks and corrupt the last multi-byte character.
2026-03-10 12:47:10 -06:00
Evan Jacobson 90fbe52841 fix: flush StringDecoder at EOF to surface trailing buffered bytes
decoder.write() can hold incomplete multi-byte sequences internally.
Without calling decoder.end() after streams close, those trailing bytes
are silently dropped. Flush all decoders after process exit so any
remaining bytes are emitted as replacement characters rather than lost.
2026-03-10 12:31:11 -06:00
Evan Jacobson b13bfe3889 fix: use separate StringDecoder per stream to prevent cross-pipe corruption
Address review feedback: a shared StringDecoder across stdout and stderr
can mix partial UTF-8 bytes between streams. Use one decoder per pipe so
incomplete sequences on stdout are never completed by stderr bytes.
2026-03-10 11:48:04 -06:00
Evan Jacobson 2596acaf3e fix: use StringDecoder for UTF-8 multi-byte stream decoding
Replace chunk.toString() with StringDecoder in stream processing to
prevent garbled characters (arrows, tree-drawing chars appearing as
mojibake) when multi-byte UTF-8 sequences are split across chunk
boundaries. StringDecoder maintains state across chunks to correctly
reassemble incomplete characters.

Fixed in bash tool, prompt shell execution, and ripgrep output.
2026-03-10 11:34:40 -06:00
Marius cae63f8396 fix: add windowsHide to all spawn calls to prevent CMD window flash on Windows (#6813)
Every child_process.spawn() call was missing windowsHide: true, causing
a visible CMD console window to briefly appear on every shell command,
LSP server start, ripgrep search, clipboard operation, and process kill
on Windows. This option is a no-op on non-Windows platforms.
2026-03-10 16:59:49 +01:00
Evgeny Shurakov 4b1748aa50 feat: add --cloud-fork CLI option to import cloud sessions locally
Add --cloud-fork flag to run, attach, and thread commands that imports
a cloud session to local storage before continuing. Extract shared
validateCloudFork helper to reduce duplication. Use graceful exit
patterns in attach.ts and thread.ts to ensure proper cleanup.
2026-03-10 11:42:49 +01:00
Catriel Müller d5de298cb8 fix: permission config string to object update 2026-03-10 00:32:50 -03:00
Josh Holmer 73c0d924ed fix(cli): save and load per-agent model selection 2026-03-09 11:51:46 -04:00
Catriel Müller 3b535cf5aa feat: migrate .opencode project folder to .kilo 2026-03-09 11:19:57 -03:00
Kevin van Dijk 69a6cf6507 Update path for plans 2026-03-09 13:24:16 +01:00
Kevin van Dijk 312733ebd6 Resolve merge conflicts 2026-03-09 13:02:22 +01:00
Kevin van Dijk 2d33025ecb refactor: kilo compat for v1.2.16 2026-03-09 11:31:51 +01:00
Igor Šćekić d97714b11a fix: use separate taskID for title generation to prevent model leak (#6552)
ensureTitle was sending small-model requests with the same HEADER_TASKID
as the agent session. The gateway saw two different models (kilo-auto/small
and kilo-auto/frontier) under the same task and routed to both. Prefixing
the title sessionID with "title-" isolates it from the agent task.
2026-03-07 00:51:47 +01:00
Christiaan Arnoldus 1dd79b33f3 Merge branch 'main' into fix/acp-kilo-default-model 2026-03-06 23:05:12 +01:00
Imanol Maiztegui fb4becc4c6 Merge branch 'main' into feat/auth-messages 2026-03-06 22:08:57 +01:00
Imanol Maiztegui ad48d8aefb fix: Adjusted copy on connect message 2026-03-06 22:04:58 +01:00
Snow-in-Dublin 95362990ac fix(acp): avoid parsing provider-less kilo default models 2026-03-07 04:59:42 +08:00
Imanol Maiztegui 6b38e8a423 fix: Added toast for Kilo errors 2026-03-06 21:54:11 +01:00
Imanol Maiztegui 2d5f8a256c fix: Moved kilocode specific code to kilocode folder 2026-03-06 21:15:18 +01:00
Imanol Maiztegui ec0e0bf5ed feat: Better messages for auth required errors 2026-03-06 20:29:54 +01:00
Catriel Müller 1e5ed35be8 fix(vscode): prevent extension hang on server shutdown
- Reduce SSE heartbeat timeout from 90s to 15s to detect dead connections faster
- Add independent health poll every 10s as a second detection channel
- Kill entire process group (SIGTERM + SIGKILL fallback) instead of just the child process
- Add orphan detection in serve.ts so the server exits when the extension host dies
- Race Instance.disposeAll() against a 5s timeout to prevent hung MCP subprocesses blocking shutdown
2026-03-06 16:26:02 -03:00
Christiaan Arnoldus 251161f318 Rename auto-small to kilo-auto/small 2026-03-06 16:12:25 +01:00
Marian Alexandru Alecu e33e18a9f6 Merge pull request #6699 from Kilo-Org/fix/plan_exit_regression
fix(plan): restore unconditional plan_exit tool registration
2026-03-06 15:36:31 +02:00
Imanol Maiztegui b7d978b6f0 Merge pull request #6676 from Kilo-Org/fix/migration-dispose-change
Fix - Migration dispose change
2026-03-06 14:25:35 +01:00
Marian Alexandru Alecu f8f1dd3739 Merge branch 'main' into fix/plan_exit_regression 2026-03-06 15:15:30 +02:00
Alex Alecu 4dc0ed0ff0 fix(batch): disallow plan_exit from batch tool execution
BatchTool rebuilds its tool map from ToolRegistry.tools() without
passing the caller agent, so agent-level permission filtering is
bypassed. Add plan_exit to the DISALLOWED set to prevent non-plan
agents from triggering it via batch.
2026-03-06 14:51:16 +02:00
Alex Alecu 4129abac9f fix(plan): restore unconditional plan_exit tool registration
A merge conflict resolution incorrectly gated PlanExitTool behind
KILO_EXPERIMENTAL_PLAN_MODE && KILO_CLIENT === "cli", preventing the
plan agent from signaling completion. This broke the "looks good,
implement" flow — the follow-up prompt never appeared and no new
code-mode session was created.

Regression of #6240.
2026-03-06 14:38:47 +02:00
Igor Šćekić 3754d01b36 chore: add kilocode_change markers to config.ts null sentinel changes 2026-03-06 13:32:08 +01:00
Igor Šćekić 927f75e540 feat: add model per mode settings (#6211)
Add a "Model per Mode" section in Provider settings where users can set
a default model for each primary agent (code, plan, debug, orchestrator,
ask). The per-mode model is used automatically when starting new sessions
in that mode, with the precedence: session override > per-mode config >
global default model.

Also fixes the "unset" bug where clearing a model default didn't persist
because undefined values were stripped during JSON serialization. Now
uses null as a delete sentinel throughout the config pipeline.
2026-03-05 18:35:09 +01:00
Imanol Maiztegui d4f7a68925 fix: Removed dependencies 2026-03-05 16:32:32 +01:00
Imanol Maiztegui ea3cffb4aa fix: Remove disposeAll() on auth 2026-03-05 16:31:11 +01:00
Imanol Maiztegui 35968ed556 Merge branch 'main' into fix/auth-reload-state 2026-03-05 13:31:48 +01:00
Imanol Maiztegui c3ed9466a2 fix: invalidate model cache on auth/org changes and reload state after dispose 2026-03-05 12:23:25 +01:00
kiloconnect[bot] 55928ab3c1 fix: remove duplicate reasoning hack for kilo provider
The fixDuplicateReasoning workaround was added to handle a bug in
@openrouter/ai-sdk-provider v1 that caused reasoning details to be
duplicated in messages. This was fixed upstream in
https://github.com/OpenRouterTeam/ai-sdk-provider/pull/344/ and the
fix has since been applied to @kilocode/kilo-gateway, making this
workaround no longer necessary.
2026-03-05 07:20:41 +00:00
Mark IJbema cfe12b8d26 Merge pull request #6607 from Kilo-Org/disable-web-command
Disable 'kilo web' command (unsupported opencode web UI)
2026-03-04 16:22:04 +01:00
Sebastian 18cad10647 show scrollbar by default (#15282) 2026-03-04 15:10:27 +01:00
3218691c29 Add colorblind-friendly theme to the cli (again) (#6493)
* feat: add colorblind-friendly theme

Add a new colorblind-accessible theme using a scientifically-designed
palette that works for deuteranopia, protanopia, and tritanopia:

- Primary Blue (#0077BB) for main UI elements
- Secondary Orange (#EE7733) for variables and operators
- Success Teal (#009988) instead of green for success states
- Warning Yellow (#CCBB44) for warnings
- Error Vermillion (#CC3311) instead of red for errors
- Accent Sky (#33BBEE) for functions and links

Key design principles:
- No red/green combinations (most common color blindness)
- Blue/orange as primary contrasting colors
- Teal/vermillion for diff colors instead of green/red
- High luminance contrast between adjacent colors

* Update packages/opencode/src/cli/cmd/tui/context/theme.tsx

Co-authored-by: Marius <marius@kilocode.ai>

* Update packages/opencode/src/cli/cmd/tui/context/theme.tsx

Co-authored-by: Marius <marius@kilocode.ai>

* Update packages/opencode/src/cli/cmd/tui/context/theme/colorblind.json

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

* Update packages/opencode/src/cli/cmd/tui/context/theme/colorblind.json

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

* fix malformed block

---------

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Marius <marius@kilocode.ai>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
2026-03-04 12:47:50 +00:00
kiloconnect[bot] 272fab73ec disable 'kilo web' command (unsupported opencode web UI) 2026-03-04 12:12:05 +00:00
Mark IJbema ee8daf6907 Merge pull request #6599 from Kilo-Org/mark/remove-kilocode-change-markers
Remove kilocode_change markers from kilo-specific packages
2026-03-04 11:55:29 +01:00
Mark IJbema e97348d7aa Remove kilocode_change markers from kilo-specific packages
These markers are only needed in shared upstream opencode files to prevent
merge conflicts. In kilo-specific packages (kilocode/, kilo-gateway/,
kilo-ui/, kilo-i18n/, kilo-vscode/, etc.) they serve no purpose.
2026-03-04 11:39:53 +01:00
Christiaan Arnoldus 8f09867735 Merge pull request #6562 from Kilo-Org/session/agent_913b361f-ab8a-4292-9ade-d695ef8815f4
fix(opencode-provider): switch kilo default model to auto-small
2026-03-04 10:18:58 +01:00
Christiaan Arnoldus 55076dc19e Merge branch 'main' into session/agent_913b361f-ab8a-4292-9ade-d695ef8815f4 2026-03-04 10:11:05 +01:00
Christiaan Arnoldus aec01330ea Merge branch 'main' into session/agent_f767ec1f-7980-4b5e-b27d-74befa652e5e 2026-03-04 10:06:21 +01:00
Dax 3ebebe0a96 fix(process): prevent orphaned opencode subprocesses on shutdown (#15924) 2026-03-03 22:14:28 -05:00