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>
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>
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>
- Add requestId mechanism to prevent stale async responses from overwriting newer results
- Implement case-insensitive file search with buildCaseInsensitiveGlob method
- Filter gitignored files using FileDiscoveryService integration
- Allow completion list refresh during search by removing query check condition
- Add --experimental-skills CLI argument for qwen connection
- Add unit tests for FileMessageHandler
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove duplicate webui build in vscode-ide-companion (fixes double build)
- Fix misleading [watch] log messages in esbuild.js (only show in watch mode)
- Update vite-plugin-dts to ^4.5.4 for TypeScript 5.8+ support
- Update baseline-browser-mapping to ^2.9.19 to silence outdated data warnings
- Fix vitest config to use @qwen-code/qwen-code-core instead of old gemini-cli-core
- Add resolve.alias in cli vitest.config.ts for source-based testing
- Add npm run dev script for running from TypeScript source without build
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Redesign ModelSelector positioning to use fixed positioning with max-width
for better responsive layout
- Add model caching in WebViewProvider to resend available models when
webview becomes ready
- Add native VSCode notifications for model switching success/failure
- Display error messages to users in the chat when errors occur
- Simplify InputForm by removing redundant model selector wrapper styles
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit includes several updates:
- Updated eslint configuration with improved formatting and organization
- Added SaveMemoryToolCall support in vscode-ide-companion
- Translated Chinese comments and UI text to English in various components
- Made minor code formatting improvements across multiple files
- Add WebFetchToolCall import to toolcalls index
- Add fetch/web_fetch/webfetch/web_search/websearch kind support
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Re-enable macOS x64 CI builds using macos-15-intel runner
- Remove generic node-pty dependency in favor of platform-specific @lydell/node-pty-* packages
- Add ripgrep binary pruning for platform-specific builds to reduce VSIX size
- Add Windows workaround to remove npm junction self-references during packaging
- Initialize contextWindowSize and maxOutputTokens in contentGeneratorConfig during config resolution
- Remove third parameter from tokenLimit() function for cleaner API
- Replace all tokenLimit() calls with direct config property access for better performance
- Add maxOutputTokens field to ContentGeneratorConfig type
- Update dashscope provider to use config.maxOutputTokens
- Auto-detect token limits from model during initialization if not user-configured
- Update settingsSchema: set contextWindowSize default to undefined and showInDialog to false
Benefits:
- Token limits calculated once during initialization instead of repeatedly
- Cleaner API with fewer parameters
- Better performance by caching computed values
- User configuration takes precedence over auto-detection
- All 72 unit tests passing