Compare commits

...

5 Commits

Author SHA1 Message Date
github-actions[bot]
13667ba23a chore(release): v0.0.8 2025-08-22 08:44:20 +00:00
tanzhenxin
87ceb871c2 Merge pull request #419 from QwenLM/fix/v0.0.8-nightly.7
Fix: Critical Issues in v0.0.8-nightly.7
2025-08-22 16:31:22 +08:00
tanzhenxin
aebb69925c fix: invalid tool call with IDE companion feature enabled 2025-08-22 16:15:32 +08:00
tanzhenxin
a6ce22773b feat: add specific header for dashscope provider 2025-08-22 15:21:55 +08:00
tanzhenxin
6142fbf64a fix: invalid web search tool schema when using deepseek api 2025-08-22 15:17:42 +08:00
9 changed files with 34 additions and 17 deletions

12
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.0.7",
"version": "0.0.8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@qwen-code/qwen-code",
"version": "0.0.7",
"version": "0.0.8",
"workspaces": [
"packages/*"
],
@@ -11758,7 +11758,7 @@
},
"packages/cli": {
"name": "@qwen-code/qwen-code",
"version": "0.0.7",
"version": "0.0.8",
"dependencies": {
"@google/genai": "1.9.0",
"@iarna/toml": "^2.2.5",
@@ -11963,7 +11963,7 @@
},
"packages/core": {
"name": "@qwen-code/qwen-code-core",
"version": "0.0.7",
"version": "0.0.8",
"dependencies": {
"@google/genai": "1.9.0",
"@modelcontextprotocol/sdk": "^1.11.0",
@@ -12114,7 +12114,7 @@
},
"packages/test-utils": {
"name": "@qwen-code/qwen-code-test-utils",
"version": "0.0.7",
"version": "0.0.8",
"license": "Apache-2.0",
"devDependencies": {
"typescript": "^5.3.3"
@@ -12125,7 +12125,7 @@
},
"packages/vscode-ide-companion": {
"name": "qwen-code-vscode-ide-companion",
"version": "0.0.7",
"version": "0.0.8",
"license": "LICENSE",
"dependencies": {
"@modelcontextprotocol/sdk": "^1.15.1",

View File

@@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.0.7",
"version": "0.0.8",
"engines": {
"node": ">=20.0.0"
},
@@ -13,7 +13,7 @@
"url": "git+https://github.com/QwenLM/qwen-code.git"
},
"config": {
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.7"
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.8"
},
"scripts": {
"start": "node scripts/start.js",

View File

@@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code",
"version": "0.0.7",
"version": "0.0.8",
"description": "Qwen Code",
"repository": {
"type": "git",
@@ -25,7 +25,7 @@
"dist"
],
"config": {
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.7"
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.8"
},
"dependencies": {
"@google/genai": "1.9.0",

View File

@@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code-core",
"version": "0.0.7",
"version": "0.0.8",
"description": "Qwen Code Core",
"repository": {
"type": "git",

View File

@@ -485,7 +485,24 @@ export class GeminiClient {
}
}
if (this.config.getIdeModeFeature() && this.config.getIdeMode()) {
// Prevent context updates from being sent while a tool call is
// waiting for a response. The Qwen API requires that a functionResponse
// part from the user immediately follows a functionCall part from the model
// in the conversation history . The IDE context is not discarded; it will
// be included in the next regular message sent to the model.
const history = this.getHistory();
const lastMessage =
history.length > 0 ? history[history.length - 1] : undefined;
const hasPendingToolCall =
!!lastMessage &&
lastMessage.role === 'model' &&
(lastMessage.parts?.some((p) => 'functionCall' in p) || false);
if (
this.config.getIdeModeFeature() &&
this.config.getIdeMode() &&
!hasPendingToolCall
) {
const { contextParts, newIdeContext } = this.getIdeContextParts(
this.forceFullIdeContext || this.getHistory().length === 0,
);

View File

@@ -129,6 +129,7 @@ export class OpenAIContentGenerator implements ContentGenerator {
: isDashScopeProvider
? {
'X-DashScope-CacheControl': 'enable',
'X-DashScope-UserAgent': userAgent,
}
: {}),
};

View File

@@ -5,7 +5,6 @@
*/
import { BaseTool, Icon, ToolResult } from './tools.js';
import { Type } from '@google/genai';
import { SchemaValidator } from '../utils/schemaValidator.js';
import { getErrorMessage } from '../utils/errors.js';
import { Config } from '../config/config.js';
@@ -57,10 +56,10 @@ export class WebSearchTool extends BaseTool<
'Performs a web search using the Tavily API and returns a concise answer with sources. Requires the TAVILY_API_KEY environment variable.',
Icon.Globe,
{
type: Type.OBJECT,
type: 'object',
properties: {
query: {
type: Type.STRING,
type: 'string',
description: 'The search query to find information on the web.',
},
},

View File

@@ -1,6 +1,6 @@
{
"name": "@qwen-code/qwen-code-test-utils",
"version": "0.0.7",
"version": "0.0.8",
"private": true,
"main": "src/index.ts",
"license": "Apache-2.0",

View File

@@ -2,7 +2,7 @@
"name": "qwen-code-vscode-ide-companion",
"displayName": "Qwen Code Companion",
"description": "Enable Qwen Code with direct access to your VS Code workspace.",
"version": "0.0.7",
"version": "0.0.8",
"publisher": "qwenlm",
"icon": "assets/icon.png",
"repository": {