- Add HTML template for insights display.
- Create JavaScript application logic for rendering insights.
- Introduce CSS styles for layout and design.
- Develop a test generator for validating the static insight generator.
- Define TypeScript interfaces for structured insight data.
- Refactor insight command to generate insights and open in browser.
- Remove the need for a server process by generating static files directly.
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>
Ensures consistent Windows path normalization across all path hashing.
Previously Storage used its own getFilePathHash() which didn't apply
Windows lowercase normalization, causing test failures on Windows CI.
Fixes#1760
Windows file system is case-insensitive (e:\work equals E:\work),
but string hashing is case-sensitive, causing different session
directories for the same physical path.
Solution: normalize paths to lowercase on Windows before hashing
to ensure consistent session directory across different case variations.
- 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>