Add JSON Schema generation for settings.json files to provide IntelliSense
and validation support in VS Code. The schema is automatically generated
from the internal SETTINGS_SCHEMA definition during the build process.
- Add generate-settings-schema.ts script to convert TypeScript schema to JSON Schema
- Add jsonValidation contribution to vscode-ide-companion package.json
- Include schemas directory in .vscodeignore for packaging
- Integrate schema generation into build process
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add abort listener cleanup in Query.close() to prevent memory leak
- Add abort listener cleanup in ControlDispatcher.shutdown()
- Remove AbortController recreation in Session.handleInterrupt()
This fixes the MaxListenersExceededWarning that occurred when:
- Creating 11+ Query instances in SDK/non-interactive mode
- Multiple user interrupts (Ctrl+C) in interactive mode
- Intensive control request scenarios
The ModelSelector's keydown handler used bubble-phase addEventListener
on document, so pressing Enter to confirm a model would also propagate
to the InputForm and trigger a form submit with empty text — creating
a ghost user-message bubble.
Fix: register the handler with `{ capture: true }` and call both
`preventDefault()` and `stopPropagation()` on arrow/Enter/Escape
keys so the event never reaches the InputForm.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Reorder source type detection: check local path existence first, then Git URLs, then owner/repo format
- Remove 'marketplace' as a separate type; use originSource='Claude' instead to identify Claude marketplace extensions
- Simplify type system from 5 types (git/local/link/github-release/marketplace) to 4 types
- Fix issue where relative paths (../path, ./path) were incorrectly treated as owner/repo format
- Add comprehensive test coverage for all path detection scenarios
When session/set_model fails with an authentication error (expired
token, invalid credentials, etc.), the extension now:
- Shows a VSCode error notification with the model name for context
- Sends a loginRequired message to the webview so it renders the
Onboarding login page (without clearing chat history)
- On successful re-login the forceLogin overlay is dismissed
Also guards against empty/zero-width-space-only chat messages and
strips the internal ACP `\nData: {...}` payload from user-facing
error messages.
Includes unit tests for SessionMessageHandler (setModel success,
auth errors, generic errors, missing modelId, stripAcpErrorData)
and useWebViewMessages (loginRequired/loginSuccess round-trip).
Co-authored-by: Cursor <cursoragent@cursor.com>
When MCP tools return multiple content blocks (e.g., text + images),
the content was incorrectly split outside the FunctionResponse,
causing it to leak into separate user messages.
This fix ensures all content stays inside the FunctionResponse:
- Text parts are joined into response.output
- Media parts (inlineData/fileData) are placed in response.parts
Fixes#1520
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Change tool name format from 'toolName' to 'mcp__serverName__toolName'
- Prevents naming conflicts when multiple MCP servers have tools with same name
- Update tests to reflect new naming convention
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Automatically detect 'http' transport when commandOrUrl starts with http:// or https://
- Default to 'stdio' transport for non-URL commands
- Explicit --transport flag still takes precedence over auto-detection
- Update help text to indicate auto-detection capability
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Update the header info panel hint from '/auth to change' to '/model to change'
to better reflect that this command switches models rather than authentication.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add support for defining environment variables in settings.json files.
These variables are loaded with the lowest priority:
1. System/process environment variables (highest)
2. .env files
3. settings.env (lowest/fallback)
This allows users to configure default environment variables in their
user or workspace settings without conflicting with existing env vars
or .env file values.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Remove duplicate useEffect that was causing suggestions visibility state
to diverge from the actual active completion. The original useEffect at
line 760 already correctly tracks activeCompletion.showSuggestions, which
dynamically selects the current active completion source (regular, reverse
search, or command search).
The removed useEffect used OR logic across all three completion sources,
which caused hasSuggestionsVisible in AppContainer to flip incorrectly
during command-search mode when background completion state changed.
This fix ensures Tab key blocking/unblocking happens at the correct times
on Windows.