The notifications merge (PR #437) added KiloNotifications to ChatView and
NotificationsProvider to the sidebar App.tsx but missed the Agent Manager's
AgentManagerApp.tsx. When ChatView renders inside the Agent Manager, the
useNotifications() call throws because there is no provider — silently
crashing the component tree via SolidJS error boundaries and preventing
session tabs from rendering.
Replaces the single cycle button with a ThinkingSelector popover
component matching the ModeSwitcher pattern. Lists all available
variants plus a Default option to disable thinking.
Adds a variant cycle button to the VS Code extension's prompt input
that lets users toggle the thinking effort level (e.g. high/max) for
models that support reasoning, matching the TUI app behaviour.
- Extend ProviderModel types to expose variants and capabilities.reasoning
- Thread variant through the full send-message pipeline (webview → extension → CLI)
- Persist variant selections via VS Code globalState
- Render a thinking toggle button next to the model selector (only
visible when the selected model supports reasoning variants)
Closes#172
Show new worktrees in the sidebar immediately after creation with a
spinner icon, allowing users to switch to other worktrees while the
setup script runs instead of being blocked by a full-screen overlay.
- Add worktreeId to worktreeSetup messages so the webview can track
which worktree each setup event belongs to
- Push state to sidebar immediately after git worktree creation so the
entry appears before the setup script runs
- Replace separate deletingWorktrees/settingUpWorktrees signals with a
unified busyWorktrees map (WorktreeBusyState with reason field) for
consistent loading behavior across setup and deletion
- Scope the setup overlay to only show when the setting-up worktree is
selected; switching away hides it, switching back restores it
- Hide the delete button on busy worktrees instead of showing a second
spinner
- Ensure failed session creation cleans up stale sidebar entries via
pushState() after removeWorktree()
* fix(vscode): prevent UI blocking when switching sessions rapidly
- Show loading spinner in MessageList during session switch instead of blank screen
- Fire handleLoadMessages without await so rapid switches aren't serialized
- Abort stale getMessages requests via AbortController when switching away
- Scope error messages with sessionID so stale 404s don't clear wrong session's loading state
- Silence expected 404s on cross-worktree getSession calls via silent HTTP option
* fix: replace empty catch block with warning log for getSession errors
The loading skeleton gates (worktreesLoaded && sessionsLoaded) could
permanently block the Agent Manager UI. initializeState() called
refreshSessions() which sent sessionsLoaded before the webview's
onMount handlers registered, so the signal was lost. Since sessions
were already populated, the MessageList backup effect never triggered
a retry.
Add refreshSessions() to the requestState handler which fires from
the webview's onMount, guaranteeing all message listeners are ready.
The agent-manager-arch test enforces that all CSS class selectors in
agent-manager.css use the am- prefix. The NewWorktreeDialog was reusing
unprefixed prompt-input-* classes from the sidebar chat CSS, which
violated this rule and broke the test-vscode CI pipeline.
Kobalte modal dropdowns set pointer-events:none and overflow:hidden on
document.body. When the user opens the setup script editor from the
settings dropdown, VS Code steals focus before the dropdown cleanup
runs, leaving the body permanently unclickable. Clear these stale
styles in the existing window focus handler so the UI recovers when
the user returns to the agent manager tab.
When the Agent Manager opens in a non-git folder, initializeState()
returned early without pushing state to the webview, leaving the
skeleton loader spinning forever. Now pushes empty state with
isGitRepo: false so the UI can display a clear message and hide
worktree action buttons.
- Fix quoted button label in br, pl, ru, zht to match their allowAlways values
- Add permission-hint to both permission prompt locations in message-part.tsx
Clarifies that 'Allow always' only applies for the duration of the current
session, not globally. Adds translated hint text below the permission
action buttons in all supported locales.
Add a Keyboard Shortcuts item to the settings gear dropdown in the
Agent Manager sidebar. Opens a kilo-ui Dialog showing all available
shortcuts grouped by category (Sidebar, Tabs, Terminal, Global) with
platform-appropriate key rendering (Mac symbols / Windows key names).
Also exposes the global agentManagerOpen keybinding so it appears in
the dialog alongside the agent-manager-scoped shortcuts.
Make the SESSIONS header in the Agent Manager sidebar clickable to
collapse/expand the session list. When collapsed, the worktrees section
takes the full vertical space. The collapsed state is persisted to
.kilocode/agent-manager.json so it survives VS Code restarts.
The catch block in runSetupScriptForWorktree only logged to the output
channel but never posted a status error to the webview. Since the setup
overlay only dismisses on ready or error status, any exception during
script execution left the overlay covering the entire UI permanently.
* fix(vscode): route focusChatInput (Cmd+Shift+A) to active panel
The focusChatInput command was hardcoded to always target the sidebar
KiloProvider. When the Agent Manager panel was focused, the shortcut
had no effect. Now the command checks which panel is active at
invocation time and routes the message accordingly.
* fix(vscode): route addToContext setChatBoxMessage through target() too
Both setChatBoxMessage and focusInput in the addToContext handler now
use target() so the context text and focus always go to the same panel.