Commit Graph
16928 Commits
Author SHA1 Message Date
Josh Lambert ebad9c052d docs(kilo-docs): reorganize MCP examples 2026-04-15 22:14:26 -04:00
Josh Lambert ece48dcf20 fix(kilo-docs): document MCP permission rules 2026-04-15 18:22:16 -04:00
Josh Lambert be550c3bb9 docs(kilo-docs): remove outdated video and reorder MCP tabs
Remove the outdated YouTube video from the Using MCP in Kilo Code page.

Ensure 'VSCode (Legacy)' is always the last tab option in every section for consistency.
2026-04-15 14:18:00 -04:00
Marius 2f9467ee3e fix(cli): mock getGitContext in commit-message tests to fix Linux CI flake (#8989)
Tests relied on real git operations in temp directories which failed
silently on Linux CI runners, causing all 12 tests to see no staged files.
2026-04-15 15:34:39 +00:00
Mark IJbema 32c05387fe Merge pull request #8988 from Kilo-Org/fix/suggest-dismiss-on-new-message
fix(cli): dismiss suggestions on new message to prevent stuck session
2026-04-15 17:26:51 +02:00
Marian Alexandru Alecu e030824473 Merge branch 'main' into fix/suggest-dismiss-on-new-message 2026-04-15 18:10:42 +03:00
Alex Alecu 3b96485dc1 fix(cli): dismiss suggestions on new message to prevent stuck session 2026-04-15 17:47:25 +03:00
Marius ccf1ad245e chore(sdk): regenerate api client (#8980) 2026-04-15 16:14:34 +02:00
Marius c584eec1db fix(cli): remap child session references on fork to prevent subagent state leaks (#8956)
* fix(cli): remap child session references on fork to prevent subagent state leaks

When forking a session, task tool parts referencing child sessions were
copied verbatim, causing both original and forked sessions to share the
same subagent references. This led to SSE events and permission prompts
leaking across sessions in the Agent Manager.

* fix: remove redundant recursive remapChildren call

Session.fork() already calls remapChildren via the hook, so the explicit
recursive call inside remapChildren was double-forking nested descendants.
2026-04-15 11:12:35 -03:00
Marius 581bbbb319 feat(cli,vscode): add custom commit message prompt setting (#8974)
* feat(cli,vscode): add custom commit message prompt setting

Support user-configurable system prompt for AI commit message generation.
Adds a dedicated Commit Message tab in VS Code settings with a toggle
to override the built-in conventional commits prompt.

* fix: add missing kilocode_change annotation and fix i18n formatting

* refactor: move Config reading to route handler, add textarea max-height

Move kilo-specific Config.get() from shared generate.ts to the route
handler. The generator now accepts an optional prompt param instead.
Cap textarea height at 300px with scroll for long prompts.

* fix: resolve annotation gaps and prompt clear serialization bug

Add kilocode_change markers to JSDoc comment and extend block to
cover the generateCommitMessage call. Use empty string instead of
undefined when clearing the prompt so JSON serialization persists
the removal to disk.

* refactor(cli): move commit-message module to kilocode paths

Move src/commit-message/ to src/kilocode/commit-message/, route to
src/kilocode/server/routes/, and tests to test/kilocode/commit-message/.
Extract CommitMessageSchema to KilocodeConfig and reference it from
the main Config.Info. Removes all kilocode_change markers from moved
files since they are now in exempt paths.

* test(cli): fix moved commit-message tests
2026-04-15 16:09:05 +02:00
Marian Alexandru Alecu e8fd495708 Merge pull request #8972 from Kilo-Org/kilocode-auto-approve-permissions
fix(cli): fix disable auto-approve leaving stale config and UI
2026-04-15 16:49:39 +03:00
Marian Alexandru Alecu 6b77077167 Merge pull request #8971 from Kilo-Org/kilocode-worktree-session-list
fix(cli): worktree session list shows all worktrees
2026-04-15 16:47:18 +03:00
Marius d3c6415df5 docs(kilo-docs): document drag-and-drop file mentions in context docs (#8981) 2026-04-15 13:31:48 +00:00
Marian Alexandru Alecu 5f7954c43f Merge pull request #6404 from Kilo-Org/feat/suggest-code-review
feat: Suggest code review after implementation
2026-04-15 15:30:29 +03:00
Alex Alecu 6c7b02619d chore: remove plan file 2026-04-15 15:12:26 +03:00
Alex Alecu 723344530b refactor(cli): move test to kilocode dir 2026-04-15 15:10:42 +03:00
Alex Alecu 5062339220 docs(cli): clarify stripNulls jsdoc 2026-04-15 15:09:33 +03:00
Alex Alecu 3fd8357af4 fix(cli): propagate suggestion accept failure to remote clients 2026-04-15 14:59:09 +03:00
Alex Alecu ef435ebba1 fix(cli): restrict suggest tool to code-review-only
Narrow suggest tool prompts so the LLM only uses it to offer local
code review, not generic next steps like committing, pushing, or
running tests.
2026-04-15 14:53:36 +03:00
Alex Alecu 061e1d30a0 fix(vscode): remove kilocode_change marker from WorkingIndicator 2026-04-15 14:50:06 +03:00
Alex Alecu e937894829 fix(cli): fix type errors from accept return type 2026-04-15 14:42:13 +03:00
Alex Alecu 8e0b9f9b51 fix(vscode): move suggestion fetch into flushPendingPrompts 2026-04-15 14:39:10 +03:00
Alex Alecu c61846b618 fix(cli): return 404 when suggestion accept no-ops 2026-04-15 14:35:21 +03:00
Alex Alecu 61c0105565 fix(cli): reject promise on invalid action index 2026-04-15 14:35:21 +03:00
Alex Alecu 1b5832ce3f fix(cli): limit concurrent git processes for untracked files 2026-04-15 14:35:21 +03:00
Alex Alecu 3d74441b7e fix(cli): delete only nested sentinel to preserve other wildcard rules 2026-04-15 14:31:39 +03:00
github-actions[bot] 152e0755aa chore: update kilo-vscode visual regression baselines 2026-04-15 11:30:23 +00:00
Alex Alecu cec7296671 fix(vscode): hide WorkingIndicator when suggestion is pending
Add suggestions to the blocked() check in WorkingIndicator so the
'Considering next steps' spinner and timer don't show while the suggest
tool is awaiting user input.
2026-04-15 14:28:05 +03:00
Alex Alecu 02b511e8e0 fix(vscode): make SuggestBar full-width and unblock prompt input
Remove border, border-radius, and margins from SuggestBar so it takes
full container width. Add suggesting prop to PromptInput so the prompt
treats the session as idle when only a suggestion is pending, allowing
the user to type and send without dismissing first.
2026-04-15 14:28:05 +03:00
Alex Alecu 624be2310d fix(cli): fix disable auto-approve leaving stale config and UI 2026-04-15 14:09:24 +03:00
Marius 9dd1f631b4 revert: restore patch fields for diff compatibility (#8970)
Reverts #8967 and #8953. OpenCode is migrating to use patch strings as
the primary diff transport — dropping them breaks forward compatibility
with upstream's SessionReview rendering pipeline, which falls back to
patch when before/after are absent.
2026-04-15 13:05:44 +02:00
Alex Alecu 74288ef0c2 fix(cli): worktree session list ignoring SDK-injected directory filter
The SDK rewrite interceptor injects directory=<cwd> into every GET request.
The experimental session list endpoint was passing this to listGlobal even
when worktrees=true, restricting results to only the current directory.
Skip the directory filter when worktrees is active so all worktree sessions
are returned. Add regression test that includes directory in query params.
2026-04-15 13:54:49 +03:00
Marius bd4d85229e perf(vscode): exclude patch from diff hash to reduce memory overhead (#8967)
* perf(vscode): exclude patch from diff hash to reduce memory overhead

The hashFileDiffs function included diff.patch in its hash key, pulling
in multi-MB payloads generated by opencode's context: MAX_SAFE_INTEGER
setting. The extension never renders the patch string — VS Code's native
diff editor uses before/after file contents instead — so the field was
pure overhead.

Closes #8951

* chore(kilo-docs): update source links
2026-04-15 12:46:09 +02:00
github-actions[bot] 08b466310a chore: update kilo-vscode visual regression baselines 2026-04-15 10:45:26 +00:00
Alex Alecu f1e5b7cade feat(vscode): render SuggestBar inline in conversation flow
Move SuggestBar from the fixed bottom dock into the scrollable
conversation, matching the QuestionDock inline approach. Tool-linked
suggestions render at their tool part position in AssistantMessage;
standalone suggestions render at the bottom of MessageList. Extract
shared matchToolRequest helper to deduplicate tool-part matching.
2026-04-15 13:42:59 +03:00
Marius 84a6284424 docs(kilo-docs): document run script feature in Agent Manager (#8962)
* docs(kilo-docs): document run script feature in Agent Manager page

* docs(kilo-docs): clarify platform-specific run script filenames
2026-04-15 12:38:24 +02:00
Marius 9544846fc0 fix(agent-manager): route plan follow-up sessions to worktree instead of LOCAL (#8966)
When clicking "Start new session" from a plan follow-up in a worktree,
the new session was always placed in the LOCAL tab because the Agent Manager
state was never notified about the adoption. Add an onFollowupAdopted
callback so the Agent Manager can register the session in the correct
worktree before the webview receives sessionCreated.

Fixes #8957
2026-04-15 12:37:55 +02:00
Marius a705f4dfef feat(agent-manager): support drag-and-drop of diff file headers into chat as @mentions (#8961)
Add draggable file headers in DiffPanel and FullScreenDiffView so users
can drag a changed file into the chat input to reference it with @.
2026-04-15 12:37:35 +02:00
Marius 33c8cd53ff fix(agent-manager): preserve scroll position when agent edits files in diff viewer (#8965)
* fix(agent-manager): preserve scroll position when agent edits files in diff viewer

Prevent the diff viewer from resetting scroll when the agent modifies files
in a worktree session. The root cause was twofold: mergeWorktreeDiffs created
new object references for every item on each poll, causing Solid's <For> to
re-render all <Diff> components (full Pierre DOM teardown); and the summarized
toggle caused unmount/remount cycles that collapsed container heights.

Now mergeWorktreeDiffs preserves referential identity for unchanged items and
keeps the existing reference for stale files (metadata changed but cached
content preserved), while immediately re-requesting fresh content in the
background. The <Diff> component also pins min-height during re-renders to
prevent layout shifts from Pierre's innerHTML teardown.

* test(agent-manager): update diff-state tests for MergeResult return type
2026-04-15 12:37:20 +02:00
Christiaan Arnoldus 8093dbd59b Merge pull request #8507 from Kilo-Org/session/agent_9864f1dc-ca7c-4243-877b-14d089b66f92
feat(vscode): add reasoning variant config UI for custom providers
2026-04-15 12:31:09 +02:00
Marius 1ec4a0db0c fix(vscode): prune messageSessionIdsByMessageId entries on session delete (#8964)
The messageSessionIdsByMessageId Map in KiloConnectionService grew
unbounded — entries were added for every message but never removed until
extension deactivation. Add pruneSession() to remove stale entries when
a session is deleted.

Closes #8950
2026-04-15 12:06:15 +02:00
Christiaan Arnoldus cada8a95bc Fix typecheck 2026-04-15 11:55:17 +02:00
Christiaan Arnoldus ee66ba1984 Merge branch 'main' into session/agent_9864f1dc-ca7c-4243-877b-14d089b66f92 2026-04-15 11:49:58 +02:00
Christiaan Arnoldus e01716a2d8 Pick variants from the model 2026-04-15 11:48:57 +02:00
Marian Alexandru Alecu 9df0dbea22 Merge branch 'main' into feat/suggest-code-review 2026-04-15 12:48:31 +03:00
Marius fb6beddffc fix(agent-manager): preserve worktree sessions when backend listing fails (#8902)
When the CLI backend is temporarily unhealthy, session.list() for worktree
directories throws and the catch returns []. The webview reconciliation then
deletes those sessions from the store, making them disappear. Track failed
directories and pass preserveSessionIds so the webview skips deletion for
sessions whose absence is transient.

Closes #7466
2026-04-15 11:07:58 +02:00
Alex Alecu ee12fb5283 fix(cli): skip output truncation for suggest tool to fix test failures 2026-04-15 12:07:12 +03:00
Marius 0679fdfcd8 perf(agent-manager): skip git stats polling for worktrees in collapsed sections (#8903)
Sync GitStatsPoller skip set with collapsed section state via pushState(),
saving 1 aheadBehind subprocess + 1 diffSummary HTTP call per hidden
worktree per poll cycle.

Closes #8900
2026-04-15 10:59:55 +02:00
Marius b9ecdb16a6 fix(ui): use LTR isolate instead of LTR embedding for directory paths in diff headers (#8959)
The trailing / in directory paths was visually disappearing in diff
viewer headers because CSS direction:rtl interacted poorly with the
weaker LRE/PDF bidi embedding characters (\u202A/\u202C). Replace with
LRI/PDI isolate characters (\u2066/\u2069) which fully prevent the
surrounding RTL context from reordering boundary characters like /.
2026-04-15 08:58:38 +00:00
Alex Alecu 87eeb068b7 fix(vscode): filter non-blocking questions in blocked() check
The TUI correctly distinguishes blocking vs non-blocking questions
via q.blocking !== false, but VS Code treated all questions as
blocking. Align the VS Code behavior with the TUI.
2026-04-15 11:57:19 +03:00