Skip to content

[pull] main from QwenLM:main - #3

Merged
pull[bot] merged 30 commits into
edisplay:mainfrom
QwenLM:main
Feb 5, 2026
Merged

[pull] main from QwenLM:main#3
pull[bot] merged 30 commits into
edisplay:mainfrom
QwenLM:main

Conversation

@pull

@pull pull Bot commented Feb 5, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

tanzhenxin and others added 30 commits January 25, 2026 09:23
Implement debug logfile foundation for routing internal diagnostics
to a per-session log file instead of polluting the terminal.

Core changes:
- Add DebugLogger interface and createDebugLogger() in debugLogger.ts
- Add Storage.getGlobalDebugDir() and getDebugLogPath() for log paths
- Add Config.getDebugLogger() method with session-scoped logger
- Track write failures via isDebugLoggingDegraded()

CLI changes:
- Add DebugModeNotification component for interactive startup notice
- Add non-interactive debug notice to stderr in gemini.tsx

Log files are written to ~/.qwen/debug/<sessionId>.txt with format:
2026-01-24T10:30:00.000Z [LEVEL] [TAG] message

Debug logging is always-on; debug mode only controls the startup notice.
Phase 4 - Extension/OAuth infrastructure:
- qwenOAuth2.ts, sharedTokenManager.ts, qwenContentGenerator.ts
- extensionManager.ts, github.ts, claude-converter.ts
- gemini-converter.ts, extensionSettings.ts

Phase 5 - MCP subsystem:
- mcp-client.ts, oauth-provider.ts, oauth-utils.ts
- oauth-token-storage.ts, keychain-token-storage.ts
- google-auth-provider.ts, sa-impersonation-provider.ts
- mcp-client-manager.ts, sdk-control-client-transport.ts

Also updates related test files to mock debugLogger.
Migrate remaining console.* calls in packages/core utilities and services
to use the structured DebugLogger pattern. This continues the Phase 6
migration work for utilities and helpers.

