- Architecture overview with platform adapters and ACP bridge
- Plugin system contract and extension loading
- Implementation guides for Telegram, WeChat, DingTalk
- Testing guide with mock servers and E2E scenarios
- Feature roadmap and known limitations
These docs provide the foundation for the external messaging integrations.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Handle bare model IDs by inheriting parent's authType
- Create dedicated ContentGenerator for any explicit model selection
- Add tests for model override scenarios
Previously, only cross-provider prefixed models (e.g., "openai:gpt-4o")
triggered ContentGenerator creation. Bare IDs like "qwen-coder" were
ignored, causing subagents to always use the parent's model.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add scheduled-tasks.md with comprehensive guide on using /loop and CronCreate/CronList/CronDelete tools
- Update _meta.ts sidebar to include new Scheduled Tasks page in documentation navigation
This provides users with complete documentation for session-scoped scheduled tasks, including interval syntax, one-time reminders, task management, and scheduling behavior details.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add three dispatch modes for handling concurrent messages:
- steer (default): cancel current prompt and start new one
- collect: buffer messages and coalesce into follow-up prompt
- followup: queue messages for sequential processing
Introduce onPromptStart/onPromptEnd lifecycle hooks for working
indicators. These fire only when a prompt actually begins processing,
not for buffered (collect mode) or gated/blocked messages.
Refactor Telegram, WeChat, and DingTalk adapters to use the new hooks
instead of overriding handleInbound, simplifying the working indicator
pattern and ensuring correct behavior with dispatch modes.
This enables better UX for async workflows and prevents indicator
leaks when messages are buffered or cancelled.
- Add Attachments interface docs with handling examples
- Document block streaming configuration and behavior
- Update architecture diagrams to show attachment resolution
- Add Attachment type to exported types reference
- Update plugin-example README
Covers new structured attachment support and block streaming
that delivers responses as multiple progressive messages.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add new npm extension installation channel via scoped packages (@scope/name)
- Implement npm.ts module with registry resolution, authentication, and download logic
- Support version pinning, dist-tags (latest, beta), and custom registries
- Handle private registry auth via NPM_TOKEN env var and .npmrc _authToken entries
- Update CLI install command with --registry flag for npm extensions
- Add comprehensive tests for npm package parsing and registry operations
- Update documentation for releasing and installing from npm registries
- Integrate npm updates into extension manager and update checking flow
This enables teams using npm for package distribution to publish Qwen Code extensions through their existing infrastructure, with full support for private registries and access control.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Changed all instances of "Bailian Coding Plan" to "ModelStudio Coding Plan" in README.md and related documentation.
- Updated localization files for multiple languages to reflect the new branding.
- Ensured consistency across all references to the API key and subscription requirements for the ModelStudio Coding Plan.
Refactor subagent model configuration from nested modelConfig object to a simple model string field for better UX and clarity.
Changes:
- Replace modelConfig object with model string in SubagentConfig interface
- Add model-selection.ts utility for parsing and validating model selectors
- Support 'inherit' keyword and bare model IDs (e.g., 'glm-5', 'claude-sonnet-4-6')
- Maintain backward compatibility by parsing legacy modelConfig frontmatter
- Update validation to reject cross-provider authType-prefixed selectors
- Update SDK types (TypeScript and Java) to reflect new schema
- Add comprehensive tests for model selection and validation
- Update documentation with model selection examples
Breaking changes:
- modelConfig.frontmatter field deprecated in favor of model field
- Cross-provider model selectors (e.g., 'openai:gpt-4') not supported for subagents
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add comprehensive developer guide for building channel plugins
- Add user-facing docs for installing/configuring custom channel plugins
- Replace custom-channels.md with new plugins.md
- Rename @qwen-code/channel-mock to @qwen-code/channel-plugin-example
- Add messageId field to Envelope type for response correlation
This provides clear documentation for developers building custom channel
adapters and renames the mock package to better reflect its purpose as
a reference implementation example.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Document channels config in extension manifest
- Add guide for creating custom channel adapters
- Explain ChannelPlugin interface and ChannelBase usage
This enables users to extend the channel system with custom platform adapters.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add comprehensive DingTalk setup guide with prerequisites, configuration, and troubleshooting
- Add WeChat and DingTalk entries to channels navigation
This provides users with complete documentation for setting up and using DingTalk as a Qwen Code channel.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add /help, /clear (aliases: /reset, /new), /status commands to ChannelBase
- Commands are handled locally without agent round-trip
- TelegramAdapter skips "Working..." indicator for local commands
- Update docs to reflect new command structure
This provides a consistent command interface across all channel types
(Telegram, WeChat, etc.) with platform-specific extensibility.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add `qwen channel status` to check running service info
- Add `qwen channel stop` to gracefully stop the service
- Add PID file tracking to prevent duplicate service instances
- Update documentation with new commands and usage
This enables users to manage the channel service from another terminal
without needing to use Ctrl+C on the foreground process.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add session persistence to SessionRouter for crash recovery
- Add loadSession method to AcpBridge for restoring sessions
- Add ChannelBaseOptions to support external router injection
- Refactor start.ts to support both standalone and gateway modes
- Extract config utilities into separate module
This enables channels to recover sessions after bridge crashes and
supports running multiple channels under a gateway process.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add Media Support section to overview with images and files
- Document model option for multimodal channel support
- Add Images and Files section to Telegram guide
- Add complete WeChat (Weixin) setup guide with QR auth
This documents the new media handling capabilities added to both Telegram and WeChat channels.
- Add GroupGate class for group access control with three policies:
disabled (default), allowlist, and open
- Implement mention gating: bot only responds when @mentioned or replied to
in groups (configurable per-group)
- Extend Envelope type with isGroup, isMentioned, isReplyToBot fields
- Update TelegramAdapter to detect group context and mentions
- Add comprehensive documentation for group chat setup and troubleshooting
This enables using Qwen Code bots in Telegram groups with fine-grained
access control and mention-based activation to prevent noise.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add PairingStore for managing pending requests and approved users
- Update SenderGate to support pairing policy with code generation
- Add CLI commands: `qwen channel pairing list/approve`
- Document pairing flow with rules and usage examples
This allows unknown senders to request access via a pairing code
that the bot operator approves through the CLI.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Add overview page explaining channels architecture and configuration
- Add Telegram channel setup guide with bot creation steps
- Add navigation entries for channels section
This documents the new Channels feature that allows users to interact
with Qwen Code agents from messaging platforms like Telegram.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Key changes:
1. Remove LspLanguageDetector — LSP is now fully config-driven via
.lsp.json or extensions. No more auto-detected built-in presets
that fail when the server binary is missing.
2. Add ensureDocumentOpen — send textDocument/didOpen before every
document-level LSP request (definitions, references, hover,
documentSymbol, implementations, prepareCallHierarchy, diagnostics,
codeActions). This fixes the root cause of most methods returning
empty results (Issue #2106, #1873).
3. Add retry mechanism for slow servers — when a freshly opened
document yields empty results on non-TypeScript servers (jdtls,
clangd, pylsp), wait 2s and retry once. This mirrors the existing
retry logic in workspaceSymbols.
4. Handle LSP 3.17 WorkspaceSymbol format — location.range is now
optional in normalizeSymbolResult, fixing jdtls workspace symbol
responses that omit the range field.
5. Improve workspace symbol warmup — for non-TypeScript servers, open
a workspace file before the first workspace/symbol request and
retry on empty results after a warmup delay.
6. Track warmup-opened URIs — warmupTypescriptServer now returns the
opened URI, which is registered with ensureDocumentOpen to prevent
duplicate didOpen notifications.
Closes#2106, closes#1873
Made-with: Cursor
Add comprehensive documentation for the Agent Arena feature, covering
usage, configuration, best practices, troubleshooting, and limitations.
Update navigation metadata to include the new page.
This enables users to discover and learn about the multi-model comparison
capability for competitive task execution.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Add documentation for encoding detection, default encoding settings,
CRLF handling for batch files, and UTF-8 BOM for PowerShell scripts on
Windows.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Move the Docker sandbox Java documentation from docs-site to the
appropriate location in docs/users/features/sandbox.md under the
Troubleshooting section.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>