Commit Graph

12 Commits

Author SHA1 Message Date
Marius 65c5e9d2c0 fix(vscode): sync mode cycling state (#12560) 2026-07-27 14:07:28 +02:00
Johnny Eric Amancio 5c4ce7251a fix(vscode): share model picker expand state across webviews (#11910)
Persist the model selector expand/collapse preference in extension
globalState instead of per-webview state, and broadcast changes through
KiloConnectionService so every live webview (sidebar and Agent Manager
panel) stays in sync.
2026-07-03 14:55:30 +02:00
Johnny Eric Amancio 78cdc9c896 feat(vscode): persist model selector expand/collapse state (#11824)
* feat(vscode): persist model selector expand/collapse state

Save the model picker's preview-panel expand/collapse preference via the
VS Code webview state API so it survives reload, hide/show, and restart.

* chore(vscode): add model picker changeset

* fix(vscode): address model selector review feedback
2026-06-30 21:36:30 +02:00
Marius 1aa5e554b3 Add sidebar changes review tab in VS Code extension (#6705)
* feat(vscode): open sidebar changes in diff tab

* fix(vscode): stabilize sidebar changes review tab

* chore: update kilo-vscode visual regression baselines

* fix(vscode): harden sidebar changes tab messaging

* refactor(vscode): share review tab helpers

* fix(vscode): clear empty changes loading state

* fix(vscode): correct session state initialization

* fix(vscode): use getVSCodeAPI singleton in diff-viewer to prevent double acquireVsCodeApi call

* fix(vscode): ensure CLI connection before diff fetch and include content in diff hash

- Call connectionService.connect() in DiffViewerProvider.initialFetch() so
  the panel works even if opened before any other Kilo view
- Include full diff content in hashFileDiffs instead of just after.length
  to detect in-place edits that don't change line counts

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-09 15:30:16 +01:00
Marius 9d6dca1863 feat(vscode): add knip dead code detection to agent-manager (#6773)
* feat(vscode): add knip dead code detection to agent-manager

Add knip to the kilo-vscode package to detect and prevent dead code in
the agent-manager. This includes:

- knip.json config scoped to src/agent-manager/ and webview-ui/agent-manager/
- CI pipeline step in test-vscode.yml to run knip on every PR
- Clean up unused exports: narrow interfaces/types to non-exported where
  only used locally, remove unused re-exports from FileTree.tsx and
  review-comments.ts

* expand knip scope to entire kilo-vscode package

- Widen project scope from agent-manager only to src/**/*.ts and
  webview-ui/**/*.{ts,tsx}
- Exclude vendored src/services/autocomplete/** from analysis
- Enable ignoreExportsUsedInFile for component Props patterns
- Delete 4 dead files: legacy-migration barrel/messages, settings
  barrel, webview telemetry util
- Trim barrel re-exports in cli-backend, telemetry, browser-automation
  to only what consumers actually import through the barrel
- Unexport private helpers: getNonce, joinCspDirectives,
  NEW_EXTENSION_IS_STILL_EXPERIMENTAL flag, getVSCodeAPI,
  dispatchMockProviders, errorCodes
- Narrow 5 unused exported types to non-exported
2026-03-09 12:31:20 +01:00
Mark IJbema a2b5161dee refactor: remove globalThis.__vscodeApi hack from webview telemetry 2026-02-18 15:39:42 +01:00
Mark IJbema 3e08ecae92 chore: remove unnecessary kilocode_change markers from kilo-vscode 2026-02-18 15:39:41 +01:00
Mark IJbema 623d37f36f feat: implement proxy-based telemetry for VS Code extension
- Add POST /telemetry/capture endpoint to CLI server
- Add TelemetryProxy singleton in extension (forwards to CLI)
- Add webview telemetry helper (postMessage → extension → CLI)
- Pass telemetry env vars (level, editor_name, platform, machineId) to CLI
- Wire up KiloProvider as TelemetryPropertiesProvider
- Replace TelemetryStub with real TelemetryProxy in autocomplete
- 53 telemetry events covering tasks, LLM, tools, UI, autocomplete, etc.
2026-02-18 15:38:51 +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 3caa86a43b add missing commas 2026-02-09 13:25:34 +01:00
Mark IJbema af6743a79b add missing commas 2026-02-09 13:25:30 +01:00
Mark IJbema 1206159e17 Add chat interface to kilo-vscode sidebar
Reimplements commits 76d374f and e4a01805 from PR #131 with a
production-ready approach:

Webview changes:
- Add types/messages.ts with typed extension<->webview messages
- Add context/vscode.tsx for VS Code API access
- Add context/server.tsx for connection state management
- Add context/session.tsx for session and message state with SSE handling
- Add chat components: ChatView, MessageList, Message, PromptInput,
  StatusIndicator, PermissionDialog
- Add styles/chat.css with VS Code CSS variable theming
- Update App.tsx to use context providers and ChatView
- Update Settings.tsx to use server context

Extension changes:
- Update KiloProvider CSP to allow localhost connections
- Add handlers for createSession, loadMessages, loadSessions
- Forward sessionCreated, messageCreated events to webview
- Convert backend types to webview-friendly format
2026-02-09 12:15:38 +01:00