Files migrated:
- config/config.ts, core/client.ts, core/prompts.ts
- core/anthropicContentGenerator, core/openaiContentGenerator
- core/coreToolScheduler.ts, fallback/handler.ts
- models/modelRegistry.ts, prompts/prompt-registry.ts
- services/chatRecordingService.ts, sessionService.ts, loopDetectionService.ts
- skills/skill-load.ts, skill-manager.ts
- subagents/subagent.ts, subagent-manager.ts
- utils: editor, environmentContext, fileUtils, getFolderStructure,
  installationManager, jsonl-utils, llm-edit-fixer, nextSpeakerChecker,
  openaiLogger, request-tokenizer/*, retry, ripgrepUtils, safeJsonParse,
  summarizer, systemEncoding, workspaceContext

Remaining: utils/errorReporting.ts (13 calls)
…Phase 7-9)

Route CLI console.* calls to structured logging:
- Debug/internal diagnostics → debugLogger (logfile)
- User-facing output → writeStdoutLine/writeStderrLine/clearScreen (stdioHelpers)
- Add stdioHelpers.ts with writeStdoutLine, writeStderrLine, clearScreen
- Migrate pre-session files (gemini.tsx, sandbox.ts, config.ts) to stdioHelpers
- Migrate extension/MCP commands to stdioHelpers
- Migrate non-interactive session/control to debugLogger
- Migrate UI hooks and components to debugLogger
Improve ACP JSON-RPC diagnostics by logging parse failures, request errors,
and response errors to aid debugging.
- 在 sessionUpdateMetaSchema 中添加 timestamp 字段
- 为 MessageEmitter 和 ToolCallEmitter 方法添加 timestamp 参数
- 在 HistoryReplayer 中传递并使用记录的 timestamp
- 为用户消息、代理消息和工具调用添加 _meta.timestamp
- 添加 toEpochMs 工具方法处理 ISO 字符串和 epoch ms
- 更新所有相关测试用例验证 timestamp 传递

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…user @-commands

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- 在 SessionUpdateMeta 中添加 timestamp 字段
- 为 UserMessageChunkUpdate 和 ToolCallUpdate 添加 _meta 字段
- 在 QwenAgentManager 中使用 server timestamp 而非客户端时间
- 在 QwenSessionUpdateHandler 中解析并传递 tool call timestamp
- 在 useToolCalls 中改进 timestamp 解析逻辑
- 修正 App.tsx 中 timestamp 处理,使用 nullish-coalescing operator
- 为 ToolCallUpdateData 和 ToolCallUpdate 类型添加 timestamp 和 _meta

feat(integration-tests): add file location extraction for tool calls

feat(webui): enhance ReadToolCall component with content preview and expand/collapse

refactor(webui): simplify SaveMemoryToolCall component UI

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
…rror reporting

- Replace ConsolePatcher with centralized debugLogger utility
- Refactor errorReporting to use debugLogger instead of file-based reporting
- Remove user-facing console message components:
  - Delete ConsolePatcher.ts, useConsoleMessages.ts/hook
  - Delete ConsoleSummaryDisplay.tsx, DetailedMessagesDisplay.tsx
- Update all tests in packages/core and packages/cli:
  - Mock debugLogger where needed
  - Remove assertions for console output on non-critical errors
  - Keep debugLogger assertions for fatal/network errors
  - Use HOME directory mocking for hermetic file system tests

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Replace console.log/warn/error with debugLogger in LspServerManager.ts
- Replace console.log/warn/error with debugLogger in NativeLspService.ts
- Use [LSP] tag for all LSP-related debug output
- Completes Phase 11 of debug logging refactor

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- LspConfigLoader.ts: 7 console.warn calls → debugLogger.warn
- LspConnectionFactory.ts: 1 console.warn call → debugLogger.warn
- Add eslint no-console overrides for test files and scripts
- Completes LSP subsystem migration (8 more calls)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add 'no-console': 'error' to main source files (packages/core/src, packages/cli/src)
- Configure targeted allowlist for:
  - Test files and scripts
  - VS Code extension (out of scope)
  - WebUI package (UI component library)
  - Integration tests
  - Intentionally excluded files (acpAgent.ts, stdioHelpers.ts)
- Consolidate no-console overrides into a single clearly-marked section
- Enforced in CI via npm run lint:ci

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Remove verbose tool execution debug logs to reduce noise
- Add debug logging for config initialization phases
- Add comprehensive debug logging for skill loading/management
- Add rate limiting for QwenLogger network error logs
- Remove Notifications component from DefaultAppLayout
- Update tests to reflect UI changes and logging behavior

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Resolved conflicts by:
- index.ts: Adopted main's organized structure, added readManyFiles.js export
- atCommandProcessor.ts: Kept refactored readManyFiles utility approach
- atCommandProcessor.test.ts: Kept tests for refactored approach
为了让更多用户能够使用 Qwen Code,将 Qwen OAuth 的免费额度从每天 2000 次降低到每天 1000 次。修改涉及以下文档:
- CHANGELOG.md: 更新版本说明
- README.md: 更新功能介绍
- docs/developers/tools/web-search.md: 更新 Web Search 工具文档
- docs/users/configuration/auth.md: 更新认证文档

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
refactor: remove read_many_files tool, add readManyFiles utility for user @-commands
…bugs

fix(vscode-ide-companion): Fix UI display issues with server-side timestamp and file path extraction
chore: Reduce Qwen OAuth free quota from 2000 to 1000 requests per day
fix(ui): resolve auth not updating in top-right corner
feat: debug mode output refactor — route console calls to logfile-first debugLogger
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
fix: use openai model instead of index=0 in acp integration test
@pull pull Bot locked and limited conversation to collaborators Feb 5, 2026
@pull pull Bot added the ⤵️ pull label Feb 5, 2026
@pull
pull Bot merged commit d90b642 into edisplay:main Feb 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants