Commit Graph
11907 Commits
Author SHA1 Message Date
Mark IJbema f3494e3f4e refactor(vscode): wire WorkflowsTab and remove inline renderWorkflowsSubtab
Replace the inline renderWorkflowsSubtab function in AgentBehaviourTab
with the extracted WorkflowsTab component from agent-behaviour/.
2026-03-26 11:45:34 +01:00
Mark IJbema 627c5867bf feat(vscode): extract WorkflowsTab into agent-behaviour subdirectory
Create a dedicated agent-behaviour directory within settings components
and add a standalone WorkflowsTab component, preparing for further
extraction of subtab content from the monolithic AgentBehaviourTab.
2026-03-26 11:45:34 +01:00
github-actions[bot] 6b846fb7a5 chore: update kilo-vscode visual regression baselines 2026-03-26 11:45:34 +01:00
Mark IJbema b0b9d00110 test(vscode): add visual regression stories for Workflows subtab
Add two stories for the Workflows subtab in AgentBehaviourTab:
- AgentBehaviourWorkflows: shows commands list with descriptions
- AgentBehaviourWorkflowsEmpty: shows empty state

Also adds a reusable SubtabWrapper helper that clicks into a
specific subtab on mount, similar to EditModeWrapper.
2026-03-26 11:45:34 +01:00
Mark IJbema bc3976a192 fix(vscode): use template field from CLI Command config instead of command
The CLI's Config.Command uses 'template' not 'command' for the
command body. Update CommandConfig type to match and use cmd.template
in the workflows subtab display.
2026-03-26 11:45:34 +01:00
Mark IJbema 47144564b4 feat(vscode): implement Workflows sub-tab in Agent Behaviour settings
Replace the placeholder Workflows sub-tab with a functional view that
lists custom commands from config.command. Each entry shows the
command name (with / prefix), description, and the command template.
Includes a description paragraph explaining how workflows work and
how to invoke them via /command-name in chat.

Shows an empty state when no custom commands are configured.

