Commit graph

4838 commits

Author SHA1 Message Date
DragonnZhang
754125e75c feat(insight): add tracking for lines and files in analysis and enhance stats display 2026-02-09 15:16:29 +08:00
DragonnZhang
aeedec3020 feat(insight): enhance qualitative insights display and improve styling 2026-02-09 15:16:29 +08:00
DragonnZhang
9ea6c45deb feat(insight): add qualitative insights components and styles to enhance user experience 2026-02-09 15:16:29 +08:00
DragonnZhang
5a7dcce196 feat(insight): refactor data processing and add qualitative insights structure 2026-02-09 15:16:29 +08:00
DragonnZhang
f1214c90ea feat(insight): remove JSON data file generation from static insight process 2026-02-09 15:16:28 +08:00
DragonnZhang
39d2067d14 feat(insight): update static insight generator and command handling
- Refine DataProcessor and StaticInsightGenerator logic
- Update StaticInsightTypes definitions
- Enhance insight command implementation
- Update package dependencies
2026-02-09 15:16:28 +08:00
DragonnZhang
98735fecd7 feat(insight): add JSONL utility exports to index 2026-02-09 15:16:28 +08:00
DragonnZhang
7e21ba4983 feat(insight): enhance template loading logic and add insight templates copying 2026-02-09 15:16:28 +08:00
DragonnZhang
338387f93a feat(insight): integrate JSONL file reading utility and enhance base CSS styles 2026-02-09 15:16:27 +08:00
DragonnZhang
7b845ea3a6 refactor(insight): improve error handling and format output path message 2026-02-09 15:16:27 +08:00
DragonnZhang
6cb0bb078c feat(insight): update insight template and app to React, enhance export functionality 2026-02-09 15:16:27 +08:00
DragonnZhang
2931e75a17 refactor(insight): remove debug logging and unused test generator 2026-02-09 15:16:27 +08:00
DragonnZhang
733522c076 refactor(insight): remove deprecated insight server implementation 2026-02-09 15:16:26 +08:00
DragonnZhang
c243f1d90d chore: update ESLint configuration and lint-staged command 2026-02-09 15:16:26 +08:00
DragonnZhang
0e55800941 feat(insight): Implement static insight generation and visualization
- 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.
2026-02-09 15:16:26 +08:00
DragonnZhang
18a21545ea refactor(insight): update insight page assets and styles 2026-02-09 15:16:25 +08:00
DragonnZhang
22aa6656a4 feat: add new insight page with Vite setup 2026-02-09 15:16:25 +08:00
DragonnZhang
9ff4be1ae4 feat(insight): add insight command and server for personalized programming insights 2026-02-09 15:16:25 +08:00
yiliang114
58adc7de63 Merge branch 'main' of https://github.com/QwenLM/qwen-code into fix/auth-model-login-ui 2026-02-09 14:34:14 +08:00
yiliang114
33bddd44f1 fix(vscode): prevent empty user message when selecting model via Enter
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>
2026-02-09 14:32:56 +08:00
LaZzyMan
37c3a38bb1 fix: use centralized getProjectHash in Storage class
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.
2026-02-09 14:24:38 +08:00
LaZzyMan
32e17f8b58 fix: normalize Windows paths to lowercase for case-insensitive session matching
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.
2026-02-09 14:24:38 +08:00
LaZzyMan
f491281ee1 fix: prioritize local path detection in extension installation
- 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
2026-02-09 14:15:44 +08:00
yiliang114
d18a5a37d1 fix(vscode): handle auth errors on model switch and show login page
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>
2026-02-09 14:01:22 +08:00
Mingholy
b80fe574b8
Merge pull request #1769 from QwenLM/mingholy/fix/sdk-mcp-tests
Fix SDK MCP integration tests by updating hardcoded tool names to use constants
2026-02-09 13:47:57 +08:00
mingholy.lmh
7311a01874 fix: sdk mcp tests 2026-02-09 11:54:20 +08:00
tanzhenxin
4e89c99216 Merge remote-tracking branch 'origin/main' into feat/mcp-progress-updates 2026-02-09 10:18:35 +08:00
pomelo
9bccd49711
Merge pull request #1763 from QwenLM/fix/simple-mcp-server-test
Some checks are pending
Qwen Code CI / Lint (push) Waiting to run
Qwen Code CI / Test (push) Blocked by required conditions
Qwen Code CI / Test-1 (push) Blocked by required conditions
Qwen Code CI / Test-2 (push) Blocked by required conditions
Qwen Code CI / Test-3 (push) Blocked by required conditions
Qwen Code CI / Test-4 (push) Blocked by required conditions
Qwen Code CI / Test-5 (push) Blocked by required conditions
Qwen Code CI / Test-6 (push) Blocked by required conditions
Qwen Code CI / Test-7 (push) Blocked by required conditions
Qwen Code CI / Test-8 (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
fix(integration-tests): correct MCP tool name in simple-mcp-server test
2026-02-09 10:09:44 +08:00
tanzhenxin
c71cc9ce0d fix(integration-tests): correct MCP tool name in simple-mcp-server test
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-09 10:07:00 +08:00
Mingholy
c8e8581978
Merge pull request #1758 from QwenLM/mingholy/fix/fork-mode-ipc
Fix CLI argument parsing for /dist/cli/cli.js entry point
2026-02-09 09:59:10 +08:00
tanzhenxin
e48c538403
Merge pull request #1755 from QwenLM/fix/mcp-multipart-tool-results
fix(core): properly handle MCP multi-part tool results in OpenAI converter
2026-02-09 09:43:09 +08:00
tanzhenxin
cc55d7831a
Merge pull request #1752 from QwenLM/fix/mcp-oauth-branding-updates
fix(mcp): improve MCP server management and authentication
2026-02-09 09:42:58 +08:00
tanzhenxin
a5d2ca9e9d
Merge pull request #1751 from QwenLM/feat/settings-env-field
feat(settings): add settings.env field for environment variable configuration
2026-02-09 09:42:46 +08:00
Alexander Farber
5ec3b755e2
Add a comment to explain where.exe 2026-02-08 16:15:16 +01:00
DennisYu07
396d53367b
Fix: use where.exe instead of PowerShell Get-Command for Windows command detection
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 16:15:16 +01:00
DennisYu07
8755042509
add null judge for cmd 2026-02-08 16:15:16 +01:00
DennisYu07
efbec0451c
fix error for powershell comand 2026-02-08 16:15:16 +01:00
Alexander Farber
fca9f0c106
Use PowerShell Get-Command for Windows sandbox detection 2026-02-08 16:15:16 +01:00
Mingholy
07cd73ce01 fix: failed to initialize/send message in Electron using SDK 2026-02-08 21:45:24 +08:00
tanzhenxin
842ff42928 refactor(cli): improve findEnvFile logic and remove flaky test
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 21:15:42 +08:00
tanzhenxin
5ebbceea65 feat: add MCP tool progress update support in TUI and SDK mode
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 15:48:13 +08:00
tanzhenxin
0d026a508e fix(core): properly handle MCP multi-part tool results in OpenAI converter
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>
2026-02-08 12:40:27 +08:00
tanzhenxin
7c53995e53 test: update tool-registry test for new MCP tool naming convention
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 12:17:00 +08:00
tanzhenxin
e17b800d1d fix(mcp): prefix MCP tool names with server name to avoid collisions
- 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>
2026-02-08 12:02:44 +08:00
tanzhenxin
a3b95414de feat(mcp): auto-detect transport type from URL in mcp add command
- 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>
2026-02-08 11:11:02 +08:00
tanzhenxin
21e711469d fix(mcp): update OAuth client names and improve MCP commands
- Rename MCP OAuth client names from 'Gemini CLI' to 'Qwen Code'
- Update MCP add/remove/list commands with improved error handling
- Add comprehensive tests for OAuth provider
- Fix token storage test assertions
- Clean up unused i18n translation keys
- Update gemini-converter and window title references

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 10:46:48 +08:00
tanzhenxin
49b1a39c0b refactor(core): simplify generation config and support extra_body/customHeaders
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-08 09:58:24 +08:00
tanzhenxin
6a867ed4a4 refactor(cli): change auth hint to model hint in header
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>
2026-02-08 09:40:57 +08:00
tanzhenxin
5f8884b60c feat(settings): add settings.env field for environment variable configuration
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>
2026-02-08 09:33:31 +08:00
DennisYu07
281995e310 fix test 2026-02-06 03:01:53 -08:00