- Remove onCleanup and onMount imports (unused)
- Move event.preventDefault() before early returns in handleDrop to
prevent browser navigation when non-image files are dropped
- Add onPaste handler to textarea via useImageAttachments hook
- Add drag-and-drop handlers to the container
- Render image thumbnail strip above the textarea
- Allow sending with images but no text (image-only messages)
- Clear image attachments after send
* feat(vscode): add git worktree support for agent manager sessions
* test(vscode): add WorktreeManager unit and integration tests
* refactor(vscode): address review — extract branch-name, shared SessionMode type, remove premature delete handling
* refactor(vscode): pass directory through handler chain, fix listener leak, add cleanup regression tests
- Remove messageDirectory class field; pass dir as parameter to all handler methods
- Only trust directory override when onBeforeMessage interceptor is attached
- Add proper type for CreateWorktreeSessionRequest, remove `as any` cast
- Fix onMessage listener leak with onCleanup in AgentManagerApp
- Use removeWorktree() for pre-creation cleanup instead of inline fs.rm
- Add regression tests for orphaned directory removal and cleanup before re-creation
* refactor(vscode): bind directory to session not message, fix duplicate import
- KiloProvider: add sessionDirectories map and setSessionDirectory()
- getWorkspaceDirectory() resolves by sessionId lookup instead of per-message override
- Remove dir param from all 18 handler methods — they resolve directory from their sessionId
- AgentManagerProvider: call setSessionDirectory() at session creation and recovery
- Remove directory injection from message interceptor (interceptor only routes custom messages)
- Fix duplicate ExtensionMessage import in AgentManagerApp.tsx
- Forward agent param in worktree session creation
* fix: update stale docstring in AgentManagerProvider
* fix: path guard on rm, clean up sessionDirectories on delete/dispose, track recovered sessions for SSE, log metadata write failures
* fix: recover worktree sessions on restart by merging worktree directories into loadSessions
- handleLoadSessions fetches sessions from all registered worktree directories
and merges them into the response (deduped by session ID)
- recoverWorktrees result is awaited by the interceptor before loadSessions
passes through, ensuring sessionDirectories are populated first
- Fixes: worktree sessions disappearing after VS Code restart
* fix: non-blocking worktree recovery — refresh session list after discovery instead of blocking loadSessions
* fix: don't retry with new branch when existingBranch was requested
- send empty fileSearchResult when httpClient is null so dropdown closes instead of hanging
- remove m flag from AT_PATTERN so $ anchors to end-of-string not end-of-line
- don't swallow Enter when mention dropdown is open but results are empty
- remove unused pos variable in buildHighlightSegments
Register proper VS Code commands and keybindings scoped to the Agent
Manager panel so users can navigate between sessions with Cmd+Up/Down
(Ctrl+Up/Down on Windows/Linux). Shortcuts are discoverable in the
Command Palette and configurable via Keyboard Shortcuts UI.
Make agent/mode selection per-session in SessionProvider so each Agent
Manager session carries its own ephemeral model and agent choice.
- Add agentSelections map to SessionStore (mirrors modelSelections)
- Replace global selectedAgentName signal with per-session memo
- Add pendingAgentSelection for pre-session agent selection
- Transfer pending agent to new session in handleSessionCreated
- Clean up agentSelections on session delete, reset on clear/create
- Extract ModeSwitcherBase reusable component (matches ModelSelectorBase)
- Add getSessionAgent/getSessionModel accessors to context
* fix(kilo-vscode): make prompt input per-session in agent manager
The PromptInput text was stored in a single shared signal, causing
input content to leak between sessions when switching. Store drafts
in a module-level Map keyed by session ID so each session maintains
its own independent input state.
* fix(kilo-vscode): use explicit dependency tracking in session draft effect
Use on(sessionKey, ...) with untrack(text) so the effect only fires
on session switches, not on every keystroke. Fixes a bug where typing
after a session switch would overwrite user input with the stale draft.
Validate that all CSS classes, custom properties, and keyframes in
agent-manager.css use the am- prefix to avoid webview naming collisions.
Also verify CSS/TSX consistency: no undefined classes used in the
component and no dead CSS left in the stylesheet.
Sort sessions by createdAt only in the agent manager, keeping the
default updatedAt sort for the sidebar session list and recent sessions.
This prevents agent manager sessions from reordering when edited.