Closes #7601
2026-03-26 11:45:34 +01:00
Mark IJbema f32986e49e Merge pull request #7676 from Kilo-Org/mark/fix-install-dialog-padding
fix(vscode): add padding to marketplace install dialog
2026-03-26 11:32:27 +01:00
Mark IJbema 33e25aa519 fix(vscode): add padding to marketplace install dialog body
The install modal body and result views had no horizontal or bottom
padding, causing content to sit flush against the dialog edges. Add
padding that matches the dialog header's horizontal spacing (20px).
2026-03-26 11:24:11 +01:00
Mark IJbema c1a5946671 Merge pull request #7674 from Kilo-Org/mark/force-rebuild-cli-on-f5
fix(vscode): force CLI backend rebuild on F5 compile
2026-03-26 11:23:42 +01:00
Mark IJbema c7515eece5 Merge pull request #7642 from Kilo-Org/mark/7599-mcp-detail-expand
feat(vscode): add expandable MCP server detail in settings
2026-03-26 11:21:00 +01:00
Mark IJbema eaf0fe0e32 fix(vscode): force CLI backend rebuild on F5 compile
The compile script (triggered by F5 preLaunchTask) was reusing a cached
CLI binary when the source appeared unchanged. This could miss changes in
dependency packages outside packages/opencode/. Pass --force to
local-bin.ts so the backend is always rebuilt during a full compile.
2026-03-26 11:09:31 +01:00
kilo-maintainer[bot] 18c5fc3f22 release: v7.1.5 2026-03-26 09:56:13 +00:00
kilo-code-bot[bot]andkiloconnect[bot] e4370d4f7f fix(agent-manager): scope model selection to individual sessions instead of global state (#7657)
applyModel() was writing to both the global modelSelections map (keyed by
agent name) and the per-session sessionOverrides map. When switching
between sessions in a worktree, any session without its own override
inherited the last-written global model from another session.

Fix: when a session is active, applyModel() now writes ONLY to the
per-session sessionOverrides map. The global modelSelections map is only
written when no session is active (sidebar mode).

Extract session-model-store.ts with pure functions mirroring the store
operations so the per-session isolation logic is directly testable.

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-03-26 10:45:21 +01:00
Marius 94be163cde fix(vscode): prevent Escape in slash/mention menus from aborting agent (#7669)
Solid.js delegates onKeyDown to document level, so stopPropagation alone
cannot prevent ChatView's document-level Escape handler from firing.
Add defaultPrevented check to the ChatView handler so menus that already
called preventDefault are respected.
2026-03-26 10:20:54 +01:00
Marian Alexandru Alecu 4a2d979395 Merge pull request #7056 from Githubguy132010/fix/block-subagents-spawning-subagents
fix: block subagents from spawning subagents
2026-03-26 11:18:14 +02:00
Mark IJbema 085022d463 Merge pull request #7645 from Kilo-Org/mark/7600-rules-improvements
feat(vscode): improve Rules sub-tab with description and guidance
2026-03-25 22:20:22 +01:00
Marius 409e4afd5e fix: prevent branch dropdowns from closing on first click (#7643)
* tmp

* fix: prevent branch dropdowns from closing on first click

Delay branch selector autofocus until mount and ignore focus-outside dismissal while the popover is still opening inside dialogs.
2026-03-25 21:40:36 +01:00
Mark IJbema fd6a25f387 feat(vscode): improve Rules sub-tab with description paragraph
Add a description paragraph at the top of the Rules sub-tab
explaining what rules are and how they work. The description
is shown above the instruction files list.

File creation and per-rule toggles are deferred since the CLI
does not expose per-instruction-file enable/disable, and file
creation requires a webview-to-extension file creation message.

Closes #7600
2026-03-25 21:37:05 +01:00
Mark IJbema d928eb1187 fix(vscode): use neutral transport label and handle string-based MCP args
Show 'remote' instead of 'SSE' for URL-based servers since the
actual transport may be StreamableHTTP. Handle the legacy
{ command: string, args: string[] } config shape in the expanded
detail view alongside the array-based command format.
2026-03-25 21:22:22 +01:00
Kirill Kalishev 64a9eb837e Merge pull request #7629 from Kilo-Org/kirillk/history
feat(vscode): merge local and cloud history into single tabbed panel
2026-03-25 16:21:56 -04:00
Mark IJbema 54880ed25d feat(vscode): add expandable MCP server detail in settings
Make MCP server rows expandable with a chevron toggle. When expanded,
show config details: command, arguments, URL, environment variables,
and disabled status. The expandable detail replaces the flat command
display with a structured view.

Tools, resources, and logs display requires additional CLI message
infrastructure (follow-up) since the webview does not currently have
access to the per-server tool/resource data from the CLI endpoints.

Closes #7599
2026-03-25 21:14:17 +01:00
Marius d470762f4f fix(vscode): fix continue-in-worktree progress labels and recent session routing (#7639)
* fix(vscode): fix progress label variable, prevent worktree sessions from opening locally

- Fix labels[status] → labels[m.status] in ChatView progress handler
  (progress text was always "Working..." instead of step-specific labels)
- Guard onSelectSession in Agent Manager: when a worktree-scoped session
  appears in the recent list, navigate to its worktree instead of calling
  openLocally() which would strip its directory mapping
- Remove empty captureState test placeholder

* fix(vscode): exit review mode when opening recent worktree session
2026-03-25 16:13:27 -04:00
Scuttle Bot a34bd73759 docs: add Inception to supported BYOK providers list (#7638) 2026-03-25 16:11:28 -04:00
kirillk f7079c8e8d i18n(vscode): translate session.showHistory into all languages 2026-03-25 16:01:46 -04:00
kirillk 6e203aaa18 style(vscode): fix prettier formatting in App.tsx 2026-03-25 15:50:20 -04:00
Kirill Kalishev 37f7797cdd Merge branch 'main' into kirillk/history 2026-03-25 15:47:27 -04:00
Marius b984320ecb Merge pull request #7541 from Kilo-Org/emphasized-meadowlark
feat(vscode): add "Continue in Worktree" button
2026-03-25 20:45:01 +01:00
Marius c64d0e5e9c fix(agent-manager): review comment edit button not triggering re-render (#7637)
Include editing state in annotation metadata so pierre detects the
change and re-renders the annotation in edit mode. Extract duplicated
annotationsForFile logic into shared buildFileAnnotations helper.

Closes #7585
2026-03-25 19:33:33 +00:00
github-actions[bot] 71ca04d8dc chore: update kilo-vscode visual regression baselines 2026-03-25 19:30:15 +00:00
Marius 77436ef3f1 fix(agent-manager): remove fixed max-width on tab labels (#7634)
The .am-tab-label had a hardcoded max-width: 150px that truncated
session titles like "New session - 2026-03-25T..." with ellipsis.
The scrollable tab bar already handles overflow via overflow-x: auto
with fade indicators, so the fixed constraint was unnecessary.
2026-03-25 15:29:32 -04:00
Marius e9696cedbc fix(agent-manager): make Cmd+Shift+M work from VS Code terminal (#7514)
* fix(agent-manager): make Cmd+Shift+M work from VS Code terminal

The Agent Manager keybinding was not firing when a VS Code terminal had
focus because the terminal intercepts all keystrokes by default — only
commands in terminal.integrated.commandsToSkipShell are forwarded to
VS Code's keybinding system, and extension commands are not included.

- Register agentManagerOpen and showTerminal in commandsToSkipShell on
  activation so the terminal forwards those keystrokes to VS Code
- Post focusInput to the webview after revealing the panel so the prompt
  textarea is focused reliably (the window focus event is unreliable
  when switching from a terminal)

* fix(agent-manager): respect workspace-scoped commandsToSkipShell overrides

Use inspect() to find the highest-precedence scope that already defines
commandsToSkipShell and update that scope, instead of always writing to
Global which misses workspace overrides and leaks values.
2026-03-25 15:29:17 -04:00
Marius 350e34ee4e fix(agent-manager): prevent duplicate panels via deserialization and stale dispose (#7537) 2026-03-25 15:28:52 -04:00
marius-kilocode 926c7eac2b feat(vscode): add tests for git-transfer and continue-in-worktree, split into atomic steps
- Split continueInWorktree into 6 exported atomic functions:
  abortSession, captureState, prepareWorktree, transferState,
  forkSession, registerSession — each independently testable
- Add StepResult<T> type for consistent error handling
- Fix git patch capture to preserve trailing newline (was trimmed,
  causing "corrupt patch" on apply)
- Fix stdin piping: use spawn for git apply stdin, execFile for rest
- Add 13 tests for git-transfer (capture, apply, round-trip with real
  git repos — no mocks)
- Add 11 tests for continue-in-worktree step functions
2026-03-25 20:28:00 +01:00
Kirill Kalishev 812825e85e Merge branch 'main' into kirillk/history 2026-03-25 15:20:28 -04:00
kirillk 9ec9a41fd3 fix(vscode): apply session list item layout to cloud session list
Extend the title/description flex layout rules from .session-list to
.cloud-session-list so narrow widths truncate the title with ellipsis
instead of wrapping the text onto multiple lines.
2026-03-25 15:18:39 -04:00
marius-kilocode 17679f468d fix(vscode): address review — show error toast, restrict button to sidebar/AM local, windowsHide
- Show toast on transfer failure instead of silently resetting
- Use explicit continueInWorktree prop (default false) so open-in-tab
  panels and other KiloProvider instances do not show the button
- Pass continueInWorktree from sidebar App.tsx and AgentManagerApp.tsx
- Add windowsHide:true to git-transfer.ts execFile calls
2026-03-25 20:18:23 +01:00
marius-kilocode 31c45911e2 fix(vscode): make buttons fill their flex space within tooltip wrappers 2026-03-25 20:18:23 +01:00
marius-kilocode 811238b3d1 fix(vscode): make session action buttons fill space dynamically
Buttons use flex:1 via > * selector so they grow to fill available
space. When the diff badge is hidden (no changes), remaining buttons
expand to fill the row. Diff badge wrapper uses flex:0 + margin-left:auto
to stay right-aligned at its natural width.
2026-03-25 20:18:23 +01:00
marius-kilocode 7b088dd01e fix(vscode): shorten tooltips, hide diff badge when no changes 2026-03-25 20:18:22 +01:00
marius-kilocode 6c3cd38a6c fix(vscode): add tooltips to session action buttons 2026-03-25 20:18:22 +01:00
marius-kilocode 6867b49194 fix(vscode): move diff badge to the right end of the action row 2026-03-25 20:18:22 +01:00
marius-kilocode 4dc55f6e59 fix(vscode): replace Show Changes with diff stats badge, shorten Worktree label
Replace the "Show Changes" text button with a compact diff stats badge
showing file count, additions, and deletions (3f +42 -8) using data
from session.summary(). Shorten "Continue in Worktree" to "Worktree".
All three buttons share one row.
2026-03-25 20:18:22 +01:00
marius-kilocode 0d98455b25 fix(vscode): put all session action buttons in one row
Move New Task into the same flex row as Show Changes and Continue in
Worktree. All three sit side by side as equal-width buttons, wrapping
only when the sidebar is too narrow.
2026-03-25 20:18:22 +01:00
marius-kilocode 12e33433a4 fix(vscode): fix session action buttons to share one row
Remove data-full-width from buttons inside the flex row (it forced
width:100% overriding flex). Use flex:1 with min-width:fit-content
so they share the row and only wrap when genuinely too narrow.
2026-03-25 20:18:21 +01:00
marius-kilocode dd5d966046 fix(vscode): put Show Changes and Continue in Worktree on same row with flex-wrap 2026-03-25 20:18:21 +01:00
marius-kilocode 829395b1a5 fix(vscode): address review — wire AM handler, fail on transfer error, hide button in worktree sessions
- Handle continueInWorktree in AgentManagerProvider.onMessage so the
  button works from local Agent Manager sessions
- Add ContinueInWorktreeIn to AgentManagerInMessage union
- Stop and report error when git state transfer fails instead of
  silently continuing with an empty worktree
- Use explicit continueInWorktree prop on ChatView so the button only
  shows in sidebar and Agent Manager local sessions, not worktree tabs
2026-03-25 20:18:21 +01:00
marius-kilocode f5f4685cf1 feat(vscode): add "Continue in Worktree" to transfer sessions from sidebar/local to isolated worktrees
Adds a button (sidebar + Agent Manager local sessions) that captures
git state as patches, creates a worktree, applies changes, and forks
the session — all without modifying the source working tree.
2026-03-25 20:17:20 +01:00
ef62c1b914 feat(vscode): add open locally action for unassigned sessions (#7627)
* feat(agent-manager): add open locally action for unassigned sessions

Fix onSelectSession bug where clicking a recent session left the pending
tab active, causing clearCurrentSession() to destroy the loaded session on
next click. Now properly replaces pending tab, clears activePendingId, and
switches to LOCAL context.

Add agentManager.openLocally message that clears the session's worktree
directory override so it falls back to workspace root. Exposed as a
context menu item on unassigned sessions and a secondary button in the
read-only banner.

* fix(vscode): remove unsafe openLocally from onSelectSession

onSelectSession fires for any recent session including worktree sessions.
Sending openLocally would strip the directory override from sessions that
still belong to a worktree. Directory clearing is only appropriate on
explicit open-locally actions (context menu + read-only banner).

* refactor(agent-manager): extract openLocally helper to fix inconsistent state management

---------

Co-authored-by: andrway <andrway@example.com>
Co-authored-by: marius-kilocode <marius@kilocode.ai>
2026-03-25 18:49:29 +00:00
Kirill Kalishev cba377a581 Merge branch 'main' into kirillk/history 2026-03-25 14:47:13 -04:00
kirillk faef4dd7bc fix(vscode): route CloudImportDialog through selectCloudSession 2026-03-25 14:19:57 -04:00