Update all github.com/Kilo-Org/kilo references to github.com/Kilo-Org/kilocode
across package.json files, documentation, scripts, and configuration files.
This reflects the repository rename from kilo to kilocode.
* tmp
* feat: drag-and-drop tab reordering in agent-manager
Extract tab ordering logic into tab-order.ts with reconcileOrder,
applyTabOrder, firstOrderedTitle. Extract SortableTab and
ConstrainDragYAxis into sortable-tab.tsx. Persist tab order via
WorktreeStateManager to .kilocode/agent-manager.json. Add unit tests.
* cleanup: remove duplicate tests, unused code, and stale re-export
- Delete reorder-tabs.test.ts (merged into tab-order.test.ts)
- Remove reconcileOrder (duplicate of applyTabOrder)
- Remove unused session variable in removeSession
- Remove stale reorderTabs re-export from navigate.ts
* fix: use applyTabOrder for local tab recovery, remove unused pending prop
- Local tab order recovery now uses applyTabOrder (consistent with worktree
handling), gracefully appending new sessions instead of dropping the order
- Remove unused pending prop from SortableTab component
Adding a session to an existing worktree via the "+" tab button was reusing
agentManager.worktreeSetup messages, which triggered the full-screen setup
overlay with spinner over the entire detail pane. Replace with a lightweight
agentManager.sessionAdded message that just selects the new session.
Add ts-morph-based regression test to ensure onAddSessionToWorktree never
sends worktreeSetup messages.
* tmp
* feat(agent-manager): read-only mode for unassigned sessions, tooltip fix, worktree validation
* tmp
* fix keydown
* feat(agent-manager): replace empty worktree hint with 'New Worktree' button
* fix(agent-manager): validate message params before dispatching handlers
* fix(agent-manager): clear stale directory mappings on worktree deletion, remove unused code
* feat(agent-manager): auto-focus prompt input on session switch and panel focus
* refactor(agent-manager): rename short var wt to worktree
* fix(agent-manager): local tabs with pending session support and serialized saves
- Add pending tab system for local sessions (pending:N IDs in localSessionIDs)
- Show 'New Session' tab on first start, empty state when all tabs closed
- Pending tabs behave like normal tabs (closable, selectable, keyboard nav)
- Guard against duplicate sessionCreated events (HTTP + SSE)
- Serialize WorktreeStateManager saves to prevent concurrent write races
- Add flush() method and use it in tests to eliminate flaky failures
* refactor(agent-manager): rename short var mgr to manager
* 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
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.
- Add watch-cli.ts script that watches packages/opencode/src/ for changes,
triggers a rebuild (bun run build --single --skip-install), and copies
the new binary to packages/kilo-vscode/bin/kilo
- Add watch:cli npm script in kilo-vscode package.json
- Add 'VSCode - CLI Watch' task in .vscode/tasks.json
- Include CLI watch in the composite 'VSCode - Watch' task so it runs
automatically when launching the extension via F5
Resolves module resolution errors during vscode extension build where
esbuild could not resolve @opencode-ai/ui subpath imports used by
@kilocode/kilo-ui. The ui package was only available as a workspace
peer dependency, which pnpm install couldn't resolve in isolation.
Adding @opencode-ai/ui as a direct file: dependency follows the same
pattern used for other monorepo packages (kilo-ui, kilo-i18n, sdk).
pnpm 10 requires pnpm-workspace.yaml to resolve workspace:* deps.
Since this monorepo uses bun for workspace management, change the
protocol to file: which both bun and pnpm understand.
- Extension sends vscode.env.language to webview via ready message
- LanguageProvider uses priority: user override → VS Code lang → browser → en
- LanguageTab has a Select dropdown with all 16 locales + 'Auto'
- Language preference stored in kilo-code.new.language VS Code setting
- setLanguage message from webview saves preference to VS Code config
- Create LanguageProvider that merges UI translations from
@opencode-ai/ui and Kilo overrides from @kilocode/kilo-i18n
- All 16 locales: en, zh, zht, ko, de, es, fr, da, ja, pl, ru, ar, no, br, th, bs
- Auto-detect browser locale via navigator.languages
- Replace no-op t: (key) => key with proper dictionary lookup
- kilo-ui components now show 'Read', 'Shell', 'Deny' etc instead of raw keys
- All 15 lucide-solid icons in Settings.tsx replaced with Icon component
- Back button ArrowLeft → Icon name='arrow-left'
- Removed lucide-solid dependency from package.json
- Many icons use approximate matches (kilo-ui only has 38 icons)
- Update progress tracker + deviation note #7
- Use Dialog via useDialog() hook to avoid dual @kobalte/core context mismatch
- Use BasicTool for the collapsible permission header (matching app pattern)
- Use data-component=permission-prompt / data-slot=permission-actions
for the button row (styled by kilo-ui CSS, matching app pattern)
- Remove 7 custom permission CSS classes from chat.css
- Remove direct @kobalte/core dependency from kilo-vscode
Two root causes fixed:
1. Model ID mismatch: backend model keys use provider prefix (e.g. 'kilo/auto')
but KILO_AUTO constant and settings default used 'auto' without prefix.
findModel() never matched. Fixed defaults everywhere.
2. Message delivery race: ProviderProvider registered its providersLoaded handler
in onMount (too late). Moved to component body, added requestProviders retry
with 500ms interval, and extension-side provider caching.
- Default model is now kilo/auto
- Model changes only affect the current chat session
- Global VSCode config serves as default for new sessions
- Remove saveModel global persistence