Add translated tooltip explaining the feature purpose across all 16 locales.
Replace bare icon-only pill with a labeled button and dashed border to make
the Compare Models entry point visually distinct from version count pills.
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
* feat(vscode): implement client-side slash commands (/new, /sessions, /models, etc.)
Extend the VS Code extension's slash command system to support client-side
commands that execute locally in the webview without backend round-trips.
Client commands (/new, /sessions, /models, /agents, /help, /profile,
/settings) appear first in the autocomplete dropdown with an 'Actions'
group label, separated from server-side 'Commands' by a visual divider.
Commands work even when disconnected from the CLI backend since they
trigger local UI actions (navigation, picker opens) via window events.
Closes#7294
* fix: prioritize exact name matches over hint/alias matches in slash command lookup
Resolves review feedback: if a server command shares a name with a client
alias (e.g. server /continue vs client /sessions alias 'continue'), the
exact name match now wins. Also removed misleading 'works when disconnected'
comment since the textarea is disabled while disconnected.
* fix: keep textarea interactive when disconnected so client commands are reachable
Replace disabled={isDisabled()} with a CSS class + aria-disabled so the
textarea remains interactive during disconnects. The send guards already
independently block server messages/commands when not connected, and
client-side slash commands (/new, /help, /settings, etc.) now genuinely
work before the backend is ready.
* fix(vscode): address review feedback — settings in tab, hide /sessions in agent manager, add /modes alias, /compact, remove /profile
- /settings now opens in an editor tab via openSettingsPanel message
instead of navigating inline in the sidebar
- /sessions is excluded in the agent manager (worktree) context
- /agents gains /modes alias for legacy extension users
- /compact dispatches compactSession event to summarize the session
- /profile removed per reviewer request
- Added OpenSettingsPanelRequest message type and KiloProvider handler
* Update packages/kilo-vscode/webview-ui/src/hooks/useSlashCommand.ts
Co-authored-by: Marius <marius@kilocode.ai>
* Update packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx
Co-authored-by: Marius <marius@kilocode.ai>
* fix(vscode): guard /compact against empty/busy sessions and missing model
Add the same availability checks as the compact button in TaskHeader:
skip if session is busy, has no messages, or has no model selected.
Prevents silent no-ops or errors after the user's input is cleared.
---------
Co-authored-by: Marius <marius@kilocode.ai>
The VS Code theme card styling for tool output set overflow: hidden on all
[data-component="tool-output"] elements, which overrode the upstream
scrollable behavior (overflow-y: auto) from message-part.css. This caused
MCP tool output to be clipped with no way to scroll.
Add a nested &[data-scrollable] rule that restores overflow-y: auto when the
data-scrollable attribute is present, consistent with native tool behavior.
Fixes#7284
The extension had zero high contrast theme support — --vscode-contrastBorder
was never referenced anywhere. In HC themes, interactive elements (buttons,
inputs, tabs, list items, panels) were indistinguishable from backgrounds.
- Add --border-contrast and --border-contrast-active to vscode-bridge.css
- Add body.vscode-high-contrast/body.vscode-high-contrast-light sections
to chat.css, agent-manager.css, marketplace.css, and migration.css with
border rules for all interactive elements
- Add --vscode-contrastBorder/contrastActiveBorder to storybook HC theme
definitions (hc-black, hc-light)
- Update theme-decorator.tsx to set VS Code body classes (vscode-dark,
vscode-light, vscode-high-contrast, vscode-high-contrast-light)
- Add HC Light option to extension storybook preview
Config.updateGlobal() only resets the global config lazy cache but leaves
the per-instance merged Config.state stale. This caused config.get() to
return old values immediately after a write, making the configUpdated
message overwrite the webview's correct optimistic state.
Fix by calling global.dispose() after the config write to force Instance
disposal, so the subsequent config.get() re-merges all layers with the
fresh global config.
Also: replace configUpdateInProgress boolean with a ref-counted pending
counter to handle overlapping writes, and send configUpdated on the error
path so the webview's pendingUpdates counter always decrements.
- Remove Google Cloud Console verification step from Setup section
- Add Gmail forwarding as a second option alongside delegation
- Rewrite example prompts to address KiloClaw directly (you/your)
instead of referencing 'the KiloClaw account' in third person
Reframe examples, prompts, and usage scenarios around KiloClaw's
own dedicated Google account rather than implying access to the user's
personal account. Add a sharing/delegation table showing how users
grant KiloClaw access to their personal data, and update example
prompts throughout to reference the dedicated account.
* feat(vscode): add slash command support to chat input
Add autocomplete dropdown for slash commands (like /compact, /init,
/local-review) triggered by typing / at the start of the input.
Commands are fetched from the CLI backend and matched on submit
to route through session.command() instead of session.prompt().
Closes#6949
* fix(vscode): address review feedback for slash commands
- Forward attached files in sendCommand handler (parse message.files
with zod and pass as parts to session.command)
- Refresh command list after skill removal (call fetchAndSendCommands
alongside fetchAndSendSkills in removeSkillViaCli)
- Fix multiline slash command regex (use \S+ instead of [^ ]+ so
newlines don't become part of the command name)
- Handle cloud-session previews in sendCommand (fall back to
sendMessage which routes through importAndSend)
* fix(vscode): include review comments in slash command args and remove redundant cast
- Incorporate pending review comments into slash command arguments
so they are not silently discarded when sending e.g. /init with
code review annotations pending
- Remove unnecessary type assertion in useSlashCommand; the
discriminated union is already narrowed by the type guard
* fix(vscode): address remaining review feedback for slash commands
- Include files in sendMessageFailed responses from handleSendCommand
- Route cloud preview slash commands through session.command() after import
- Call fetchAndSendSkills() on successful skill removal to refresh webview
* refactor(vscode): extract addOptimistic helper in session context
Deduplicate optimistic message creation logic shared by sendMessage
and sendCommand into a single addOptimistic helper.
* refactor(vscode): extract resolveSession helper in KiloProvider
Deduplicate session-creation boilerplate shared by handleSendMessage
and handleSendCommand into a single resolveSession helper.
* fix(vscode): preserve real error messages from resolveSession failures
Move !this.client check back to explicit early return so
resolveSession() errors propagate to the catch block with
getErrorMessage() instead of being swallowed as a disconnect.
---------
Co-authored-by: Marius <marius@kilocode.ai>
- Add win32/arm64 target to packages/opencode/script/build.ts
- Add win32-arm64 target to packages/kilo-vscode/script/build.ts and publish.ts
- Add @parcel/watcher-win32-arm64@2.5.1 optional dev dependency to packages/opencode/package.json
- Update RELEASING.md to document win32-arm64 CLI and VSIX targets
Track in-flight updateConfig calls with a pendingUpdates counter in config.tsx
so that configLoaded messages arriving during a pending write are discarded.
Add a configUpdateInProgress flag in KiloProvider to skip fetchAndSendConfig
while handleUpdateConfig is executing, providing belt-and-suspenders protection
against the SSE-triggered reload racing with the async config write.
When an MCP exists in both project and global scope, both are removed.
Use global scope for disposeCliInstance so the global config cache is
also invalidated (global dispose is a superset of project dispose).
Add the ability to remove MCP servers directly from the Agent Behaviour
settings tab, matching the existing pattern for custom mode removal.
- Add delete icon button on each MCP entry with confirmation dialog
- Add removeMcp message type and session context method
- Add handleRemoveMcp in KiloProvider that uses the marketplace
installer's remove logic (tries project scope, then global)
- Add i18n strings for the removal confirmation dialog
For global-scope marketplace installs/removes, the extension was using
global.dispose to reset the CLI's config cache. However, older CLI
versions (pre-6d6e285bb) lack the Config.global.reset() call in the
dispose handler, so the lazy-cached global config was never invalidated.
Fix: use global.config.update with an empty config object to trigger
Config.updateGlobal(), which always calls global.reset(). An empty
merge is a no-op for the file content but properly resets the cache.
This works on both old and new CLI binaries.