Commit Graph
60 Commits
Author SHA1 Message Date
Catriel Müller 8471c556d3 fix: align vscode extension publish version with CLI version
Remove the +6 major version offset applied during build and publish
for the kilo-vscode package so both packages share the same version.
2026-02-23 08:42:44 -03:00
Mark IJbema b51b9eb677 docs: update repository URLs from kilo to kilocode
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.
2026-02-23 11:41:41 +01:00
Kevin van Dijk f7c4f41b4b Add correct title and description 2026-02-22 00:45:54 +01:00
Kevin van Dijk 9aa32abe7b Add proper logo to vscode marketplace manifest 2026-02-22 00:41:09 +01:00
kilo-maintainer[bot] 4093d575c1 release: v1.0.25 2026-02-21 13:04:22 +00:00
Igor Šćekić 29a6495d88 Merge pull request #521 from Kilo-Org/add-vscode-tests
add extension tests
2026-02-20 16:01:58 +01:00
Igor Šćekić 5bdcd646bc ci(vscode): add unit test script and CI workflow with path filter 2026-02-20 13:37:36 +01:00
Marius 70f94c4054 feat: drag-and-drop tab reordering in agent manager (#517)
* 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
2026-02-20 13:15:45 +01:00
Marius f0d975d92b feat(vscode): add Cmd+Shift+M keybinding to open Agent Manager (#512) 2026-02-20 11:44:48 +01:00
kilo-maintainer[bot] 4b09f7f2d1 release: v1.0.24 2026-02-20 00:28:29 +00:00
Marius 0e990a147d feat(agent-manager): add session terminal with focus toggle keybindings (#491)
* feat(agent-manager): add session terminal with focus toggle keybindings

* fix: dispose managed terminals on cleanup
2026-02-19 19:23:37 +00:00
Marius 0486317f29 feat: keyboard shortcuts for agent manager tab/worktree management (#495)
* feat: add keyboard shortcuts for agent manager tab/worktree management

* fix: use mock.module in git-context tests to avoid cross-file mock leakage

* feat: shared worktree delete confirmation dialog with Enter/Esc, Cmd+W fallthrough, Cmd+T race fix

* fix: Enter on delete dialog, VS Code theme colors, Cmd+N auto-switch, shortcut hints, smooth neighbor selection on worktree delete

* refactor: move confirm dialog styles to kilo-ui, replace 'local' magic string with LOCAL constant

* revert: restore upstream commit-message tests, drop our git.ts/GitRunner changes

* revert: remove out-of-scope kilo-ui/SessionList/chat.css changes, keep confirm styles in agent-manager.css

* fix: remove stale /P reference from comment

* fix: move keybinding entries from submenus to keybindings array
2026-02-19 20:01:54 +01:00
Marius 2f9622ea34 fix: prevent setup overlay when adding session to existing worktree (#497)
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.
2026-02-19 18:26:45 +00:00
Mark IJbema a1ca232cf1 docs(kilo-vscode): integrate old extension context menu spec into migration plan 2026-02-19 17:36:27 +01:00
Mark IJbema 561207562b fix: use Kilo logo icon for commit message SCM button 2026-02-19 16:26:09 +01:00
Mark IJbema a7cc035b0b feat: add commit message generation feature 2026-02-19 16:26:03 +01:00
Marius 8b1d782a25 feat(agent-manager): worktree state architecture with session tabs (#451)
* 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
2026-02-19 12:55:27 +01:00
Marius 4b7e20bc21 feat(vscode): add git worktree support for agent manager sessions (#418)
* 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
2026-02-18 14:25:11 +00:00
Marius 3b077612c4 feat(vscode): add Cmd+Up/Down session navigation in Agent Manager (#412)
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.
2026-02-18 10:32:45 +00:00
kilo-maintainer[bot] 65f0fdc22c release: v1.0.23 2026-02-17 16:57:46 +00:00
Mark IJbema 0f74fe892e Merge pull request #361 from Kilo-Org/mark/watch-cli-rebuild
feat(vscode): auto-rebuild CLI binary on opencode source changes + auto-start watchers
2026-02-17 11:34:47 +01:00
Mark IJbema fe66e1d12a fix: use Kilo logo for vscode extension sidebar icon
Replace the generic $(code) codicon with the actual Kilo logo PNGs
for the activity bar icon, matching the kilocode-5 extension.
2026-02-17 11:06:54 +01:00
Mark IJbema 7feae1ef06 feat(vscode): auto-rebuild CLI binary on opencode source changes
- 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
2026-02-17 10:53:31 +01:00
Catriel Müller 91588eaa89 refactor: vscode monorepo instegration 2026-02-16 18:21:05 -03:00
kilo-maintainer[bot] b8474bc1f9 release: v1.0.22 2026-02-16 19:58:41 +00:00
Catriel Müller 82e49ad0ca fix: add @opencode-ai/ui dependency to kilo-vscode package
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).
2026-02-16 11:52:57 -03:00
Catriel Müller c6fd3adb4a feat: vscode publish 2026-02-13 16:14:05 -03:00
kilo-maintainer[bot] f486ccfc43 release: v1.0.21 2026-02-13 13:57:12 +00:00
kilo-maintainer[bot] 5c3a1abc4f release: v1.0.20 2026-02-13 08:44:41 +00:00
Mark IJbema 7c7c679b41 feat(kilo-vscode): add pnpm update-backend command
Adds --force flag to prepare-cli-binary.mjs and a new 'update-backend'
pnpm script that rebuilds the CLI binary even when it already exists.
2026-02-12 16:53:21 +01:00
Mark IJbema 9f4af30778 fix(kilo-vscode): use file: protocol for workspace deps
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.
2026-02-12 16:50:48 +01:00
Mark IJbema 911d04ed52 Merge remote-tracking branch 'origin/dev' into mark/implement-autocomplete 2026-02-12 16:31:51 +01:00
Mark IJbema ff5e8af0d9 refactor(settings): use VS Code config instead of globalState for notification settings 2026-02-12 15:12:48 +01:00
kilo-maintainer[bot] 7c129b4ef5 release: v1.0.19 2026-02-12 13:22:58 +00:00
Mark IJbema 020f911e5e feat: implement autocomplete settings tab and remove apiKey setting 2026-02-12 14:00:12 +01:00
kilo-maintainer[bot] 62f243849b release: v1.0.18 2026-02-12 12:55:21 +00:00
Mark IJbema bf15aabb68 chore: install autocomplete dependencies and fix compilation errors 2026-02-12 13:28:18 +01:00
Mark IJbema ea09b16b78 feat: wire autocomplete into extension activation and package.json 2026-02-12 13:28:18 +01:00
Mark IJbema d1f09e0e34 Merge pull request #273 from Kilo-Org/mark/playwright-mcp-integration
feat: Playwright MCP browser automation integration
2026-02-12 12:50:27 +01:00
kilo-maintainer[bot] 2ef145efc1 release: v1.0.17 2026-02-12 11:09:07 +00:00
Mark IJbema 141bd25c29 feat: add browser automation settings schema 2026-02-12 11:37:33 +01:00
Mark IJbema a528360a3f feat: add language selector with VS Code language detection + user override
- 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
2026-02-11 14:53:46 +01:00
Mark IJbema fa43276946 feat: add i18n translations with all 16 locales
- 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
2026-02-11 14:52:18 +01:00
Mark IJbema cd9241fc7d feat: replace lucide-solid icons with kilo-ui Icon component (Phase 1.5)
- 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
2026-02-11 10:47:19 +01:00
Mark IJbema a65159dd5e feat: replace permission overlay with kilo-ui Dialog + BasicTool (Phase 1.3)
- 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
2026-02-11 09:52:56 +01:00
Mark IJbema 8c3a3b4c21 feat: wire up kilo-ui build system and providers (Phase 0) 2026-02-10 15:56:52 +01:00
Mark IJbema 8856de1f44 fix: ModelSelector shows enriched name instead of raw 'auto'
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.
2026-02-10 12:23:35 +01:00
Mark IJbema bcc9487a23 feat: make model/provider selection per-session instead of global
- 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
2026-02-10 12:22:19 +01:00
Mark IJbema cb293856db feat: extension-side provider fetch and model persistence 2026-02-10 12:22:19 +01:00
Mark IJbema 8cb8c84800 chore: remove + and settings buttons from editor tab panel 2026-02-10 09:38:48 +01:00