mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-09-24 16:02:55 +08:00
docs(vscode): audit and clean up feature parity plans
Audited all docs in packages/kilo-vscode/docs/ subdirs against the actual codebase. Removed fully implemented features (toggle-thinking, inline-actions-on-tool-messages, git-commit-message-generation), updated all remaining docs to focus on what still needs to be done, corrected stale statuses, and added implementation-status.md summary.
This commit is contained in:
@@ -1,23 +1,15 @@
|
||||
# Browser Session Controls
|
||||
|
||||
Interactive controls for browser automation sessions surfaced in the chat UI.
|
||||
**Priority:** P3
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Location
|
||||
## What Exists
|
||||
|
||||
- Implied from browser session components (to be located/confirmed)
|
||||
`BrowserTab` settings UI has enable/disable toggle, system Chrome, and headless mode options. `BrowserAutomationService` handles Playwright MCP server registration. Browser tool calls appear as generic MCP tool entries in chat.
|
||||
|
||||
## Interactions
|
||||
## Remaining Work
|
||||
|
||||
- Interactive controls for browser automation sessions
|
||||
- In-chat browser session controls (start/stop/navigate)
|
||||
- Action replay and control buttons
|
||||
- Screenshot viewing
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Likely yes (unless Kilo CLI adds browser tooling).
|
||||
|
||||
- This feature appears to be Kilo-specific (browser automation tools + UI controls). Kilo CLI’s standard surface area centers on sessions/messages/tools/permissions and does not obviously include browser automation.
|
||||
- If browser automation remains a required capability, plan to:
|
||||
- keep the existing Kilo browser toolchain in the extension host, or
|
||||
- implement an Kilo CLI tool/plugin that drives a browser and emits the same UI events currently expected by the webview.
|
||||
- Consider deferring until after Phase 3 (permissions) in [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1).
|
||||
- Screenshot viewing within chat messages
|
||||
- Dedicated browser tool rendering (currently falls through to generic MCP tool display)
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
# Checkpoint & Task Management
|
||||
|
||||
Checkpoint restore/navigation and task-level UX actions.
|
||||
**Priority:** P1
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Location
|
||||
|
||||
- Various checkpoint components
|
||||
|
||||
## Interactions
|
||||
## Remaining Work
|
||||
|
||||
- Checkpoint restore dialogs
|
||||
- Checkpoint navigation menu
|
||||
- Checkpoint navigation menu / timeline
|
||||
- "See New Changes" buttons to view git diffs for completed tasks
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Partial.
|
||||
|
||||
- If “checkpoints” are implemented as Kilo-side git snapshots, they can remain a VS Code integration owned by the extension host (still valid under the new architecture).
|
||||
- If you want to align with Kilo CLI-native session operations (undo/redo/fork/diff), implement adapter support that maps those Kilo CLI session controls into existing Kilo UI affordances (or add new controls).
|
||||
- Kilo CLI references: session-level undo/redo/fork appear as first-class concepts in the app UI (see command labels in [`packages/app/src/i18n/en.ts`](https://github.com/Kilo-Org/kilocode/blob/main/packages/app/src/i18n/en.ts:1)) and diff rendering in [`packages/ui/src/components/session-turn.tsx`](https://github.com/Kilo-Org/kilocode/blob/main/packages/ui/src/components/session-turn.tsx:1).
|
||||
- Integration with CLI session undo/redo/fork operations
|
||||
- Consider reusing kilo-ui's `MessageNav` component (used by the desktop app but not yet by this extension)
|
||||
|
||||
@@ -1,32 +1,20 @@
|
||||
# Connection State UI (Loading / Error / Reconnecting)
|
||||
|
||||
**Priority:** P0
|
||||
**Status:** ❌ Not started
|
||||
**Source:** [JetBrains plugin analysis](../../LESSONS_LEARNED_JETBRAINS.md)
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
The chat view renders regardless of connection state. When the extension is connecting, reconnecting, or in an error state, users see an empty chat with no feedback. The UI should show appropriate loading spinners, error messages, and retry options.
|
||||
- `ServerProvider` tracks `connectionState` signal ("connecting"/"connected"/"disconnected"/"error")
|
||||
- `PromptInput` disables the textarea when disconnected and shows "Connecting to server..." placeholder
|
||||
- `AboutKiloCodeTab` shows a connection status dot
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- Show a loading spinner with "Connecting to Kilo..." when connection state is `"connecting"`
|
||||
- Show a reconnecting indicator when connection state is `"reconnecting"` (depends on [SSE Auto-Reconnect](../infrastructure/sse-auto-reconnect.md))
|
||||
- Show an error panel with message and "Retry" button when connection state is `"error"`
|
||||
- Show an initializing state while server is starting
|
||||
- Only render the chat interface when connection state is `"connected"`
|
||||
|
||||
## Current State
|
||||
|
||||
[`App.tsx`](../../webview-ui/src/App.tsx:83) renders `<ChatView />` unconditionally regardless of connection state. The [`server.tsx`](../../webview-ui/src/context/server.tsx:27) context tracks connection state but it's not used to gate the UI.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No loading/connecting spinner
|
||||
- No error panel with retry
|
||||
- No reconnecting indicator
|
||||
- Chat renders even when disconnected — prompt input accepts text that can't be sent
|
||||
- The [`PromptInput`](../../webview-ui/src/components/chat/PromptInput.tsx) should be disabled when not connected
|
||||
- Loading spinner overlay with "Connecting to Kilo..." when state is `"connecting"`
|
||||
- Reconnecting indicator (depends on [SSE Auto-Reconnect](../infrastructure/sse-auto-reconnect.md) adding `"reconnecting"` state)
|
||||
- Error panel with message and "Retry" button when state is `"error"`
|
||||
- Gate the chat interface — only render when `"connected"`
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
@@ -48,6 +36,4 @@ The chat view renders regardless of connection state. When the extension is conn
|
||||
Files to change:
|
||||
|
||||
- [`webview-ui/src/App.tsx`](../../webview-ui/src/App.tsx) or [`webview-ui/src/components/chat/ChatView.tsx`](../../webview-ui/src/components/chat/ChatView.tsx) — add connection state gating
|
||||
- New file `webview-ui/src/components/LoadingPanel.tsx` — loading spinner component
|
||||
- New file `webview-ui/src/components/ErrorPanel.tsx` — error display with retry
|
||||
- [`webview-ui/src/styles/chat.css`](../../webview-ui/src/styles/chat.css) — styles for loading/error states
|
||||
- New components for loading/error panels (consider kilo-ui `Spinner` and `Card`)
|
||||
|
||||
@@ -1,29 +1,18 @@
|
||||
# Context Menus & Tooltips (Webview)
|
||||
|
||||
Right-click/context actions and tooltip affordances within the chat webview UI.
|
||||
**Priority:** P2
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
> **Note:** For VS Code-native context menus (editor right-click, terminal right-click, code action lightbulb), see [Editor Context Menus & Code Actions](../non-agent-features/editor-context-menus-and-code-actions.md).
|
||||
|
||||
## Scope
|
||||
## What Exists
|
||||
|
||||
This document covers **webview-internal** context menus and tooltips — i.e., right-click menus and hover tooltips rendered inside the Kilo Code chat panel.
|
||||
|
||||
## Current State
|
||||
|
||||
- kilo-ui provides `Tooltip` and `Popover` components, already in use throughout the webview (TaskHeader, ModelSelector, etc.)
|
||||
- No webview-internal right-click context menu exists yet
|
||||
- Tooltips extensively used throughout the webview via kilo-ui `Tooltip` component (cost display, buttons, model info, copy buttons)
|
||||
- Session list has right-click context menu (rename/delete) via `@kilocode/kilo-ui/context-menu`
|
||||
|
||||
## Remaining Work
|
||||
|
||||
- Add hover tooltips with explanatory text for all interactive buttons in the chat UI
|
||||
- Implement right-click context menus on chat messages (copy, retry, edit, delete)
|
||||
- Consider context menus on code blocks (copy code, insert at cursor, apply diff)
|
||||
|
||||
## Location
|
||||
|
||||
- [`webview-ui/src/components/common/ContextMenu.tsx`](../../webview-ui/src/components/common/ContextMenu.tsx:1)
|
||||
- kilo-ui `Tooltip` component usage throughout webview
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
These are presentation-layer affordances; the CLI backend is not involved. kilo-ui already provides the tooltip infrastructure needed.
|
||||
- Right-click context menus on chat messages (copy, retry, edit, delete)
|
||||
- Right-click context menus on code blocks (copy code, insert at cursor, apply diff)
|
||||
- Right-click context menus on tool results
|
||||
- Hover tooltips with explanatory text for all interactive buttons in the chat UI
|
||||
|
||||
@@ -1,33 +1,24 @@
|
||||
# File Permission Dialogs
|
||||
|
||||
Batch approval UI for file read operations.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Location
|
||||
## What Exists
|
||||
|
||||
Permissions are now rendered through kilo-ui's `DataProvider` pattern using `Dialog` + `BasicTool` + `data-component="permission-prompt"`. There is no standalone `BatchFilePermission.tsx` — the permission UI is integrated into the kilo-ui message rendering pipeline.
|
||||
- Single permission requests render inline above prompt input with Deny / Allow Always / Allow Once buttons
|
||||
- Tool-level inline permissions appear inside tool cards in `message-part.tsx`
|
||||
- Permission queue (`permission-queue.ts`) handles upsert/remove, processes one at a time
|
||||
|
||||
## Interactions
|
||||
## Remaining Work
|
||||
|
||||
- Batch file read approval interface
|
||||
- Per-file permission management
|
||||
- Approve/deny multiple file read requests
|
||||
- Batch file read approval (approve multiple pending file reads at once)
|
||||
- Per-file granularity in batch approvals
|
||||
- Render permissions inline in the prompt dock area instead of the current modal `Dialog` wrapper — match the pattern used by the desktop app (`packages/app/`) where permissions replace the text input while pending
|
||||
|
||||
## Suggested migration
|
||||
## TODO: Inline Permission Rendering
|
||||
|
||||
**Reimplement?** Partial (UI can stay; semantics need remapping).
|
||||
Both the desktop app and the old extension render permission prompts inline in the prompt area. The current rebuild uses a modal `Dialog` wrapper. Change to:
|
||||
|
||||
- Kilo CLI uses a permission-request queue (asked/replied) model; the extension host must translate Kilo CLI permission events into Kilo's existing approval UX per [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1).
|
||||
- If Kilo CLI permission prompts are per-tool-call (not "batch per-file"), you may need to:
|
||||
- either keep a batch UI but respond to permissions one-by-one, or
|
||||
- simplify the UI to match Kilo CLI's permission granularity.
|
||||
- Kilo CLI UI reference: permission prompt actions exist in [`packages/ui/src/components/message-part.tsx`](https://github.com/Kilo-Org/kilocode/blob/main/packages/ui/src/components/message-part.tsx:1).
|
||||
|
||||
## TODO: Render permissions inline instead of in a modal Dialog
|
||||
|
||||
Both the desktop app ([`packages/app/src/pages/session.tsx:2727-2774`](../../packages/app/src/pages/session.tsx:2727)) and the old extension render permission prompts **inline in the prompt area**, replacing the text input while a permission is pending. The current vscode rebuild uses a modal `Dialog` wrapper instead.
|
||||
|
||||
This should be changed to match the inline pattern:
|
||||
|
||||
- Render the `BasicTool` + `permission-prompt` block in the prompt dock area (where `PromptInput` sits), conditionally replacing the input when `permissions().length > 0`.
|
||||
- Remove the `Dialog` / `useDialog()` wrapper.
|
||||
- This also enables the prompt area to naturally block user input while permissions are pending, matching the app's `blocked()` memo pattern.
|
||||
- Render `BasicTool` + `permission-prompt` block in the prompt dock area, conditionally replacing the input when `permissions().length > 0`
|
||||
- Remove the `Dialog` / `useDialog()` wrapper
|
||||
- This naturally blocks user input while permissions are pending, matching the app's `blocked()` memo pattern
|
||||
|
||||
@@ -1,25 +1,14 @@
|
||||
# Follow-Up Questions
|
||||
|
||||
Suggested replies presented as interactive chips/buttons.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Location
|
||||
|
||||
- [`webview-ui/src/components/chat/FollowUpSuggest.tsx`](../../webview-ui/src/components/chat/FollowUpSuggest.tsx:1)
|
||||
|
||||
## Interactions
|
||||
## Remaining Work
|
||||
|
||||
- Suggested reply chips/buttons after agent responses
|
||||
- Click to submit suggested response
|
||||
- Shift-click or dedicated button to copy suggestion to chat input
|
||||
- Mode indicators for suggestions that switch modes
|
||||
- Auto-approval countdown timer (default 60s) for automatic selection
|
||||
- Timer cancellation on user interaction (pausing input or selecting suggestion)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Likely yes (feature may not exist in Kilo CLI).
|
||||
|
||||
- This feature requires explicit “suggestions” data. Kilo CLI’s core API/events focus on sessions/messages/permissions; follow-up suggestion generation is not obviously part of that contract.
|
||||
- Options:
|
||||
- Keep the current Kilo-side follow-up suggestion generation (if it’s already Kilo-generated), or
|
||||
- Add an adapter step that asks Kilo CLI for suggested follow-ups after a turn completes (and then surfaces them to the webview).
|
||||
- Treat this as **non-blocking** for Phase 2 MVP in [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1) unless UX parity requires it immediately.
|
||||
- Timer cancellation on user interaction
|
||||
- Determine whether follow-up generation happens extension-side or via CLI
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# Inline Actions on Tool Messages
|
||||
|
||||
Inline affordances on tool messages to navigate, inspect, and track progress.
|
||||
|
||||
## Location
|
||||
|
||||
- Various tool message components
|
||||
|
||||
## Interactions
|
||||
|
||||
- **FastApplyResult Display**: Shows results of fast-apply operations
|
||||
- **Jump to File**: Opens files directly from file operation messages
|
||||
- **External Link Icons**: Navigate to related files/resources
|
||||
- **Progress Indicators**: Real-time status for long-running operations
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Partial.
|
||||
|
||||
- Inline actions are mostly presentation-layer, but they depend on tool/result metadata being present in the message stream.
|
||||
- With Kilo CLI owning orchestration, ensure the adapter:
|
||||
- preserves tool-call identifiers and status transitions (start/progress/finish) so existing progress indicators continue to work,
|
||||
- preserves file/diff references so jump-to-file and diff UIs remain functional.
|
||||
- Kilo CLI UI reference: tool-part wrappers and permission prompts live in [`packages/ui/src/components/message-part.tsx`](https://github.com/Kilo-Org/kilocode/blob/main/packages/ui/src/components/message-part.tsx:1), which is a good reference for the minimal metadata needed to support inline actions.
|
||||
@@ -1,27 +1,13 @@
|
||||
# Mermaid Diagram Features
|
||||
|
||||
Interactive actions around Mermaid diagram rendering, error handling, and AI-assisted fixes.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Location
|
||||
## Remaining Work
|
||||
|
||||
- [`webview-ui/src/components/common/MermaidBlock.tsx`](../../webview-ui/src/components/common/MermaidBlock.tsx:1)
|
||||
- [`webview-ui/src/components/common/MermaidButton.tsx`](../../webview-ui/src/components/common/MermaidButton.tsx:1)
|
||||
|
||||
## Interactions
|
||||
|
||||
- **"Fix with AI" button** - Auto-fixes mermaid syntax errors using AI (`MermaidSyntaxFixer`)
|
||||
- Mermaid diagram rendering in chat messages (currently renders as plain code blocks)
|
||||
- "Fix with AI" button for mermaid syntax errors — needs to route through CLI
|
||||
- Copy button for diagram code
|
||||
- Click to open rendered diagram as PNG in editor
|
||||
- Error expansion with original code display
|
||||
- Loading states during processing ("Fixing syntax...", "Loading...")
|
||||
- Shows both fixed and original versions when syntax fix is applied
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Mostly no for rendering; **yes/adapter work** for "Fix with AI".
|
||||
|
||||
- Mermaid rendering/copy/open-PNG is a webview concern; keep the existing UI.
|
||||
- The **"Fix with AI"** action currently relies on Kilo-side AI plumbing. With the agent runtime moving to Kilo CLI per [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1), you likely need to re-route this button to:
|
||||
- either a dedicated Kilo CLI prompt/tool that returns corrected Mermaid source, or
|
||||
- a small Kilo-side helper that asks Kilo CLI to fix the snippet (so the button remains functional without the legacy Kilo orchestration loop).
|
||||
- Kilo CLI UI doesn’t appear to ship an equivalent Mermaid renderer/fixer (only a Mermaid file icon is present in [`packages/ui/src/components/file-icons/types.ts`](https://github.com/Kilo-Org/kilocode/blob/main/packages/ui/src/components/file-icons/types.ts:1)).
|
||||
- Error display with original code
|
||||
- Loading states during processing
|
||||
|
||||
@@ -1,27 +1,13 @@
|
||||
# Message Editing & Management
|
||||
|
||||
Interactive editing and message management for user-authored messages.
|
||||
**Priority:** P1
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Location
|
||||
## Remaining Work
|
||||
|
||||
- [`webview-ui/src/components/chat/ChatRow.tsx`](../../webview-ui/src/components/chat/ChatRow.tsx:1)
|
||||
|
||||
## Interactions
|
||||
|
||||
- Edit user messages inline with full chat input features
|
||||
- Edit user messages inline (with full chat input features — mode selector, image attachments, cancel/save)
|
||||
- Delete user messages from conversation
|
||||
- Click-to-edit on message text
|
||||
- Mode selector integration during edit
|
||||
- Image attachment support during edit
|
||||
- Cancel/Save actions
|
||||
- Optional timestamp display
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** **Partial** (depends on who owns history).
|
||||
|
||||
- If Kilo CLI becomes the source of truth for session history, Kilo can’t “just edit/delete locally” anymore; it needs adapter support to express edits as Kilo CLI session operations.
|
||||
- Recommended approach:
|
||||
- Keep the current UI affordances.
|
||||
- Implement edit/delete by mapping to Kilo CLI session operations (e.g. revert/undo/fork-from-message + re-run) as part of the extension-host adapter described in [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1).
|
||||
- Kilo CLI’s app UI includes session-level undo/redo/fork concepts (see command labels in [`packages/app/src/i18n/en.ts`](https://github.com/Kilo-Org/kilocode/blob/main/packages/app/src/i18n/en.ts:1)), which suggests parity exists at the session-operation layer, but not necessarily “inline edit message text”.
|
||||
- Timestamp display on messages
|
||||
- Redo previous message via up-arrow key
|
||||
- Map edit/delete to CLI session operations (fork-from-message + re-run) since CLI is the source of truth for session history
|
||||
|
||||
@@ -1,24 +1,17 @@
|
||||
# Special Content Types
|
||||
|
||||
Interactive elements for specialized message content beyond plain markdown/code.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Location
|
||||
## What Exists
|
||||
|
||||
Content type rendering is now handled by kilo-ui's `<KiloMessage>` component which includes renderers for reasoning blocks, tool results, and other part types. The old standalone components (`ReasoningBlock`, `OpenMarkdownPreviewButton`, etc.) don't exist in the new extension.
|
||||
- Reasoning blocks render as collapsible sections via `PART_MAPPING["reasoning"]`
|
||||
- Rich per-tool renderers for read, edit, write, apply_patch, bash, glob, grep, webfetch, task, todowrite, todoread, question
|
||||
- Error cards with icon, title, and message via `Card variant="error"`
|
||||
- Unregistered/MCP tools fall through to `GenericTool` display
|
||||
|
||||
## Interactions
|
||||
## Remaining Work
|
||||
|
||||
- **OpenMarkdownPreviewButton**: Opens markdown in VS Code preview
|
||||
- **ReasoningBlock**: Collapsible AI reasoning display
|
||||
- **MCP Tool/Resource Rows**: Interactive MCP server tool execution
|
||||
- **Error Rows**: Expandable error details with copy functionality
|
||||
|
||||
## Suggested migration
|
||||
|
||||
**Reimplement?** Mixed.
|
||||
|
||||
- UI components like collapsible reasoning and expandable errors can remain in the webview.
|
||||
- MCP tool/resource interactions should be revalidated:
|
||||
- If the extension remains the MCP host, keep current behavior.
|
||||
- If MCP moves to Kilo CLI (`GET /mcp` / `POST /mcp` are referenced in [`docs/opencode-core/opencode-migration-plan.md`](docs/opencode-core/opencode-migration-plan.md:1)), you’ll need adapter work to map Kilo CLI MCP events/results into the existing Kilo MCP rows.
|
||||
- “Open markdown preview in VS Code” is inherently a VS Code integration; keep it in the extension/webview.
|
||||
- Copy button on error cards (error text displays but no dedicated copy action)
|
||||
- Dedicated MCP tool/resource rows with specialized rendering (beyond generic fallback)
|
||||
- "Open markdown preview" button (opens rendered markdown in VS Code's preview pane)
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
# Toggle Thinking
|
||||
|
||||
**Priority:** P2
|
||||
**Status:** 🔨 Partial (linked)
|
||||
|
||||
## Description
|
||||
|
||||
Allow users to enable or disable "thinking" (extended reasoning) for models that support it.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Toggle control to enable/disable thinking mode
|
||||
- When thinking is enabled, model uses extended reasoning (e.g., Claude's extended thinking)
|
||||
- When thinking is disabled, model responds without extended thinking
|
||||
- Toggle should be accessible from the chat UI (e.g., in prompt input area or task header)
|
||||
- Setting should persist across sessions
|
||||
|
||||
## Current State
|
||||
|
||||
Reasoning/thinking blocks already render in the chat (collapsible sections in [`Message.tsx`](../../webview-ui/src/components/chat/Message.tsx)). A linked PR (#127) exists suggesting work is in progress.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No toggle control in the UI to enable/disable thinking
|
||||
- No setting persistence for thinking preference
|
||||
- Need to determine how to pass thinking preference to CLI backend
|
||||
@@ -0,0 +1,78 @@
|
||||
# Implementation Status Audit
|
||||
|
||||
Audit of all feature docs in `packages/kilo-vscode/docs/` subdirectories, checked against the actual codebase.
|
||||
|
||||
Fully implemented features have been removed from the plans (docs deleted). This file tracks remaining work only.
|
||||
|
||||
**Legend:**
|
||||
|
||||
- **Partially implemented** — Some aspects exist but significant gaps remain
|
||||
- **Not implemented** — No meaningful implementation exists
|
||||
|
||||
---
|
||||
|
||||
## Chat UI Features (`chat-ui-features/`)
|
||||
|
||||
| File | Status | Remaining Work |
|
||||
| ------------------------------- | --------------------- | ----------------------------------------------------------------------- |
|
||||
| `browser-session-controls.md` | Partially implemented | In-chat browser controls, action replay, screenshot viewing |
|
||||
| `checkpoint-task-management.md` | Not implemented | Checkpoint restore, navigation, "See New Changes" diff buttons |
|
||||
| `connection-state-ui.md` | Partially implemented | Loading spinner overlay, error panel with retry, reconnecting indicator |
|
||||
| `context-menus-tooltips.md` | Partially implemented | Right-click context menus on messages, tool results, code blocks |
|
||||
| `file-permission-dialogs.md` | Partially implemented | Batch approval, per-file granularity, inline rendering instead of modal |
|
||||
| `follow-up-questions.md` | Not implemented | Suggestion chips, click-to-submit, auto-approval countdown |
|
||||
| `mermaid-diagram-features.md` | Not implemented | Mermaid rendering, "Fix with AI", copy, open-as-PNG |
|
||||
| `message-editing-management.md` | Not implemented | Inline editing, deletion, timestamps, up-arrow redo |
|
||||
| `special-content-types.md` | Partially implemented | Copy on errors, MCP tool/resource rows, open-markdown-preview |
|
||||
|
||||
---
|
||||
|
||||
## Non-Agent Features (`non-agent-features/`)
|
||||
|
||||
| File | Status | Remaining Work |
|
||||
| ------------------------------------------------------- | --------------------- | ------------------------------------------------------------------- |
|
||||
| `authentication-organization-enterprise-enforcement.md` | Partially implemented | Org feature flags, MDM policy enforcement |
|
||||
| `auto-purge.md` | Not implemented | Scheduled cleanup of old session/task storage |
|
||||
| `browser-automation-url-ingestion.md` | Partially implemented | URL-to-markdown ingestion |
|
||||
| `checkpoints.md` | Partially implemented | Checkpoint service, shadow git repo, restore/diff UI |
|
||||
| `cloud-task-support.md` | Partially implemented | Upload local sessions, real-time sync, conflict resolution |
|
||||
| `code-reviews.md` | Not implemented | Local review mode, automated AI review |
|
||||
| `codebase-indexing-semantic-search.md` | Not implemented | Vector indexing, semantic search, embeddings |
|
||||
| `contribution-tracking.md` | Not implemented | AI attribution tracking, line fingerprinting, reporting |
|
||||
| `custom-command-system.md` | Not implemented | Slash commands, project-level discovery, YAML frontmatter |
|
||||
| `deploy-and-secure-surfaces.md` | Not implemented | Deploy workflows, managed indexing, security review |
|
||||
| `editor-context-menus-and-code-actions.md` | Partially implemented | Terminal content capture, custom prompt overrides |
|
||||
| `fast-edits.md` | Not implemented | Fast edit mode for inline code changes |
|
||||
| `integrations.md` | Not implemented | External system integrations (GitHub, etc.) |
|
||||
| `marketplace.md` | Not implemented | Catalog, install, update (stub exists) |
|
||||
| `mcp-and-mcp-hub.md` | Partially implemented | MCP server add/edit/delete UI, tool allowlisting, connection status |
|
||||
| `repository-initialization.md` | Not implemented | /init command support |
|
||||
| `rules-and-workflows.md` | Partially implemented | Workflow management UI (rules subtab exists) |
|
||||
| `search-and-repo-scanning-infrastructure.md` | Not implemented | Extension-side search UI beyond CLI grep/glob |
|
||||
| `settings-sync-integration.md` | Not implemented | VS Code Settings Sync allowlist |
|
||||
| `settings-ui.md` | Partially implemented | Terminal tab, Prompts tab, Workflows subtab, import/export |
|
||||
| `skills-system.md` | Partially implemented | Skill execution, discovery, hot-reload (config UI exists) |
|
||||
| `speech-to-text.md` | Not implemented | Voice input, streaming STT |
|
||||
| `terminal-shell-integration.md` | Partially implemented | Terminal content capture, general terminal integration |
|
||||
|
||||
---
|
||||
|
||||
## Infrastructure (`infrastructure/`)
|
||||
|
||||
| File | Status | Remaining Work |
|
||||
| ------------------------------- | --------------------- | ---------------------------------------------------------- |
|
||||
| `sse-auto-reconnect.md` | Not implemented | Reconnect logic, exponential backoff, "reconnecting" state |
|
||||
| `http-request-timeouts.md` | Not implemented | AbortController with timeout in HttpClient |
|
||||
| `vscode-error-notifications.md` | Partially implemented | Error notifications for core connection failures |
|
||||
| `dedicated-output-channel.md` | Partially implemented | General "Kilo Code" output channel, centralized logger |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Partially | Not |
|
||||
| ----------------------- | --------- | ------ |
|
||||
| Chat UI Features (9) | 5 | 4 |
|
||||
| Non-Agent Features (23) | 10 | 13 |
|
||||
| Infrastructure (4) | 2 | 2 |
|
||||
| **Total (36)** | **17** | **19** |
|
||||
@@ -1,31 +1,21 @@
|
||||
# Dedicated Output Channel
|
||||
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
**Status:** 🔨 Partial
|
||||
**Source:** [JetBrains plugin analysis](../../LESSONS_LEARNED_JETBRAINS.md)
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
All extension logging uses `console.log("[Kilo New] ...")` which goes to the Extension Host output channel mixed with all other extensions. A dedicated "Kilo Code" output channel would make logs easier to find and filter.
|
||||
- Agent Manager creates `vscode.window.createOutputChannel("Kilo Agent Manager")` for setup script output
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- Create a `vscode.window.createOutputChannel("Kilo Code")` during activation
|
||||
- Create a general `vscode.window.createOutputChannel("Kilo Code")` during activation
|
||||
- Centralized logging utility with log levels (debug, info, warn, error)
|
||||
- Route all `[Kilo New]` log messages to this channel
|
||||
- Keep console.log as a secondary target for debugging
|
||||
- Optionally support log levels (debug, info, warn, error)
|
||||
- Dispose the channel on deactivation
|
||||
|
||||
## Current State
|
||||
|
||||
All debug output uses `console.log("[Kilo New] ...")` per the [AGENTS.md](../../AGENTS.md) convention. Users must find extension logs in the "Extension Host" output channel and manually filter for `[Kilo New]`.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No dedicated output channel
|
||||
- No centralized logging utility
|
||||
- No log level control
|
||||
- Hard to filter Kilo logs from other extension noise
|
||||
- Migrate existing `console.log("[Kilo New] ...")` calls throughout KiloProvider, connection-service, http-client, sse-client
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
@@ -47,4 +37,4 @@ Files to change:
|
||||
|
||||
- [`src/extension.ts`](../../src/extension.ts) — create output channel
|
||||
- New file `src/utils/logger.ts` — centralized logging utility
|
||||
- All files currently using `console.log("[Kilo New] ...")` — optionally migrate
|
||||
- All files currently using `console.log("[Kilo New] ...")` — migrate to logger
|
||||
|
||||
@@ -4,32 +4,16 @@
|
||||
**Status:** ❌ Not started
|
||||
**Source:** [JetBrains plugin analysis](../../LESSONS_LEARNED_JETBRAINS.md)
|
||||
|
||||
## Description
|
||||
## Remaining Work
|
||||
|
||||
The HTTP client uses bare `fetch()` with no connect or request timeouts. A hung request (e.g., server is unresponsive but connection stays open) will block the caller indefinitely.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Add configurable request timeout (default: 60s) using `AbortController`
|
||||
- Add configurable request timeout (default: 60s) using `AbortController` in `HttpClient.request()`
|
||||
- Add shorter connect timeout where possible (default: 10s)
|
||||
- Timeout should abort the request cleanly and throw a descriptive error
|
||||
- Ensure timeout cleanup on successful response (no leaked timers)
|
||||
|
||||
## Current State
|
||||
|
||||
[`HttpClient.request()`](../../src/services/cli-backend/http-client.ts:37) calls `fetch()` directly with no `AbortController` or timeout. The only timeout in the codebase is the 30s server startup timeout in [`ServerManager`](../../src/services/cli-backend/server-manager.ts:112).
|
||||
|
||||
## Gaps
|
||||
|
||||
- No `AbortController` usage in HTTP client
|
||||
- No request timeout configuration
|
||||
- No connect timeout
|
||||
- Hung requests will block indefinitely
|
||||
Note: `HttpClient.request()` already accepts an optional `signal?: AbortSignal` parameter and passes it to `fetch()`, but no timeout is ever created — the signal is only used for user-initiated cancellation in one caller.
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
The JetBrains plugin uses 10s connect timeout and 60s request timeout. Basic pattern:
|
||||
|
||||
```typescript
|
||||
const controller = new AbortController()
|
||||
const timeout = setTimeout(() => controller.abort(), 60_000)
|
||||
|
||||
@@ -4,38 +4,17 @@
|
||||
**Status:** ❌ Not started
|
||||
**Source:** [JetBrains plugin analysis](../../LESSONS_LEARNED_JETBRAINS.md)
|
||||
|
||||
## Description
|
||||
## Remaining Work
|
||||
|
||||
The SSE connection to the CLI backend has no reconnect logic. If the connection drops (network hiccup, laptop sleep/wake, server restart), the extension goes dead with no recovery path. Users must manually reload the window.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Auto-reconnect on SSE connection loss with exponential backoff
|
||||
- Backoff starts at 2s, doubles on each failure, caps at 30s
|
||||
- Auto-reconnect on SSE connection loss with exponential backoff (2s → 4s → 8s → … → 30s cap)
|
||||
- Reset backoff delay on successful reconnect
|
||||
- Add `"reconnecting"` state to [`ConnectionState`](../../src/services/cli-backend/connection-service.ts:7)
|
||||
- Add `"reconnecting"` state to `ConnectionState` in both extension and webview
|
||||
- Surface reconnecting state in the webview UI (e.g., banner or status indicator)
|
||||
- Clean up reconnect timer on intentional disconnect/dispose
|
||||
|
||||
## Current State
|
||||
|
||||
The [`SSEClient`](../../src/services/cli-backend/sse-client.ts:13) emits `"disconnected"` on error (line 78-83) and stops. No retry logic exists.
|
||||
|
||||
[`ConnectionState`](../../src/services/cli-backend/connection-service.ts:7) only supports `"connecting" | "connected" | "disconnected" | "error"` — no `"reconnecting"`.
|
||||
|
||||
The webview [`ConnectionState`](../../webview-ui/src/types/messages.ts:6) mirrors this.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No reconnect logic in [`SSEClient`](../../src/services/cli-backend/sse-client.ts:13)
|
||||
- No `"reconnecting"` connection state
|
||||
- No webview UI for reconnecting state
|
||||
- No backoff/retry timer management
|
||||
- No cleanup of retry timers on dispose
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
The JetBrains plugin implements exponential backoff reconnection (2s → 4s → 8s → … → 30s cap). The pattern:
|
||||
The JetBrains plugin implements exponential backoff reconnection. Pattern:
|
||||
|
||||
```typescript
|
||||
// In SSEClient
|
||||
|
||||
@@ -1,32 +1,21 @@
|
||||
# VSCode Error Notifications for Critical Failures
|
||||
|
||||
**Priority:** P1
|
||||
**Status:** ❌ Not started
|
||||
**Status:** 🔨 Partial
|
||||
**Source:** [JetBrains plugin analysis](../../LESSONS_LEARNED_JETBRAINS.md)
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
Critical errors (CLI binary not found, server startup failure, connection lost) are only shown inside the webview. If the webview is not visible or hasn't loaded, users get no feedback. Platform-native error notifications should be used for critical failures.
|
||||
- `showErrorMessage()` used in peripheral services: commit message service (5 calls), Agent Manager (worktree failures), autocomplete (Copilot conflicts)
|
||||
- `showWarningMessage()` used for: reset settings confirmation, worktree git requirement
|
||||
- `showInformationMessage()` used for: terminal actions ("no terminal content available")
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- Show `vscode.window.showErrorMessage()` when CLI binary is missing
|
||||
- Show `vscode.window.showErrorMessage()` when server fails to start
|
||||
- Show `vscode.window.showErrorMessage()` when CLI binary is missing or server fails to start
|
||||
- Show `vscode.window.showWarningMessage()` when SSE connection is lost (with "Retry" action)
|
||||
- Avoid notification spam — throttle or deduplicate repeated errors
|
||||
|
||||
## Current State
|
||||
|
||||
All errors are posted to the webview as `{ type: "error" }` messages. No `vscode.window.showErrorMessage()` or `vscode.window.showWarningMessage()` calls exist in the extension host.
|
||||
|
||||
The CLI binary check at [`ServerManager.startServer()`](../../src/services/cli-backend/server-manager.ts:52) throws an error string that is caught in [`KiloProvider.initializeConnection()`](../../src/KiloProvider.ts:261) and sent to the webview only.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No `vscode.window.showErrorMessage()` for server startup failures
|
||||
- No `vscode.window.showWarningMessage()` for connection loss
|
||||
- No actionable notifications (e.g., "Retry" button)
|
||||
- Users may miss errors if webview is collapsed or not focused
|
||||
- Currently all core connection errors only go to `console.error` and webview `postMessage` — if webview is hidden, user sees nothing
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
@@ -40,4 +29,4 @@ vscode.window.showErrorMessage(`Kilo Code: Failed to start CLI server — ${erro
|
||||
Files to change:
|
||||
|
||||
- [`src/KiloProvider.ts`](../../src/KiloProvider.ts) — add `vscode.window.showErrorMessage()` calls in error paths
|
||||
- [`src/services/cli-backend/connection-service.ts`](../../src/services/cli-backend/connection-service.ts) — optionally surface critical errors to callers
|
||||
- [`src/services/cli-backend/connection-service.ts`](../../src/services/cli-backend/connection-service.ts) — surface critical errors to callers
|
||||
|
||||
+10
-16
@@ -1,21 +1,15 @@
|
||||
# Authentication / organization / enterprise enforcement
|
||||
# Authentication / Organization / Enterprise Enforcement
|
||||
|
||||
- **What it is**: Cloud auth and organization-aware behavior.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Capabilities
|
||||
## What Exists
|
||||
|
||||
- Device-code style auth.
|
||||
- Org feature flags.
|
||||
- MDM policy enforcement.
|
||||
- Full device auth flow UI with QR code, verification code, countdown, copy/open actions in `DeviceAuthCard.tsx`
|
||||
- Profile page with user header, org switching via `setOrganization`, balance display, dashboard link, logout in `ProfileView.tsx`
|
||||
- Auth methods: `removeAuth()`, `oauthAuthorize()`, `oauthCallback()`, `getProfile()`, `setOrganization()`
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Split responsibilities: Kilo CLI handles its own auth/session for server APIs.
|
||||
- The VS Code extension remains responsible for org/MDM enforcement and for supplying/mediating credentials as needed.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
Auth is handled via [`DeviceAuthCard.tsx`](../../webview-ui/src/components/DeviceAuthCard.tsx) for the device auth flow and [`ProfileView.tsx`](../../webview-ui/src/components/ProfileView.tsx) for login state display. The CLI backend manages the actual auth tokens. The old `src/services/kilocode/` and `src/services/mdm/` directories don't exist in the new extension.
|
||||
- Organization feature flags (restrict features based on org plan/tier)
|
||||
- MDM policy enforcement (managed device policies, enterprise admin controls, restriction enforcement)
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
# Auto-purge (task storage cleanup)
|
||||
# Auto-Purge (Task Storage Cleanup)
|
||||
|
||||
- **What it is**: Scheduled cleanup of old task/history storage to prevent uncontrolled disk growth.
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Decide storage ownership (server vs extension) and implement purge accordingly.
|
||||
- Until server-side storage is authoritative, keep purge logic in the extension host.
|
||||
- **Reimplementation required?**: Yes.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/auto-purge/`](../../src/services/auto-purge/)
|
||||
- Scheduled cleanup of old task/history storage to prevent uncontrolled disk growth
|
||||
- Decide storage ownership (CLI server vs extension) and implement purge accordingly
|
||||
- Configurable retention period
|
||||
- Safe deletion with user confirmation for bulk purge
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
# Browser automation + URL ingestion
|
||||
# Browser Automation & URL Ingestion
|
||||
|
||||
- **What it is**:
|
||||
- Browser control for deterministic actions and screenshots.
|
||||
- URL-to-markdown extraction for ingesting web content.
|
||||
**Priority:** P3
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Docs references
|
||||
## What Exists
|
||||
|
||||
- [`apps/kilocode-docs/pages/code-with-ai/features/browser-use.md`](../../apps/kilocode-docs/pages/code-with-ai/features/browser-use.md)
|
||||
- `BrowserAutomationService` is complete: state machine (disabled → registering → connected/failed/disconnected), Playwright MCP registration, settings toggles (enable, system Chrome, headless), reconnect on CLI backend restart
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Move URL ingestion / content fetching to Kilo CLI server (web fetch) where possible.
|
||||
- Keep browser automation in the extension host until Kilo CLI gains full automation primitives (or add a new server feature).
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/browser-automation/`](../../src/services/browser-automation/)
|
||||
- URL-to-markdown ingestion (paste a URL and have it fetched/summarized into context)
|
||||
|
||||
@@ -1,25 +1,17 @@
|
||||
# Checkpoints (shadow versioning, workspace time travel)
|
||||
# Checkpoints (Shadow Versioning, Workspace Time Travel)
|
||||
|
||||
- **What it is**: Task-scoped snapshots stored in a shadow git repository, with UI to diff/restore.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Capabilities
|
||||
## What Exists
|
||||
|
||||
- Per-task checkpoint history.
|
||||
- Restore files only vs restore files + task state.
|
||||
- Safety checks to avoid problematic paths/nested repos.
|
||||
- `CheckpointsTab` settings toggle to enable/disable snapshot creation before file edits (`config.snapshot`)
|
||||
|
||||
## Docs references
|
||||
## Remaining Work
|
||||
|
||||
- [`apps/kilocode-docs/pages/code-with-ai/features/checkpoints.md`](../../apps/kilocode-docs/pages/code-with-ai/features/checkpoints.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Evaluate whether Kilo CLI snapshots/revert semantics map to Kilo checkpoints (per-task, excludes, UX expectations).
|
||||
- If they map, delegate snapshot creation/storage/revert to Kilo CLI; otherwise keep the existing Kilo checkpoint service.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/checkpoints/`](../../src/services/checkpoints/)
|
||||
- Checkpoint service with shadow git repo for per-task snapshots
|
||||
- Restore files only vs restore files + task state
|
||||
- Safety checks to avoid problematic paths/nested repos
|
||||
- Checkpoint navigation UI (timeline/list of checkpoints per task)
|
||||
- Diff viewing between checkpoints
|
||||
- Evaluate whether CLI session undo/redo/revert maps to Kilo's checkpoint model or if extension needs its own git-based implementation
|
||||
|
||||
@@ -1,29 +1,18 @@
|
||||
# Cloud Task Support
|
||||
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
Support for persisting tasks to the Kilo cloud, and restoring sessions that were saved to the Kilo cloud but started on other devices or clients.
|
||||
- Read-only cloud session retrieval: `getCloudSessions()`, `getCloudSession()`, `importCloudSession()` HTTP methods
|
||||
- `CloudSessionList` component showing paginated cloud sessions grouped by date with repo filtering
|
||||
- Cloud session preview (read-only message display)
|
||||
- Cloud session import (one-way import into local storage)
|
||||
- "Cloud History" toolbar button in sidebar
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- Save task state to Kilo cloud storage
|
||||
- Restore/resume tasks that were started on other devices or clients
|
||||
- Sync task history across devices
|
||||
- Handle conflict resolution when tasks are modified on multiple devices
|
||||
- Require Kilo authentication for cloud features
|
||||
|
||||
## Current State
|
||||
|
||||
No cloud task support exists. Tasks are stored locally by the CLI.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No cloud sync infrastructure
|
||||
- No API endpoints for cloud task storage (may need backend work)
|
||||
- No conflict resolution strategy
|
||||
- No UI for cloud task browsing/restoring
|
||||
- Depends on [Task History](task-history.md) being implemented first
|
||||
- Depends on [Authentication](authentication-organization-enterprise-enforcement.md) for Kilo cloud access
|
||||
- Upload/sync local sessions to cloud
|
||||
- Real-time sync between devices
|
||||
- Conflict resolution when sessions are modified on multiple devices
|
||||
|
||||
@@ -1,24 +1,12 @@
|
||||
# Code reviews (local and cloud workflows)
|
||||
# Code Reviews (Local and Cloud Workflows)
|
||||
|
||||
- **What it is**: Automated AI review on PR open/update (cloud) plus a local “Review Mode”.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Review scopes (service scan)
|
||||
## Remaining Work
|
||||
|
||||
- Uncommitted (working tree).
|
||||
- Branch vs base branch (main/master/develop detection).
|
||||
|
||||
## Docs references
|
||||
|
||||
- [`apps/kilocode-docs/pages/automate/code-reviews.md`](../../apps/kilocode-docs/pages/automate/code-reviews.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Keep Kilo's review-mode UX in the VS Code extension host.
|
||||
- Optionally reuse Kilo CLI review templates/prompts server-side, but avoid depending on server UI that doesn't exist.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/review/`](../../src/services/review/)
|
||||
- Local "Review Mode" for AI review of uncommitted changes
|
||||
- Branch vs base branch review (main/master/develop detection)
|
||||
- Automated AI review on PR open/update (cloud workflow)
|
||||
- VS Code review UX integration
|
||||
- Reuse CLI review templates/prompts where available
|
||||
|
||||
@@ -1,26 +1,12 @@
|
||||
# Codebase indexing & semantic search (Code Index)
|
||||
# Codebase Indexing & Semantic Search
|
||||
|
||||
- **What it is**: Vector-based indexing and semantic search over the repository.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Capabilities
|
||||
## Remaining Work
|
||||
|
||||
- Local indexing (embeddings + local/remote vector DB).
|
||||
- Managed indexing (cloud).
|
||||
- Incremental updates via file watchers and hashing.
|
||||
- Multiple embedding providers and storage backends.
|
||||
|
||||
## Docs references
|
||||
|
||||
- [`apps/kilocode-docs/pages/customize/context/codebase-indexing.md`](../../apps/kilocode-docs/pages/customize/context/codebase-indexing.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Use Kilo CLI server grep/glob/search endpoints for basic repo scanning.
|
||||
- Keep Kilo code-index + semantic search locally for now, or plan a server-side semantic indexing equivalent.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/code-index/`](../../src/services/code-index/)
|
||||
- Vector-based indexing with embeddings (local and/or cloud)
|
||||
- Semantic search over the repository
|
||||
- Incremental updates via file watchers and hashing
|
||||
- Multiple embedding providers and storage backends
|
||||
- Integration with existing CLI grep/glob for hybrid search
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
# Contribution tracking (AI attribution)
|
||||
# Contribution Tracking (AI Attribution)
|
||||
|
||||
- **What it is**: Tracks AI-assisted modifications for organizational reporting.
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Notable characteristics
|
||||
## Remaining Work
|
||||
|
||||
- Formatting-aware diffing.
|
||||
- Line hashing/fingerprinting.
|
||||
- Token/JWT handling for attribution APIs.
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Keep contribution tracking in the VS Code extension host.
|
||||
- If required later, add server-side storage/aggregation, but assume extension ownership for now.
|
||||
- **Reimplementation required?**: Yes.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/contribution-tracking/`](../../src/services/contribution-tracking/)
|
||||
- Track AI-assisted modifications for organizational reporting
|
||||
- Formatting-aware diffing
|
||||
- Line hashing/fingerprinting
|
||||
- Token/JWT handling for attribution APIs
|
||||
- Reporting UI
|
||||
|
||||
@@ -1,21 +1,17 @@
|
||||
# Custom command system
|
||||
# Custom Command System
|
||||
|
||||
- **What it is**: Built-in + user-defined + project-defined reusable commands (often surfaced as slash commands).
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Capabilities
|
||||
## What Exists
|
||||
|
||||
- Project overrides global overrides built-in.
|
||||
- YAML frontmatter metadata.
|
||||
- Symlink-aware command discovery.
|
||||
- `CommandConfig` type in `types.ts` with `command` and `description` fields
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Prefer Kilo CLI's custom command system for definition and execution.
|
||||
- Keep VS Code UI entry points (command palette, menus) in the extension host as an adapter.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/command/`](../../src/services/command/)
|
||||
- Slash command input handling in chat (detect `/` prefix, show command list)
|
||||
- Project-level command discovery (scan `.kilocode/commands/` or similar)
|
||||
- YAML frontmatter metadata support
|
||||
- Symlink-aware command discovery
|
||||
- VS Code command palette entry points
|
||||
- Wire to CLI's custom command system for execution
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
# Deploy & Secure surfaces (navigation implies)
|
||||
# Deploy & Secure Surfaces
|
||||
|
||||
- **What it is**: Product areas hinted by docs navigation (deploy workflows, managed indexing, security reviews).
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Docs references
|
||||
## Remaining Work
|
||||
|
||||
- [`apps/kilocode-docs/lib/nav/deploy-secure.ts`](../../apps/kilocode-docs/lib/nav/deploy-secure.ts)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Keep deploy/security approval and policy UX in the VS Code extension host.
|
||||
- Add server-side policy surfaces only if/when Kilo CLI needs centralized enforcement beyond basic permissions.
|
||||
- **Reimplementation required?**: Yes.
|
||||
- Deploy workflow UI (deployment configuration and execution)
|
||||
- Managed indexing UI
|
||||
- Security review surfaces (approval and policy UX)
|
||||
|
||||
+15
-452
@@ -1,461 +1,24 @@
|
||||
# Editor Context Menus & Code Actions
|
||||
|
||||
Full spec of the VS Code-native menu, command, code action, keyboard shortcut, and prompt template system from the old Kilo Code extension. All of these need to be rebuilt in the new extension.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
> **Note:** For webview-internal context menus (right-click inside the chat panel), see [Context Menus & Tooltips (Webview)](../chat-ui-features/context-menus-tooltips.md).
|
||||
> For SCM commit message generation, see [Git Commit Message Generation](git-commit-message-generation.md).
|
||||
> This document supersedes the old stub at [`code-actions.md`](code-actions.md).
|
||||
## What Exists
|
||||
|
||||
---
|
||||
- **CodeActionProvider**: `KiloCodeActionProvider` provides lightbulb quick fixes (QuickFix for "Fix with Kilo Code" when diagnostics exist, RefactorRewrite for "Add/Explain/Improve with Kilo Code")
|
||||
- **Editor context menu**: "Kilo Code" submenu under `editor/context` with Explain, Fix, Improve, Add to Context
|
||||
- **Terminal context menu**: "Kilo Code" submenu under `terminal/context` with Add Terminal Content, Fix Command, Explain Command
|
||||
- **Keyboard shortcuts**: `Cmd+Shift+A` (focus chat), `Cmd+Shift+M` (agent manager), `Cmd+K Cmd+A` (add selection to context), plus Agent Manager shortcuts
|
||||
- **Prompt templates**: Hardcoded prompt templates for all actions
|
||||
- All commands registered in `extension.ts` and `package.json contributes`
|
||||
|
||||
## Overview
|
||||
## Remaining Work
|
||||
|
||||
The old extension registered a comprehensive set of VS Code contributions:
|
||||
- Terminal content capture — `getTerminalSelection()` is a **placeholder** returning empty string. Needs VS Code shell integration API for actual terminal content reading
|
||||
- Custom prompt overrides via extension settings (user-customizable prompt templates)
|
||||
|
||||
- A **"Kilo Code" submenu** in the editor right-click context menu
|
||||
- A **"Kilo Code" submenu** in the terminal right-click context menu
|
||||
- A **CodeActionProvider** for lightbulb quick fixes
|
||||
- **Keyboard shortcuts** for common actions
|
||||
- **Prompt templates** (user-customizable) that turn captured context into agent task instructions
|
||||
## Prompt Templates Reference
|
||||
|
||||
None of these exist yet in the rebuild.
|
||||
The following prompt templates are implemented with hardcoded defaults. The old extension allowed users to override these via `customSupportPrompts` settings — that override mechanism is the remaining gap.
|
||||
|
||||
---
|
||||
|
||||
## Editor Context Menus
|
||||
|
||||
Right-clicking in the editor shows a "Kilo Code" submenu with these commands:
|
||||
|
||||
| Command ID | Label | Captured Context | Behavior |
|
||||
| -------------- | -------------- | ------------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `explainCode` | Explain Code | File path, selected text, line range | Starts an agent task with the EXPLAIN prompt |
|
||||
| `fixCode` | Fix Code | File path, selected text, line range, diagnostics | Starts an agent task with the FIX prompt |
|
||||
| `improveCode` | Improve Code | File path, selected text, line range | Starts an agent task with the IMPROVE prompt |
|
||||
| `addToContext` | Add to Context | File path, selected text, line range | Injects formatted code block into chat input (does **not** start a task) |
|
||||
|
||||
All commands use the VS Code editor API to capture the active editor's file path (`document.uri`), current selection (`editor.selection`), and the selected text. `fixCode` additionally captures diagnostics from `vscode.languages.getDiagnostics()` for the selection range.
|
||||
|
||||
---
|
||||
|
||||
## Terminal Context Menus
|
||||
|
||||
Right-clicking in the terminal shows a "Kilo Code" submenu:
|
||||
|
||||
| Command ID | Label | Captured Context | Behavior |
|
||||
| ------------------------ | --------------- | ----------------------------------- | ----------------------------------------------------- |
|
||||
| `terminalAddToContext` | Add to Context | Terminal selection or recent buffer | Injects terminal output into chat input |
|
||||
| `terminalFixCommand` | Fix Command | Last executed command + output | Starts an agent task with the TERMINAL_FIX prompt |
|
||||
| `terminalExplainCommand` | Explain Command | Last executed command + output | Starts an agent task with the TERMINAL_EXPLAIN prompt |
|
||||
|
||||
Terminal context capture uses `vscode.window.activeTerminal` and the terminal selection API.
|
||||
|
||||
> See also [Terminal / Shell Integration](terminal-shell-integration.md) for the underlying terminal command execution and PTY management that these context menu actions depend on.
|
||||
|
||||
---
|
||||
|
||||
## Code Action Provider (Lightbulb Quick Fixes)
|
||||
|
||||
A `CodeActionProvider` is registered for all languages. When the user clicks the lightbulb or presses the quick fix shortcut:
|
||||
|
||||
| Condition | Actions shown |
|
||||
| ------------------------------ | --------------------------------------------------- |
|
||||
| Always | **Add to Kilo Code** → triggers `addToContext` |
|
||||
| Diagnostics in selection range | **Fix with Kilo Code** → triggers `fixCode` |
|
||||
| No diagnostics | **Explain with Kilo Code** → triggers `explainCode` |
|
||||
| No diagnostics | **Improve with Kilo Code** → triggers `improveCode` |
|
||||
|
||||
Controlled by the `enableCodeActions` extension setting (default: `true`).
|
||||
|
||||
---
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
| Shortcut (Mac / Win+Linux) | Command | Description |
|
||||
| ------------------------------- | ------------------------- | ----------------------------- |
|
||||
| `Cmd+Shift+A` / `Ctrl+Shift+A` | Focus chat input | Opens/focuses the chat panel |
|
||||
| `Cmd+K Cmd+A` / `Ctrl+K Ctrl+A` | Add selection to context | Runs `addToContext` |
|
||||
| `Cmd+Shift+G` / `Ctrl+Shift+G` | Generate terminal command | Starts TERMINAL_GENERATE task |
|
||||
| `Cmd+Alt+A` / `Ctrl+Alt+A` | Toggle auto-approve | Toggles auto-approval setting |
|
||||
|
||||
---
|
||||
|
||||
## Prompt Templates
|
||||
|
||||
The old extension defined prompt templates in `support-prompt.ts` that format captured context into agent task instructions. Each template is user-customizable via extension settings.
|
||||
|
||||
| Template | Used by | Purpose |
|
||||
| ------------------------- | ------------------------- | ------------------------------------------------------- |
|
||||
| `EXPLAIN` | `explainCode` | Ask the agent to explain the selected code |
|
||||
| `FIX` | `fixCode` | Ask the agent to fix code, including diagnostic details |
|
||||
| `IMPROVE` | `improveCode` | Ask the agent to improve/refactor selected code |
|
||||
| `ADD_TO_CONTEXT` | `addToContext` | Format a code block for injection into chat input |
|
||||
| `TERMINAL_ADD_TO_CONTEXT` | `terminalAddToContext` | Format terminal output for injection into chat input |
|
||||
| `TERMINAL_FIX` | `terminalFixCommand` | Ask the agent to fix a failed terminal command |
|
||||
| `TERMINAL_EXPLAIN` | `terminalExplainCommand` | Ask the agent to explain a terminal command/output |
|
||||
| `TERMINAL_GENERATE` | Generate terminal command | Ask the agent to generate a terminal command |
|
||||
| `COMMIT_MESSAGE` | SCM integration | Generate a commit message (tracked separately) |
|
||||
|
||||
---
|
||||
|
||||
## Data Flow
|
||||
|
||||
There are two distinct patterns:
|
||||
|
||||
### 1. Action → Agent Task
|
||||
|
||||
Commands like `explainCode`, `fixCode`, `improveCode`, `terminalFixCommand`, and `terminalExplainCommand` follow this flow:
|
||||
|
||||
1. User triggers command (context menu, code action, or keybinding)
|
||||
2. Extension captures context from VS Code APIs (editor selection, diagnostics, terminal buffer)
|
||||
3. Extension fills in the prompt template with captured context
|
||||
4. Extension sends the formatted prompt as a new message to the CLI session (creating a new task)
|
||||
|
||||
### 2. Action → Context Injection
|
||||
|
||||
Commands like `addToContext` and `terminalAddToContext` follow a different flow:
|
||||
|
||||
1. User triggers command
|
||||
2. Extension captures context from VS Code APIs
|
||||
3. Extension formats the context as a code block using the template
|
||||
4. Extension posts a message to the webview to **set the chat input text** (not submit it)
|
||||
5. User can review and edit before sending
|
||||
|
||||
---
|
||||
|
||||
## Implementation Notes for Rebuild
|
||||
|
||||
### `package.json` Contributions
|
||||
|
||||
Register in `contributes`:
|
||||
|
||||
- `submenus`: Define "Kilo Code" submenus for editor and terminal contexts
|
||||
- `menus`: Register commands under `editor/context` and `terminal/context` menu groups
|
||||
- `commands`: Register all command IDs with titles and icons
|
||||
- `keybindings`: Register keyboard shortcuts with `key`, `mac`, and `when` clauses
|
||||
|
||||
> **Note:** [`package.json`](../../package.json) already has `contributes.commands` (8 commands) and `contributes.menus` (`view/title` + `editor/title` menus) registered. New commands, submenus, and keybindings should be **added alongside** the existing entries, not replace them.
|
||||
|
||||
### CodeActionProvider
|
||||
|
||||
- Register a `CodeActionProvider` for `*` (all languages)
|
||||
- Check `vscode.languages.getDiagnostics()` to decide which actions to show
|
||||
- Gate behind the `enableCodeActions` setting
|
||||
- Return `CodeAction` instances with `command` set to the appropriate command ID
|
||||
|
||||
### Editor Context Capture
|
||||
|
||||
- `vscode.window.activeTextEditor` for file path, selection, document
|
||||
- `editor.document.getText(selection)` for selected text
|
||||
- `selection.start.line` / `selection.end.line` for line range
|
||||
- `vscode.languages.getDiagnostics(document.uri)` filtered to selection range for `fixCode`
|
||||
|
||||
### Terminal Context Capture
|
||||
|
||||
- `vscode.window.activeTerminal` for the active terminal
|
||||
- Terminal selection API for selected text in terminal
|
||||
- Shell integration API for last command and its output (where available)
|
||||
|
||||
### Prompt Templates
|
||||
|
||||
Need an equivalent template system in the extension. Options:
|
||||
|
||||
- Hardcode templates with settings overrides (like the old extension)
|
||||
- Delegate prompt construction to the CLI (if it supports parameterized task creation)
|
||||
|
||||
### "Add to Context" Pattern
|
||||
|
||||
The webview needs to handle an incoming message that **sets the chat input text** without submitting it. This requires:
|
||||
|
||||
- A new message type (e.g., `SetChatInput`) in the extension→webview protocol
|
||||
- The `PromptInput` component to accept externally-set text
|
||||
|
||||
---
|
||||
|
||||
## Prompt Templates (Full Text)
|
||||
|
||||
Below are the exact prompt templates from the old extension's `src/shared/support-prompt.ts`. Each template uses `${variable}` interpolation. These are the defaults; users can customize any template via the `customSupportPrompts` extension setting.
|
||||
|
||||
> **Note:** The `diagnosticText` variable used in the FIX template is auto-generated from VS Code diagnostics using the format `- [source] message (code)`.
|
||||
|
||||
### EXPLAIN
|
||||
|
||||
**Variables:** `filePath`, `startLine`, `endLine`, `userInput`, `selectedText`
|
||||
|
||||
```
|
||||
Explain the following code from file path ${filePath}:${startLine}-${endLine}
|
||||
${userInput}
|
||||
|
||||
\`\`\`
|
||||
${selectedText}
|
||||
\`\`\`
|
||||
|
||||
Please provide a clear and concise explanation of what this code does, including:
|
||||
1. The purpose and functionality
|
||||
2. Key components and their interactions
|
||||
3. Important patterns or techniques used
|
||||
```
|
||||
|
||||
### FIX
|
||||
|
||||
**Variables:** `filePath`, `startLine`, `endLine`, `diagnosticText`, `userInput`, `selectedText`
|
||||
|
||||
```
|
||||
Fix any issues in the following code from file path ${filePath}:${startLine}-${endLine}
|
||||
${diagnosticText}
|
||||
${userInput}
|
||||
|
||||
\`\`\`
|
||||
${selectedText}
|
||||
\`\`\`
|
||||
|
||||
Please:
|
||||
1. Address all detected problems listed above (if any)
|
||||
2. Identify any other potential bugs or issues
|
||||
3. Provide corrected code
|
||||
4. Explain what was fixed and why
|
||||
```
|
||||
|
||||
### IMPROVE
|
||||
|
||||
**Variables:** `filePath`, `startLine`, `endLine`, `userInput`, `selectedText`
|
||||
|
||||
```
|
||||
Improve the following code from file path ${filePath}:${startLine}-${endLine}
|
||||
${userInput}
|
||||
|
||||
\`\`\`
|
||||
${selectedText}
|
||||
\`\`\`
|
||||
|
||||
Please suggest improvements for:
|
||||
1. Code readability and maintainability
|
||||
2. Performance optimization
|
||||
3. Best practices and patterns
|
||||
4. Error handling and edge cases
|
||||
|
||||
Provide the improved code along with explanations for each enhancement.
|
||||
```
|
||||
|
||||
### ADD_TO_CONTEXT
|
||||
|
||||
**Variables:** `filePath`, `startLine`, `endLine`, `selectedText`
|
||||
|
||||
```
|
||||
${filePath}:${startLine}-${endLine}
|
||||
\`\`\`
|
||||
${selectedText}
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
### TERMINAL_ADD_TO_CONTEXT
|
||||
|
||||
**Variables:** `userInput`, `terminalContent`
|
||||
|
||||
```
|
||||
${userInput}
|
||||
Terminal output:
|
||||
\`\`\`
|
||||
${terminalContent}
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
### TERMINAL_FIX
|
||||
|
||||
**Variables:** `userInput`, `terminalContent`
|
||||
|
||||
```
|
||||
${userInput}
|
||||
Fix this terminal command:
|
||||
\`\`\`
|
||||
${terminalContent}
|
||||
\`\`\`
|
||||
|
||||
Please:
|
||||
1. Identify any issues in the command
|
||||
2. Provide the corrected command
|
||||
3. Explain what was fixed and why
|
||||
```
|
||||
|
||||
### TERMINAL_EXPLAIN
|
||||
|
||||
**Variables:** `userInput`, `terminalContent`
|
||||
|
||||
```
|
||||
${userInput}
|
||||
Explain this terminal command:
|
||||
\`\`\`
|
||||
${terminalContent}
|
||||
\`\`\`
|
||||
|
||||
Please provide:
|
||||
1. What the command does
|
||||
2. Explanation of each part/flag
|
||||
3. Expected output and behavior
|
||||
```
|
||||
|
||||
### TERMINAL*GENERATE *(Kilo-specific addition)\_
|
||||
|
||||
**Variables:** `userInput`, `operatingSystem`, `currentDirectory`, `shell`
|
||||
|
||||
```
|
||||
Generate a terminal command based on this description: "${userInput}"
|
||||
|
||||
Context:
|
||||
- Operating System: ${operatingSystem}
|
||||
- Current Directory: ${currentDirectory}
|
||||
- Shell: ${shell}
|
||||
|
||||
Requirements:
|
||||
1. Generate ONLY the command, no explanations or formatting
|
||||
2. Ensure the command is safe and appropriate
|
||||
3. Use common command-line tools and best practices
|
||||
4. Consider the current working directory context
|
||||
5. Return only the raw command that can be executed directly
|
||||
```
|
||||
|
||||
### ENHANCE
|
||||
|
||||
**Variables:** `userInput`
|
||||
|
||||
```
|
||||
Generate an enhanced version of this prompt (reply with only the enhanced prompt - no conversation, explanations, lead-in, bullet points, placeholders, or surrounding quotes):
|
||||
|
||||
${userInput}
|
||||
```
|
||||
|
||||
### CONDENSE
|
||||
|
||||
**Variables:** none (system prompt for conversation summary)
|
||||
|
||||
```
|
||||
Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
|
||||
This summary should be thorough in capturing technical details, code patterns, and architectural decisions that would be essential for continuing with the conversation and supporting any continuing tasks.
|
||||
|
||||
Your summary should be structured as follows:
|
||||
Context: The context to continue the conversation with. If applicable based on the current task, this should include:
|
||||
1. Previous Conversation: High level details about what was discussed throughout the entire conversation with the user. This should be written to allow someone to be able to follow the general overarching conversation flow.
|
||||
2. Current Work: Describe in detail what was being worked on prior to this request to summarize the conversation. Pay special attention to the more recent messages in the conversation.
|
||||
3. Key Technical Concepts: List all important technical concepts, technologies, coding conventions, and frameworks discussed, which might be relevant for continuing with this work.
|
||||
4. Relevant Files and Code: If applicable, enumerate specific files and code sections examined, modified, or created for the task continuation. Pay special attention to the most recent messages and changes.
|
||||
5. Problem Solving: Document problems solved thus far and any ongoing troubleshooting efforts.
|
||||
6. Pending Tasks and Next Steps: Outline all pending tasks that you have explicitly been asked to work on, as well as list the next steps you will take for all outstanding work, if applicable. Include code snippets where they add clarity. For any next steps, include direct quotes from the most recent conversation showing exactly what task you were working on and where you left off. This should be verbatim to ensure there's no information loss in context between tasks.
|
||||
|
||||
Example summary structure:
|
||||
1. Previous Conversation:
|
||||
[Detailed description]
|
||||
2. Current Work:
|
||||
[Detailed description]
|
||||
3. Key Technical Concepts:
|
||||
- [Concept 1]
|
||||
- [Concept 2]
|
||||
- [...]
|
||||
4. Relevant Files and Code:
|
||||
- [File Name 1]
|
||||
- [Summary of why this file is important]
|
||||
- [Summary of the changes made to this file, if any]
|
||||
- [Important Code Snippet]
|
||||
- [File Name 2]
|
||||
- [Important Code Snippet]
|
||||
- [...]
|
||||
5. Problem Solving:
|
||||
[Detailed description]
|
||||
6. Pending Tasks and Next Steps:
|
||||
- [Task 1 details & next steps]
|
||||
- [Task 2 details & next steps]
|
||||
- [...]
|
||||
|
||||
Output only the summary of the conversation so far, without any additional commentary or explanation.
|
||||
```
|
||||
|
||||
### COMMIT*MESSAGE *(Kilo-specific addition, tracked separately in [git-commit-message-generation.md](git-commit-message-generation.md))\_
|
||||
|
||||
**Variables:** `customInstructions`, `gitContext`
|
||||
|
||||
````
|
||||
# Conventional Commit Message Generator
|
||||
## System Instructions
|
||||
You are an expert Git commit message generator that creates conventional commit messages based on staged changes. Analyze the provided git diff output and generate appropriate conventional commit messages following the specification.
|
||||
|
||||
${customInstructions}
|
||||
|
||||
## CRITICAL: Commit Message Output Rules
|
||||
- DO NOT include any internal status indicators or bracketed metadata (e.g. "[Status: Active]", "[Context: Missing]")
|
||||
- DO NOT include any task-specific formatting or artifacts from other rules
|
||||
- ONLY Generate a clean conventional commit message as specified below
|
||||
|
||||
${gitContext}
|
||||
|
||||
## Conventional Commits Format
|
||||
Generate commit messages following this exact structure:
|
||||
```
|
||||
<type>[optional scope]: <description>
|
||||
[optional body]
|
||||
[optional footer(s)]
|
||||
```
|
||||
|
||||
### Core Types (Required)
|
||||
- **feat**: New feature or functionality (MINOR version bump)
|
||||
- **fix**: Bug fix or error correction (PATCH version bump)
|
||||
|
||||
### Additional Types (Extended)
|
||||
- **docs**: Documentation changes only
|
||||
- **style**: Code style changes (whitespace, formatting, semicolons, etc.)
|
||||
- **refactor**: Code refactoring without feature changes or bug fixes
|
||||
- **perf**: Performance improvements
|
||||
- **test**: Adding or fixing tests
|
||||
- **build**: Build system or external dependency changes
|
||||
- **ci**: CI/CD configuration changes
|
||||
- **chore**: Maintenance tasks, tooling changes
|
||||
- **revert**: Reverting previous commits
|
||||
|
||||
### Scope Guidelines
|
||||
- Use parentheses: `feat(api):`, `fix(ui):`
|
||||
- Common scopes: `api`, `ui`, `auth`, `db`, `config`, `deps`, `docs`
|
||||
- For monorepos: package or module names
|
||||
- Keep scope concise and lowercase
|
||||
|
||||
### Description Rules
|
||||
- Use imperative mood ("add" not "added" or "adds")
|
||||
- Start with lowercase letter
|
||||
- No period at the end
|
||||
- Maximum 50 characters
|
||||
- Be concise but descriptive
|
||||
|
||||
### Body Guidelines (Optional)
|
||||
- Start one blank line after description
|
||||
- Explain the "what" and "why", not the "how"
|
||||
- Wrap at 72 characters per line
|
||||
- Use for complex changes requiring explanation
|
||||
|
||||
### Footer Guidelines (Optional)
|
||||
- Start one blank line after body
|
||||
- **Breaking Changes**: `BREAKING CHANGE: description`
|
||||
|
||||
## Analysis Instructions
|
||||
When analyzing staged changes:
|
||||
1. Determine Primary Type based on the nature of changes
|
||||
2. Identify Scope from modified directories or modules
|
||||
3. Craft Description focusing on the most significant change
|
||||
4. Determine if there are Breaking Changes
|
||||
5. For complex changes, include a detailed body explaining what and why
|
||||
6. Add appropriate footers for issue references or breaking changes
|
||||
|
||||
For significant changes, include a detailed body explaining the changes.
|
||||
|
||||
Return ONLY the commit message in the conventional format, nothing else.
|
||||
````
|
||||
|
||||
### NEW_TASK
|
||||
|
||||
**Variables:** `userInput`
|
||||
|
||||
```
|
||||
${userInput}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Already Done / Tracked Elsewhere
|
||||
|
||||
- **View title bar buttons**: ✅ Done ([#181](https://github.com/Kilo-Org/kilocode/issues/181))
|
||||
- **SCM commit message generation**: Tracked in [git-commit-message-generation.md](git-commit-message-generation.md)
|
||||
Templates: EXPLAIN, FIX, IMPROVE, ADD_TO_CONTEXT, TERMINAL_ADD_TO_CONTEXT, TERMINAL_FIX, TERMINAL_EXPLAIN, TERMINAL_GENERATE, ENHANCE, CONDENSE, COMMIT_MESSAGE, NEW_TASK
|
||||
|
||||
@@ -1,20 +1,11 @@
|
||||
# Fast edits (diff-based editing)
|
||||
# Fast Edits (Diff-Based Editing)
|
||||
|
||||
- **What it is**: A file-editing strategy preference to apply diffs/patches rather than rewriting full files.
|
||||
- **Why it matters**: Improves speed and reduces risk of truncation/large rewrites; includes match-precision tuning.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Docs references
|
||||
## Remaining Work
|
||||
|
||||
- [`apps/kilocode-docs/pages/code-with-ai/features/fast-edits.md`](../../apps/kilocode-docs/pages/code-with-ai/features/fast-edits.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Prefer Kilo CLI server patch/apply tooling for generating and applying edits.
|
||||
- Keep VS Code-specific diff/preview/confirmation UX in the extension host.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Implementation notes
|
||||
|
||||
- This often spans “tooling” and edit-application code, and may not appear as a single service directory under `src/services`.
|
||||
- Fast edit mode for quick inline code changes (apply diffs/patches rather than rewriting full files)
|
||||
- VS Code-specific diff/preview/confirmation UX
|
||||
- Match-precision tuning
|
||||
- CLI has fast-edit runtime — extension needs UI integration
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
# Git commit message generation
|
||||
|
||||
- **What it is**: Generates commit messages from git context (commonly staged changes; some implementations also consider selected files).
|
||||
|
||||
## Notable characteristics
|
||||
|
||||
- VS Code Source Control integration (fills commit message box).
|
||||
- Filtering for lockfiles/build noise.
|
||||
- Regeneration support to avoid repeating similar messages.
|
||||
- Adapter support for JetBrains.
|
||||
|
||||
## Docs references
|
||||
|
||||
- [`apps/kilocode-docs/pages/code-with-ai/features/git-commit-generation.md`](../../apps/kilocode-docs/pages/code-with-ai/features/git-commit-generation.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Keep commit message generation in the VS Code extension host (Git integration, UX, and local repo context).
|
||||
- Reimplement any agent-loop dependencies as needed, but do not block on server support.
|
||||
- **Reimplementation required?**: Yes.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/commit-message/`](../../src/services/commit-message/)
|
||||
@@ -1,15 +1,10 @@
|
||||
# Integrations (for example GitHub connectivity)
|
||||
# Integrations (External System Connectivity)
|
||||
|
||||
- **What it is**: Connecting external systems (notably GitHub) to enable higher-level workflows.
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Docs references
|
||||
## Remaining Work
|
||||
|
||||
- [`apps/kilocode-docs/pages/automate/integrations.md`](../../apps/kilocode-docs/pages/automate/integrations.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Partial.
|
||||
- **Migration recommendation**:
|
||||
- Use Kilo CLI's plugin system where it covers the integration (non-IDE-specific).
|
||||
- Keep IDE-specific integrations (VS Code APIs, UI hooks) in the extension and decide per integration.
|
||||
- **Reimplementation required?**: Partial.
|
||||
- External system integrations (GitHub, Jira, Linear, Slack, etc.)
|
||||
- IDE-specific integration hooks (VS Code APIs)
|
||||
- Use CLI's plugin system for non-IDE-specific integrations
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
# Marketplace (installable Modes, MCP servers, Skills)
|
||||
# Marketplace (Installable Modes, MCP Servers, Skills)
|
||||
|
||||
- **What it is**: A catalog-driven install system for extending Kilo Code via remote configs.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Installs
|
||||
## What Exists
|
||||
|
||||
- Modes (behavior packages).
|
||||
- MCP servers (tool servers).
|
||||
- Skills (reusable instruction packs).
|
||||
- Toolbar button registered (`kilo-code.new.marketplaceButtonClicked`) with `$(extensions)` icon
|
||||
- Renders `<DummyView title="Marketplace" />` — a placeholder with no functionality
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Keep the Marketplace feature in the VS Code extension host (install/update UX and IDE integration).
|
||||
- Reimplement server-side support only if Kilo CLI introduces a marketplace concept later.
|
||||
- **Reimplementation required?**: Yes.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
No marketplace service directory exists in the new extension. The marketplace feature needs to be built from scratch.
|
||||
- Catalog browsing (Modes, MCP servers, Skills)
|
||||
- Install/uninstall/update capabilities
|
||||
- Marketplace API endpoints (may need backend work)
|
||||
- Search and filtering within the catalog
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
# MCP (Model Context Protocol) + MCP Hub
|
||||
# MCP (Model Context Protocol) & MCP Hub
|
||||
|
||||
- **What it is**: A protocol for connecting external tool/resource servers, plus a hub that manages MCP connections.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Capabilities
|
||||
## What Exists
|
||||
|
||||
- Multiple transports (local stdio, remote HTTP/SSE).
|
||||
- OAuth support for remote servers.
|
||||
- Allowlisting/disablement of tools.
|
||||
- Auto-reconnect and error history.
|
||||
- HTTP client methods: `getMcpStatus()`, `addMcpServer()`, `connectMcpServer()`, `disconnectMcpServer()`
|
||||
- `BrowserAutomationService` uses MCP API to register Playwright MCP server
|
||||
- AgentBehaviour settings tab has "MCP Servers" subtab showing a **read-only list** of configured MCP servers (names, commands/args, URLs)
|
||||
|
||||
## Docs references
|
||||
## Remaining Work
|
||||
|
||||
- [`apps/kilocode-docs/pages/automate/mcp/overview.md`](../../apps/kilocode-docs/pages/automate/mcp/overview.md)
|
||||
|
||||
## Suggested migration
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Prefer Kilo CLI server MCP endpoints for MCP lifecycle, tool routing, and execution.
|
||||
- Keep VS Code UI and approval/consent surfaces in the extension host.
|
||||
- **Reimplementation required?**: No.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
MCP is managed by the CLI backend, not local extension services. The extension interacts with MCP via HTTP client methods in [`http-client.ts`](../../src/services/cli-backend/http-client.ts): `getMcpStatus`, `addMcpServer`, `connectMcpServer`, `disconnectMcpServer`. The [`BrowserAutomationService`](../../src/services/browser-automation/browser-automation-service.ts) uses these methods to register Playwright as an MCP server.
|
||||
- Add/edit/delete MCP server controls in the settings UI
|
||||
- Connect/disconnect controls per server
|
||||
- Tool allowlisting/disablement per server
|
||||
- Connection status display per server (connected/disconnected/error)
|
||||
- Auto-reconnect and error history display
|
||||
- MCP Hub for discovering available MCP servers
|
||||
|
||||
@@ -3,25 +3,12 @@
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Description
|
||||
## Remaining Work
|
||||
|
||||
Support for the `/init` command — initialize a repository for agentic engineering. This sets up the project with appropriate configuration files, rules, and conventions for working with Kilo Code.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Command or button to initialize a repository
|
||||
- Creates appropriate configuration files (e.g., AGENTS.md, .kilocode/ directory)
|
||||
- Command or button to initialize a repository for agentic engineering
|
||||
- Creates configuration files (e.g., AGENTS.md, .kilocode/ directory)
|
||||
- Detects existing project structure and tailors initialization
|
||||
- May scaffold rules, workflows, or skill configurations
|
||||
- Should be accessible from VS Code command palette and/or chat UI
|
||||
|
||||
## Current State
|
||||
|
||||
No initialization support exists in the extension. The CLI supports `/init`.
|
||||
|
||||
## Gaps
|
||||
|
||||
- No init command registered in the extension
|
||||
- No UI for triggering initialization
|
||||
- Need to determine if this calls a CLI endpoint or replicates CLI logic
|
||||
- No progress/status feedback during initialization
|
||||
- Accessible from VS Code command palette and/or chat UI
|
||||
- Determine if this calls a CLI `/init` endpoint or replicates CLI logic
|
||||
- Progress/status feedback during initialization
|
||||
|
||||
@@ -1,28 +1,16 @@
|
||||
# Rules & Workflows
|
||||
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
Support for rules and workflows. Rules define constraints and guidelines for the AI agent. Workflows define multi-step automated processes.
|
||||
- Rules subtab in AgentBehaviour settings allows managing instruction file paths (add/remove paths like `./INSTRUCTIONS.md`), persisted to `config.instructions`
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- View and manage rules (project-level, user-level, global)
|
||||
- Create/edit/delete rules via the extension UI
|
||||
- View and manage workflows
|
||||
- Rules are applied to agent sessions automatically
|
||||
- Workflow management UI (currently a `<Placeholder>` stub in AgentBehaviour settings)
|
||||
- Workflow definition and execution format
|
||||
- UI for browsing `.kilocode/rules/` and similar rule sources
|
||||
|
||||
## Current State
|
||||
|
||||
No rules or workflow UI exists. The CLI backend supports rules (AGENTS.md, .kilocode/rules/).
|
||||
|
||||
## Gaps
|
||||
|
||||
- No rules management UI
|
||||
- No workflow definition or execution UI
|
||||
- Need to determine CLI endpoints for rules CRUD
|
||||
- Need to determine workflow format and execution model
|
||||
- Determine CLI endpoints for workflow CRUD
|
||||
- Related to [Custom Commands](custom-command-system.md) and [Skills System](skills-system.md)
|
||||
|
||||
+9
-13
@@ -1,18 +1,14 @@
|
||||
# Search & repo scanning infrastructure
|
||||
# Search & Repo Scanning Infrastructure
|
||||
|
||||
- **What it is**: High-performance repo scanning and search utilities used across multiple features.
|
||||
**Priority:** P2
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Suggested migration
|
||||
## What Exists
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Delegate grep/glob/repo scanning to Kilo CLI server endpoints.
|
||||
- Keep VS Code UX (search UI, previews, navigation) in the extension host.
|
||||
- **Reimplementation required?**: No.
|
||||
- `findFiles()` for fuzzy filename matching via CLI `/find/file` endpoint (used for `@` mentions)
|
||||
|
||||
## Primary implementation anchors
|
||||
## Remaining Work
|
||||
|
||||
- [`src/services/ripgrep/`](../../src/services/ripgrep/)
|
||||
- [`src/services/search/`](../../src/services/search/)
|
||||
- [`src/services/glob/`](../../src/services/glob/)
|
||||
- [`src/services/roo-config/`](../../src/services/roo-config/)
|
||||
- Search UI for grep/glob results within VS Code
|
||||
- Result previews and navigation
|
||||
- Extension-side search infrastructure (currently all search tools are CLI backend-only)
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
# Settings Sync integration
|
||||
# Settings Sync Integration
|
||||
|
||||
- **What it is**: Registers an allowlist of extension state/settings for VS Code settings sync.
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Not present.
|
||||
- **Migration recommendation**:
|
||||
- Keep Settings Sync integration in the VS Code extension host (VS Code Settings Sync APIs).
|
||||
- Optionally mirror a subset of settings into Kilo CLI config, but do not require server support.
|
||||
- **Reimplementation required?**: Yes.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/settings-sync/`](../../src/services/settings-sync/)
|
||||
- Register allowlist of extension state/settings for VS Code Settings Sync
|
||||
- Determine which settings should sync (extension settings in `settings.json` vs CLI config)
|
||||
- Optionally mirror a subset of settings into CLI config
|
||||
|
||||
@@ -3,23 +3,13 @@
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Description
|
||||
## What Exists
|
||||
|
||||
Replicate the settings that are available in OpenCode (CLI) and allow users to customize them through the VS Code extension UI.
|
||||
12 of 14 tabs are functional: Providers, AgentBehaviour (agents/MCP/rules/skills subtabs work; workflows is a stub), AutoApprove, Browser, Checkpoints, Display, Autocomplete, Notifications, Context, Experimental, Language, About Kilo Code.
|
||||
|
||||
## Requirements
|
||||
## Remaining Work
|
||||
|
||||
- Settings UI that mirrors OpenCode's configuration options
|
||||
- Organized into logical tabs/sections
|
||||
- Settings persist and sync with CLI configuration
|
||||
- Changes take effect immediately or with clear save/apply semantics
|
||||
- Include all major setting categories: providers, models, behaviour, display, etc.
|
||||
|
||||
## Current State
|
||||
|
||||
14 tabs are functional: Providers (model selection + allow/block lists), AgentBehaviour (MCP read-only, rules, skills), AutoApprove (per-tool allow/ask/deny dropdowns), Browser, Autocomplete, Display, Notifications, Context, Terminal, Prompts, Experimental, Language, AboutKiloCode.
|
||||
|
||||
## Gaps
|
||||
|
||||
- Workflows subtab inside AgentBehaviour is a `<Placeholder>` (not implemented)
|
||||
- No import/export settings functionality
|
||||
- **Terminal tab**: Shows "Not implemented" message
|
||||
- **Prompts tab**: Shows "Not implemented" message
|
||||
- **Workflows subtab** (inside AgentBehaviour): Renders a `<Placeholder>` with no functionality
|
||||
- Import/export settings functionality
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# Skills system
|
||||
# Skills System
|
||||
|
||||
- **What it is**: Discovery and management of local skills (instruction packs) with override and hot reload behavior.
|
||||
**Priority:** P2
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Suggested migration
|
||||
## What Exists
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Prefer Kilo CLI skills as the execution/runtime mechanism.
|
||||
- Keep packaging/shipping of Kilo-specific skills and any VS Code UI around them in the extension host.
|
||||
- **Reimplementation required?**: Partial.
|
||||
- AgentBehaviour settings "skills" subtab manages skill paths (local directories) and skill URLs (remote endpoints), persisted to `config.skills.paths` and `config.skills.urls`
|
||||
|
||||
## Primary implementation anchors
|
||||
## Remaining Work
|
||||
|
||||
- [`src/services/skills/`](../../src/services/skills/)
|
||||
- Skill execution runtime integration in the extension
|
||||
- Skill discovery (browse available skills)
|
||||
- Hot-reload when skill files change
|
||||
- CLI has the skills runtime — extension needs UI beyond config management
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
# Speech-to-text (voice input)
|
||||
# Speech-to-Text (Voice Input)
|
||||
|
||||
- **What it is**: A streaming STT subsystem for dictation/voice input.
|
||||
**Priority:** P3
|
||||
**Status:** ❌ Not started
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Keep speech capture and UX in the webview/UI (microphone permissions and streaming).
|
||||
- Use Kilo CLI-compatible STT flows where helpful, but avoid making STT a required server capability.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Primary implementation anchors
|
||||
|
||||
- [`src/services/stt/`](../../src/services/stt/)
|
||||
- Microphone capture in webview
|
||||
- Streaming STT integration
|
||||
- Voice input button in prompt area
|
||||
- Determine STT provider (browser API, CLI-compatible, or external service)
|
||||
|
||||
@@ -1,19 +1,16 @@
|
||||
# Terminal / shell integration
|
||||
# Terminal / Shell Integration
|
||||
|
||||
- **What it is**: Execute terminal commands and capture output without manual copy/paste, tracking exit codes and working directory changes.
|
||||
**Priority:** P1
|
||||
**Status:** 🔨 Partial
|
||||
|
||||
## Docs references
|
||||
## What Exists
|
||||
|
||||
- [`apps/kilocode-docs/pages/automate/extending/shell-integration.md`](../../apps/kilocode-docs/pages/automate/extending/shell-integration.md)
|
||||
- Agent Manager's `SetupScriptRunner` uses `terminal.shellIntegration` for setup scripts with exit code tracking (with fallback to `sendText`)
|
||||
- Terminal context menu actions registered (Add Content, Fix Command, Explain Command) but content capture is a stub
|
||||
|
||||
## Suggested migration
|
||||
## Remaining Work
|
||||
|
||||
- **Kilo CLI availability**: Already.
|
||||
- **Migration recommendation**:
|
||||
- Delegate command execution and PTY/shell management to Kilo CLI server endpoints.
|
||||
- Keep VS Code terminal UX (presentation, streaming, approvals) in the extension as an adapter.
|
||||
- **Reimplementation required?**: Partial.
|
||||
|
||||
## Implementation notes
|
||||
|
||||
- Some shell integration may live outside `src/services` (for example in tool implementations), but is a foundational automation substrate.
|
||||
- `getTerminalSelection()` implementation — currently returns empty string, needs VS Code shell integration API
|
||||
- General terminal integration for AI command execution display
|
||||
- Exit code tracking for command execution
|
||||
- Working directory change detection
|
||||
|
||||
@@ -6,107 +6,51 @@ This extension is a **ground-up rebuild** of the [old Kilo Code extension](https
|
||||
|
||||
This document tracks remaining work needed for feature parity with the old extension. Each feature links to its detailed parity requirement doc. Features sourced from the [GitHub project board](https://github.com/orgs/Kilo-Org/projects/25/views/1) include issue links.
|
||||
|
||||
## Current State Summary
|
||||
|
||||
The rebuild has a working foundation:
|
||||
|
||||
- **CLI backend**: server lifecycle (spawn, port detection, auth, dispose) in [`server-manager.ts`](../src/services/cli-backend/server-manager.ts), HTTP client with 20 endpoints in [`http-client.ts`](../src/services/cli-backend/http-client.ts), SSE client with event subscriptions in [`sse-client.ts`](../src/services/cli-backend/sse-client.ts)
|
||||
- **Chat UI**: message list with text/tool/reasoning parts, streaming text deltas, auto-scroll in [`ChatView.tsx`](../webview-ui/src/components/chat/ChatView.tsx) and [`MessageList.tsx`](../webview-ui/src/components/chat/MessageList.tsx). Markdown rendering via kilo-ui's `<KiloMessage>` component with syntax-highlighted code blocks and per-tool renderers.
|
||||
- **Tool parts**: delegation to kilo-ui per-tool renderers with status icons, expandable input/output sections, status-based styling in [`Message.tsx`](../webview-ui/src/components/chat/Message.tsx)
|
||||
- **Prompt input**: send/abort controls with integrated model selector and mode switcher in [`PromptInput.tsx`](../webview-ui/src/components/chat/PromptInput.tsx)
|
||||
- **Permissions**: rendered through kilo-ui's DataProvider/permission components — reject/once/always with expandable tool details
|
||||
- **Sessions**: create, list, select, load messages via [`session.tsx`](../webview-ui/src/context/session.tsx)
|
||||
- **Todo list**: `todo.updated` SSE event → session store → kilo-ui `PART_MAPPING["todowrite"]` renders todo lists with checkboxes
|
||||
- **Auth**: full device auth flow with QR code, verification code, countdown in [`DeviceAuthCard.tsx`](../webview-ui/src/components/DeviceAuthCard.tsx); org switching implemented
|
||||
- **Profile**: login state, balance, dashboard link, logout in [`ProfileView.tsx`](../webview-ui/src/components/ProfileView.tsx)
|
||||
- **Session history**: search, date-grouped list, relative timestamps, rename/delete in [`SessionList.tsx`](../webview-ui/src/components/history/SessionList.tsx)
|
||||
- **Settings**: 14-tab settings (Providers, AgentBehaviour, AutoApprove, Browser, Autocomplete, Display, Notifications, Context, Terminal, Prompts, Experimental, Language, AboutKiloCode — all functional; Workflows subtab is a placeholder) in [`Settings.tsx`](../webview-ui/src/components/Settings.tsx)
|
||||
- **Message protocol**: 41 message types (22 ExtensionMessage + 19 WebviewMessage) in [`messages.ts`](../webview-ui/src/types/messages.ts)
|
||||
- **Build pipeline**: dual esbuild (extension + webview), CLI binary provisioning in [`esbuild.js`](../esbuild.js) and [`prepare-cli-binary.mjs`](../scripts/prepare-cli-binary.mjs)
|
||||
- **View title bar button**: ✅ Done —
|
||||
- **Browser automation**: Playwright MCP integration with settings toggle, lifecycle service, and CLI MCP hub registration in [`BrowserAutomationService`](../src/services/browser-automation/browser-automation-service.ts)
|
||||
- **kilo-ui integration**: Webview uses `@kilocode/kilo-ui` shared component library — ThemeProvider, MarkedProvider, DataProvider, Button, IconButton, Tooltip, Popover, Switch, Select, Toast, KiloMessage
|
||||
- **Task header**: Session title, cost display, context token usage with percentage, compact button in [`TaskHeader.tsx`](../webview-ui/src/components/chat/TaskHeader.tsx)
|
||||
- **Model selector**: Popover-based model picker with search, provider grouping, free model tags in [`ModelSelector.tsx`](../webview-ui/src/components/chat/ModelSelector.tsx)
|
||||
- **Mode switcher**: Agent/mode selector with descriptions in [`ModeSwitcher.tsx`](../webview-ui/src/components/chat/ModeSwitcher.tsx)
|
||||
- **Localization**: Full i18n system with 16 locales, three-layer dict merging, locale auto-detection in [`language.tsx`](../webview-ui/src/context/language.tsx) and [`i18n/`](../webview-ui/src/i18n/)
|
||||
- **Context compaction**: summarize endpoint + CompactRequest message + compact button in TaskHeader
|
||||
- **Code blocks**: copy buttons, expand/collapse, syntax highlighting via kilo-ui KiloMessage + MarkedProvider + shiki
|
||||
- **Diff viewing**: full diff viewer via kilo-ui `Diff`/`DiffChanges` components for file edit/write/patch tools
|
||||
- **Command execution**: expandable bash tool output in BasicTool accordion via kilo-ui PART_MAPPING["bash"]
|
||||
- **Image handling**: clipboard paste, drag-and-drop, thumbnails in PromptInput, ImagePreview dialog in [`useImageAttachments.ts`](../webview-ui/src/hooks/useImageAttachments.ts)
|
||||
- **Autocomplete**: FIM inline completions via `AutocompleteInlineCompletionProvider` with debouncing, LRU cache, tree-sitter context
|
||||
- **Agent Manager**: parallel worktree sessions, git worktree lifecycle, WorktreeSelector in [`AgentManagerProvider.ts`](../src/agent-manager/AgentManagerProvider.ts)
|
||||
- **Telemetry**: `TelemetryProxy` POSTs to CLI `/telemetry/capture`; webview telemetry forwarded via message protocol
|
||||
- **Auto-approval config**: per-tool allow/ask/deny dropdowns for all 16 tools in AutoApproveTab
|
||||
- **Provider configuration**: default/small model selection, disabled/enabled provider lists in ProvidersTab
|
||||
|
||||
---
|
||||
|
||||
## Chat UI Feature Parity
|
||||
|
||||
| Feature | Status | Details | Backend | Priority |
|
||||
| -------------------------------------------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | -------- |
|
||||
| Auto-Approval Controls | ✅ Done | `AutoApproveTab` in Settings implements per-tool allow/ask/deny dropdowns for all 16 tools with a "Set All" bulk control. Changes written to backend config via `updateConfig({ permission: {...} })`. | CLI owns permissions; webview needs config UI | P1 |
|
||||
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | 🔨 Partial | BrowserTab settings UI implemented with enable/disable toggle, system Chrome and headless options. Missing: in-chat browser session controls, action replay, screenshot viewing. | CLI-side (if browser tool exists) + webview | P3 |
|
||||
| [Checkpoint & Task Management](chat-ui-features/checkpoint-task-management.md) | ❌ Not started | No checkpoint restore, navigation, or "See New Changes" diff buttons. | CLI session undo/redo/fork + extension git integration | P1 |
|
||||
| Code Block Interactions | ✅ Done | Code blocks render with syntax highlighting, copy buttons, and expand/collapse via kilo-ui's KiloMessage + MarkedProvider + shiki. User messages and assistant text parts both have copy buttons. | Webview-only | P0 |
|
||||
| Command Execution | ✅ Done | Bash tool output renders in an expandable BasicTool accordion via kilo-ui's PART_MAPPING["bash"]. Command output shown in a scrollable code block with ANSI stripping. | CLI executes commands; webview renders output | P0 |
|
||||
| [Connection State UI](chat-ui-features/connection-state-ui.md) | 🔨 Partial | `ServerProvider` context tracks `connectionState` ("connecting"/"connected"/"disconnected"/"error"). Prompt input is disabled when disconnected. Missing: dedicated blocking spinner/error panel overlay. | Webview-only (consumes connection state) | P0 |
|
||||
| [Context Menus & Tooltips](chat-ui-features/context-menus-tooltips.md) | ❌ Not started | No right-click context menus or hover tooltips on interactive elements. | Webview-only | P2 |
|
||||
| Diff Viewing & File Operations | ✅ Done | Full diff viewer via kilo-ui `Diff` + `DiffChanges` components (built on `@pierre/diffs`) with line selection, find shortcuts, and worker-pool syntax highlighting. `DiffComponentProvider` registered in App.tsx. File edit/write/patch tools all use this. | CLI provides diff data; webview renders | P0 |
|
||||
| [File Permission Dialogs](chat-ui-features/file-permission-dialogs.md) | 🔨 Partial | Basic permission dialog exists (reject/once/always). Missing batch file read approval and per-file granularity. | CLI permission model; webview UI | P1 |
|
||||
| [Follow-Up Questions](chat-ui-features/follow-up-questions.md) | ❌ Not started | No suggested reply chips, click-to-submit, auto-approval countdown, or mode indicators. | Likely extension-side generation | P2 |
|
||||
| Image Handling | ✅ Done | `useImageAttachments` hook handles clipboard paste, drag-and-drop, and file reading. Thumbnails with remove buttons shown in PromptInput. kilo-ui `ImagePreview` dialog for viewing attached images in messages. | CLI provides image data; webview renders + VS Code integration | P1 |
|
||||
| [Inline Actions on Tool Messages](chat-ui-features/inline-actions-on-tool-messages.md) | 🔨 Partial | Tool parts render with status icons (⏳⚙️✓✕), expandable sections with input/output, and status-based CSS classes. File path links render as clickable anchors in tool subtitles via kilo-ui. Missing: explicit VS Code file-opener wired via postMessage, inline action buttons. | CLI provides tool metadata; webview renders | P1 |
|
||||
| Kilo Themed Chat Session | ✅ Done | kilo-ui components throughout: ThemeProvider with `defaultTheme="kilo-vscode"`, KiloMessage for rendering, MarkedProvider for markdown, Button/IconButton/Tooltip/Popover from kilo-ui. | Webview-only (styling/theming) | P0 |
|
||||
| Markdown Rendering | ✅ Done | Message.tsx delegates to kilo-ui's `<KiloMessage>` component. MarkedProvider in App.tsx provides markdown context. Syntax highlighting via shiki. | Webview-only | P0 |
|
||||
| [Mermaid Diagram Features](chat-ui-features/mermaid-diagram-features.md) | ❌ Not started | No mermaid rendering, "Fix with AI" button, copy, or open-as-PNG. Requires markdown rendering first. | Webview-only (rendering); CLI for "Fix with AI" | P2 |
|
||||
| [Message Editing & Management](chat-ui-features/message-editing-management.md) | ❌ Not started | No inline editing, deletion, timestamp display, or redo-previous-message (up-arrow). | CLI session fork/undo for edit semantics | P1 |
|
||||
| [Special Content Types](chat-ui-features/special-content-types.md) | 🔨 Partial | Reasoning blocks render (collapsible). Missing: open-markdown-preview button, MCP tool/resource rows, expandable error rows with copy. | Mixed: CLI for MCP data; webview for rendering | P1 |
|
||||
| Task Header | ✅ Done | TaskHeader.tsx implements session title, cost display (formatted USD), context token usage with percentage, compact button with tooltip. Uses kilo-ui IconButton and Tooltip. | CLI provides cost/context data; webview renders | P0 |
|
||||
| Todo List Management | ✅ Done | `todo.updated` SSE event handled through full pipeline: KiloProvider → webview message → session store. kilo-ui `PART_MAPPING["todowrite"]` renders todo lists with checkboxes showing completed/total counts. | CLI tool or extension-side feature | P2 |
|
||||
| [Toggle Thinking](chat-ui-features/toggle-thinking.md) | 🔨 Partial | Reasoning blocks render but no toggle to enable/disable thinking. Linked. | CLI controls thinking; webview provides toggle UI | P2 |
|
||||
| Feature | Status | Remaining Work | Backend | Priority |
|
||||
| ------------------------------------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------ | -------- |
|
||||
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | 🔨 Partial | In-chat browser controls, action replay, screenshot viewing | CLI-side (if browser tool exists) + webview | P3 |
|
||||
| [Checkpoint & Task Management](chat-ui-features/checkpoint-task-management.md) | ❌ Not started | Checkpoint restore, navigation, "See New Changes" diff buttons | CLI session undo/redo/fork + extension git integration | P1 |
|
||||
| [Connection State UI](chat-ui-features/connection-state-ui.md) | 🔨 Partial | Loading spinner overlay, error panel with retry, reconnecting indicator | Webview-only (consumes connection state) | P0 |
|
||||
| [Context Menus & Tooltips](chat-ui-features/context-menus-tooltips.md) | 🔨 Partial | Right-click context menus on chat messages, tool results, code blocks | Webview-only | P2 |
|
||||
| [File Permission Dialogs](chat-ui-features/file-permission-dialogs.md) | 🔨 Partial | Batch file read approval, per-file granularity, inline rendering instead of modal | CLI permission model; webview UI | P1 |
|
||||
| [Follow-Up Questions](chat-ui-features/follow-up-questions.md) | ❌ Not started | Suggested reply chips, click-to-submit, auto-approval countdown, mode indicators | Likely extension-side generation | P2 |
|
||||
| [Mermaid Diagram Features](chat-ui-features/mermaid-diagram-features.md) | ❌ Not started | Mermaid rendering, "Fix with AI" button, copy, open-as-PNG | Webview-only (rendering); CLI for "Fix with AI" | P2 |
|
||||
| [Message Editing & Management](chat-ui-features/message-editing-management.md) | ❌ Not started | Inline editing, deletion, timestamp display, redo-previous-message (up-arrow) | CLI session fork/undo for edit semantics | P1 |
|
||||
| [Special Content Types](chat-ui-features/special-content-types.md) | 🔨 Partial | Copy button on error cards, dedicated MCP tool/resource rows, open-markdown-preview button | Mixed: CLI for MCP data; webview for rendering | P1 |
|
||||
|
||||
---
|
||||
|
||||
## Non-Agent Feature Parity
|
||||
|
||||
| Feature | Status | Details | Backend | Priority |
|
||||
| ------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -------- |
|
||||
| Agent Manager | ✅ Done | `AgentManagerProvider` opens editor panel, creates git worktrees for parallel sessions, full `createWorktreeSession` lifecycle (worktree → session → first message). `WorktreeManager` handles `git worktree add`, metadata, and discovery. `WorktreeSelector` in PromptInput toggles local/worktree mode. | Extension orchestrates multiple CLI sessions | P1 |
|
||||
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | 🔨 Partial | Device auth flow works, organization switching implemented. Missing: org feature flags, MDM policy enforcement. | CLI handles its auth; extension handles org/MDM | P1 |
|
||||
| [Auto-Purge](non-agent-features/auto-purge.md) | ❌ Not started | No scheduled cleanup of old session/task storage. | Extension-side (storage ownership TBD) | P3 |
|
||||
| Autocomplete / Ghost | ✅ Done | `AutocompleteInlineCompletionProvider` implements `vscode.InlineCompletionItemProvider` with FIM completions via Kilo Gateway. Includes debouncing, LRU cache, tree-sitter context, bracket matching, and stream-based completion. `AutocompleteServiceManager` registers/unregisters the provider. | Extension-side (VS Code InlineCompletionProvider) | P1 |
|
||||
| [Browser Automation & URL Ingestion](non-agent-features/browser-automation-url-ingestion.md) | 🔨 Partial | Playwright MCP integration implemented: settings toggle, BrowserAutomationService, CLI MCP hub registration, BrowserTab settings UI. Missing: URL-to-markdown ingestion, screenshot viewing in chat. | CLI MCP hub (POST /mcp); extension manages lifecycle | P3 |
|
||||
| [Checkpoints](non-agent-features/checkpoints.md) | ❌ Not started | No shadow git repo, per-task snapshots, restore UI, or diff viewing. Settings tab is a stub. | CLI (partial: session undo/redo); extension for git snapshots | P1 |
|
||||
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | ❌ Not started | No cloud sync for tasks across devices. | Kilo cloud API + CLI; extension provides UI | P2 |
|
||||
| [Code Actions & Editor Menus](non-agent-features/editor-context-menus-and-code-actions.md) | 🔨 Partial | Editor/terminal right-click submenus, CodeActionProvider lightbulb, keyboard shortcuts, and prompt templates implemented. Terminal content capture is a stub (needs shell integration API). Missing: custom prompt overrides via settings. | Extension-side (VS Code CodeActionProvider + menus + keybindings) | P1 |
|
||||
| [Code Reviews](non-agent-features/code-reviews.md) | ❌ Not started | No local review mode or automated AI review of uncommitted/branch changes. | CLI (partial); extension for VS Code review UX | P2 |
|
||||
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | ❌ Not started | No vector indexing, semantic search, or embeddings infrastructure. | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
|
||||
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | ❌ Not started | No AI attribution tracking, line fingerprinting, or reporting. | Extension-side | P3 |
|
||||
| [Custom Commands](non-agent-features/custom-command-system.md) | ❌ Not started | No slash commands, project-level command discovery, or YAML frontmatter support. | CLI has custom commands; extension provides UI entry points | P2 |
|
||||
| [Deploy & Secure Surfaces](non-agent-features/deploy-and-secure-surfaces.md) | ❌ Not started | No deploy workflows, managed indexing UI, or security review surfaces. | Extension-side | P3 |
|
||||
| [Fast Edits](non-agent-features/fast-edits.md) | ❌ Not started | No fast edit mode for quick inline code changes. | CLI fast-edit runtime; extension provides UI | P2 |
|
||||
| [Git Commit Message Generation](non-agent-features/git-commit-message-generation.md) | ❌ Not started | No AI commit message generation or VS Code Source Control integration. | Extension-side (VS Code Git API) | P2 |
|
||||
| [Integrations](non-agent-features/integrations.md) | ❌ Not started | No external system integrations (GitHub, etc.) beyond basic auth. | CLI plugin system (partial); extension for IDE hooks | P3 |
|
||||
| Kilo Gateway | ✅ Done | Kilo Gateway (`KILO_GATEWAY_ID = "kilo"`) is the default provider, listed first in ModelSelector via `PROVIDER_ORDER`. Login/logout/org switching fully implemented in `KiloProvider.ts` and `ProfileView.tsx`. Default model selection in ProvidersTab. | CLI handles gateway connection; extension provides config UI | P0 |
|
||||
| Localization | ✅ Done | Full i18n system with 16 locales in [`i18n/`](../webview-ui/src/i18n/), three-layer dict merging, locale auto-detection, LanguageTab settings UI with locale selector. | Extension + webview; CLI locale mapping needed | P3 |
|
||||
| [Marketplace](non-agent-features/marketplace.md) | 🔨 Partial | Placeholder view exists but is non-functional. No catalog, install, or update capabilities. | Extension-side | P2 |
|
||||
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | 🔨 Partial | MCP types and HTTP client methods added (getMcpStatus, addMcpServer, connectMcpServer, disconnectMcpServer). Used by BrowserAutomationService. Missing: general MCP configuration UI, server management, tool allowlisting, connection status display. | CLI owns MCP lifecycle; extension provides config UI | P1 |
|
||||
| [Mode Switcher](non-agent-features/mode-switcher.md) | ✅ Done | ModeSwitcher.tsx implements popover-based agent/mode selector with descriptions, persisted via session.selectAgent(). Integrated into PromptInput. | CLI manages modes; extension provides switcher UI | P2 |
|
||||
| [Model Switcher](non-agent-features/model-switcher.md) | ✅ Done | ModelSelector.tsx implements popover-based selector with search/filter, keyboard navigation, provider grouping, free model tags. Integrated into PromptInput. | CLI provides model list; extension provides switcher UI | P1 |
|
||||
| [Provider Configuration](non-agent-features/provider-configuration.md) | 🔨 Partial | Provider context fetches and exposes provider data, connected providers, defaults, model lists — wired into ModelSelector. ProvidersTab UI still a stub. | CLI manages providers; extension provides config UI | P1 |
|
||||
| [Repository Initialization](non-agent-features/repository-initialization.md) | ❌ Not started | No /init command support for setting up agentic engineering. | CLI /init endpoint; extension provides UI trigger | P3 |
|
||||
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | ❌ Not started | No rules or workflow management UI. | CLI owns rules runtime; extension provides management UI | P3 |
|
||||
| [Search & Repo Scanning](non-agent-features/search-and-repo-scanning-infrastructure.md) | ❌ Not started | No search infrastructure beyond CLI grep/glob. | CLI has grep/glob; extension may add UI | P2 |
|
||||
| [Settings Sync](non-agent-features/settings-sync-integration.md) | ❌ Not started | No VS Code Settings Sync allowlist registration. Settings tabs are all stubs. | Extension-side (VS Code API) | P3 |
|
||||
| [Settings UI](non-agent-features/settings-ui.md) | 🔨 Partial | 15-tab settings shell exists. BrowserTab has real settings controls (enable/disable, system Chrome, headless toggles). LanguageTab has working locale selector. Remaining 13 tabs are stubs. | CLI exposes config; extension provides settings forms | P1 |
|
||||
| [Skills System](non-agent-features/skills-system.md) | ❌ Not started | No skill discovery, management, or hot-reload in extension. | CLI has skills runtime; extension provides packaging/UI | P2 |
|
||||
| [Speech-to-Text](non-agent-features/speech-to-text.md) | ❌ Not started | No voice input or streaming STT. | Webview (mic capture); CLI-compatible STT optional | P3 |
|
||||
| [Task History](non-agent-features/task-history.md) | 🔨 Partial | Session list exists but lacks search, metadata, and full persistence. | CLI session storage; extension provides history UI | P1 |
|
||||
| [Telemetry](non-agent-features/telemetry.md) | ❌ Not started | Dual-layer telemetry (PostHog Node server-side + PostHog JS client-side) for extension usage, errors, LLM completions, and AI interactions. Includes privacy controls, typed events, and structured error tracking. See detailed plan. | Extension-side (PostHog + kilo-telemetry) | P1 |
|
||||
| [Terminal / Shell Integration](non-agent-features/terminal-shell-integration.md) | ❌ Not started | No VS Code terminal integration for command execution display, exit code tracking, or working directory changes. | CLI executes commands; extension provides terminal UX | P1 |
|
||||
| Feature | Status | Remaining Work | Backend | Priority |
|
||||
| ------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -------- |
|
||||
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | 🔨 Partial | Org feature flags, MDM policy enforcement | CLI handles its auth; extension handles org/MDM | P1 |
|
||||
| [Auto-Purge](non-agent-features/auto-purge.md) | ❌ Not started | Scheduled cleanup of old session/task storage | Extension-side (storage ownership TBD) | P3 |
|
||||
| [Browser Automation & URL Ingestion](non-agent-features/browser-automation-url-ingestion.md) | 🔨 Partial | URL-to-markdown ingestion | CLI MCP hub (POST /mcp); extension manages lifecycle | P3 |
|
||||
| [Checkpoints](non-agent-features/checkpoints.md) | 🔨 Partial | Checkpoint service, shadow git repo, snapshot management, restore/diff UI | CLI (partial: session undo/redo); extension for git snapshots | P1 |
|
||||
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | 🔨 Partial | Upload local sessions to cloud, real-time sync, conflict resolution | Kilo cloud API + CLI; extension provides UI | P2 |
|
||||
| [Code Actions & Editor Menus](non-agent-features/editor-context-menus-and-code-actions.md) | 🔨 Partial | Terminal content capture (shell integration API), custom prompt overrides via settings | Extension-side (VS Code CodeActionProvider + menus + keybindings) | P1 |
|
||||
| [Code Reviews](non-agent-features/code-reviews.md) | ❌ Not started | Local review mode, automated AI review of uncommitted/branch changes | CLI (partial); extension for VS Code review UX | P2 |
|
||||
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | ❌ Not started | Vector indexing, semantic search, embeddings infrastructure | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
|
||||
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | ❌ Not started | AI attribution tracking, line fingerprinting, reporting | Extension-side | P3 |
|
||||
| [Custom Commands](non-agent-features/custom-command-system.md) | ❌ Not started | Slash command system, project-level command discovery, YAML frontmatter support | CLI has custom commands; extension provides UI entry points | P2 |
|
||||
| [Deploy & Secure Surfaces](non-agent-features/deploy-and-secure-surfaces.md) | ❌ Not started | Deploy workflows, managed indexing UI, security review surfaces | Extension-side | P3 |
|
||||
| [Fast Edits](non-agent-features/fast-edits.md) | ❌ Not started | Fast edit mode for quick inline code changes | CLI fast-edit runtime; extension provides UI | P2 |
|
||||
| [Integrations](non-agent-features/integrations.md) | ❌ Not started | External system integrations (GitHub, etc.) beyond basic auth | CLI plugin system (partial); extension for IDE hooks | P3 |
|
||||
| [Marketplace](non-agent-features/marketplace.md) | ❌ Not started | Catalog, install, update capabilities (toolbar button exists but renders a stub) | Extension-side | P2 |
|
||||
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | 🔨 Partial | MCP configuration UI (add/edit/delete servers), tool allowlisting, connection status display | CLI owns MCP lifecycle; extension provides config UI | P1 |
|
||||
| [Repository Initialization](non-agent-features/repository-initialization.md) | ❌ Not started | /init command support for setting up agentic engineering | CLI /init endpoint; extension provides UI trigger | P3 |
|
||||
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | 🔨 Partial | Workflow management UI (rules subtab exists, workflows subtab is a stub) | CLI owns rules runtime; extension provides management UI | P3 |
|
||||
| [Search & Repo Scanning](non-agent-features/search-and-repo-scanning-infrastructure.md) | ❌ Not started | Search infrastructure beyond CLI grep/glob | CLI has grep/glob; extension may add UI | P2 |
|
||||
| [Settings Sync](non-agent-features/settings-sync-integration.md) | ❌ Not started | VS Code Settings Sync allowlist registration | Extension-side (VS Code API) | P3 |
|
||||
| [Settings UI](non-agent-features/settings-ui.md) | 🔨 Partial | Terminal and Prompts tabs (show "Not implemented"), Workflows subtab stub, import/export settings | CLI exposes config; extension provides settings forms | P1 |
|
||||
| [Skills System](non-agent-features/skills-system.md) | 🔨 Partial | Skill execution, discovery, hot-reload (config UI for paths/URLs exists) | CLI has skills runtime; extension provides packaging/UI | P2 |
|
||||
| [Speech-to-Text](non-agent-features/speech-to-text.md) | ❌ Not started | Voice input, streaming STT | Webview (mic capture); CLI-compatible STT optional | P3 |
|
||||
| [Terminal / Shell Integration](non-agent-features/terminal-shell-integration.md) | 🔨 Partial | General terminal integration for command execution, terminal content capture (Agent Manager uses shell integration for setup scripts only) | CLI executes commands; extension provides terminal UX | P1 |
|
||||
|
||||
---
|
||||
|
||||
@@ -114,12 +58,12 @@ The rebuild has a working foundation:
|
||||
|
||||
These items were identified from the [JetBrains plugin analysis](../LESSONS_LEARNED_JETBRAINS.md) — patterns the JetBrains plugin implements that are missing in the VSCode extension. They primarily affect reliability and developer experience rather than feature parity.
|
||||
|
||||
| Feature | Status | Details | Scope | Priority |
|
||||
| -------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------- |
|
||||
| [SSE Auto-Reconnect](infrastructure/sse-auto-reconnect.md) | ❌ Not started | SSE connection has no reconnect logic. Network hiccups, laptop sleep, or server restart kill the extension with no recovery. | Extension (SSEClient + ConnectionService) | P0 |
|
||||
| [HTTP Request Timeouts](infrastructure/http-request-timeouts.md) | ❌ Not started | HTTP client uses bare `fetch()` with no timeouts. Hung requests block indefinitely. | Extension (HttpClient) | P1 |
|
||||
| [VSCode Error Notifications](infrastructure/vscode-error-notifications.md) | ❌ Not started | Critical errors (CLI missing, server crash) are only shown in the webview. No `vscode.window.showErrorMessage()` notifications. | Extension (KiloProvider) | P1 |
|
||||
| [Dedicated Output Channel](infrastructure/dedicated-output-channel.md) | ❌ Not started | All logging goes to console.log mixed with other extensions. No dedicated "Kilo Code" output channel. | Extension (new logger utility) | P2 |
|
||||
| Feature | Status | Remaining Work | Scope | Priority |
|
||||
| -------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------- |
|
||||
| [SSE Auto-Reconnect](infrastructure/sse-auto-reconnect.md) | ❌ Not started | Reconnect logic, exponential backoff, "reconnecting" state | Extension (SSEClient + ConnectionService) | P0 |
|
||||
| [HTTP Request Timeouts](infrastructure/http-request-timeouts.md) | ❌ Not started | AbortController with timeout in HttpClient.request() | Extension (HttpClient) | P1 |
|
||||
| [VSCode Error Notifications](infrastructure/vscode-error-notifications.md) | 🔨 Partial | Error notifications for core connection failures (CLI start, SSE disconnect, HTTP errors). Peripheral services already use showErrorMessage(). | Extension (KiloProvider) | P1 |
|
||||
| [Dedicated Output Channel](infrastructure/dedicated-output-channel.md) | 🔨 Partial | General "Kilo Code" output channel (Agent Manager has its own already). Centralized logging utility. | Extension (new logger utility) | P2 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user