feat: add VS Code plugin workspace - #647
Open
LiHao-MS wants to merge 6 commits into
Open
Conversation
🦋 Changeset detectedLatest commit: 7d8af44 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d1d10c4845
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
commit: |
added 6 commits
June 29, 2026 16:27
- Add .catch handlers to bridge RPC effects (trackFiles, clearTrackedFiles, getMCPServers) so rejected promises no longer surface as unhandled rejections; document the intentionally no-op display effects. - Remove the unused recommended-mcp module from the webview services barrel. - Add a test script to apps/vscode and a typecheck script to the webview so the package has standard, self-contained entry points. - Restore argumentHint passthrough in the TUI slash command adapter so hints like /add-dir [list] | <path> survive the shared registry, and lock the surface scoping with a contract test.
Advertise and implement /goal, /plan, /auto, /swarm, /model, and /undo on the ACP surface so VS Code (and other ACP clients) can use them: - /goal: status / pause / resume / cancel / create (create also kicks off the first turn pursuing the objective), backed by the SDK goal lifecycle. - /plan, /auto: toggle the corresponding session mode. - /model: show the current model or switch with /model <name>. - /swarm: toggle swarm mode (on/off/bare) or run a task in swarm mode. - /undo: withdraw the last prompt from the transcript. Each command gets an input hint where it takes arguments, and the shared registry stays the single source of truth for the ACP palette.
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issue
No linked issue yet; the problem is described below.
Problem
Kimi Code currently supports IDE integration through ACP clients, but the repository does not include a first-party VS Code extension. VS Code users need a native sidebar/chat surface that can reuse the local Kimi Code CLI login state, drive sessions through ACP, show approvals and file changes, and expose common editor commands without manual ACP client setup.
What changed
Added a VS Code workspace app for Kimi Code, including the extension host, private VS Code agent SDK, display model, React webview UI, packaging/build scripts, runtime boundary checks, and workspace/Nix configuration.
Extended the ACP adapter and SDK surfaces needed by the extension, including Kimi extension notifications for compaction, interrupted steps, subagent activity, shared slash command metadata, and SDK clear-context support.
Added focused tests for the VS Code agent SDK, display model, webview stores, and ACP adapter behavior. Updated the IDE documentation in English and Chinese with Kimi Code for VS Code usage notes.
Updated VS Code history loading so selecting a saved session replays local session records from
agents/main/wire.jsonlwithout starting the CLI, resets stale active/prewarmed sessions before replay, and shows a loading indicator while history is being loaded.Rebase onto latest
mainRebased the branch onto the current
main(previously it carried a merge commit) so the PR is now a linear history of five commits on top oforigin/main. Conflicts were limited to shared infrastructure files (AGENTS.md,package.json,flake.nix,.gitignore,.changeset/*,pnpm-workspace.yaml) andapps/kimi-code/src/tui/commands/registry.ts. The registry conflict was semantic: the shared slash-command registry was merged with the/add-dirand/webcommands that landed onmainafter this branch was created, so both commands are now registered in the shared registry and the/add-dirpath completion is wired through the TUI extensions map.Optimization pass
trackFiles,clearTrackedFiles, andgetMCPServersnow attach.catchhandlers instead of leaving rejected promises unhandled, and the intentionally no-op display effects are documented.recommended-mcpmodule from the webview services barrel.testscript toapps/vscode(runs the agent-sdk, display-model, and webview suites) and atypecheckscript to the webview package.argumentHintpassthrough in the TUI slash-command adapter so hints such as/add-dir [list] | <path>survive the shared registry, with a contract test locking the surface scoping.Validation
pnpm -C apps/vscode test(agent-sdk, display-model, webview suites)pnpm -C apps/vscode run typecheckpnpm -C apps/vscode run buildpnpm -C apps/vscode run lint(0 errors, pre-existing warnings only)pnpm --filter @moonshot-ai/acp-adapter testandpnpm --filter @moonshot-ai/kimi-code run typechecknode scripts/check-nix-workspace.mjs(workspacePaths / workspaceNames in sync)git diff --checkNote: the
pnpmDepshash inflake.nixis carried from the earlier "stabilize VS Code workspace CI" commit. Because the lockfile was regenerated against the rebased tree, the Nix build CI may report a freshgothash; if so it will be applied in a follow-up commit.Checklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update.