Releases: agentscope-ai/QwenPaw
v1.1.2
✨ Added
Agent System
- Mission Mode:
/missioncommand for autonomous, multi-phase task execution — the agent plans, executes, and self-corrects iteratively. Supports/mission statusand/mission listto monitor running missions (#3364, #3480) - Auto-Continue on Text-Only: When enabled, the agent automatically retries up to two extra reasoning passes if the model responds with text but no tool calls (#3107)
- Custom Agent ID: Specify a custom ID when creating agents from the console or API (#3333)
- ACP External Agent Delegation: Delegate tasks to external coding agents (OpenCode, Qwen, Claude Code, Codex) via the new
delegate_external_agenttool with permission guards and real-time streamed output (#3340) - Agent CLI: Create agents from the command line with
qwenpaw agents create, with template selection (default,local,qa) and workspace initialization (#3385)
CLI
qwenpaw doctor: Diagnostic command that checks environment, config, providers, channels, skills, MCP, memory, security, and more — withdoctor fixfor auto-remediation (#3371)qwenpaw skills info: Inspect skill details (enabled state, channels, path, description) from the command line; also adds/skillsslash command in chat (#3459)
Memory
- Memory Dream: Scheduled long-term memory consolidation — a "dream" agent periodically deduplicates and reorganizes
MEMORY.md(#2177) - Recursive File Watcher: New
recursive_file_watcheroption to include subdirectory files in memory indexing (#3347)
Console & UI
- Skill Import Hub: Redesigned import modal with URL validation, marketplace integration, and overwrite confirmation when importing skills that conflict with existing ones (#2412, #3415, #3482)
- Debug Page: New Debug page in settings to view backend log files in real time (#3478)
Channels
- WeChat Quoted Messages: Quoted/replied messages are now parsed with support for text, image, voice, file, and video (#3483)
🔄 Changed
- Provider Sort Order: Provider list in settings is now sorted by availability (#3458)
- Agent Communication Tools: Inter-agent communication tools split into
chat_with_agent(synchronous) and newsubmit_to_agent/check_agent_task(asynchronous background tasks) (#3485)
🐛 Fixed
Console & UI
- Clear Chat History:
/clearnow properly clears chat history in the console UI (#3348) - Token Usage Sort: Token usage "by date" table now sorts with newest dates first (#3387)
- Cron Job ID Tooltip: Cron job ID tooltip corrected to describe it as a system-generated UUID (#3404)
- Message History Navigation: ArrowUp message history no longer triggers when slash-command suggestions are visible (#3444)
Providers
- Image MIME Normalization: Normalized
image/jpgtoimage/jpegin data URLs to prevent rejection by strict APIs (#3313) - Multimodal Tool Call Ordering: Promoted image messages no longer break the contiguous tool-result block required by OpenAI and Anthropic (#3299)
- Provider Class Identity: Fixed Pydantic class-identity crash when the same provider is loaded from multiple import paths (#3431)
Agent System
- Background Task Tracking: Background tasks dispatched via AgentApp API are now tracked by
TaskTracker, preventing cancellation during reload or shutdown (#3305) - Memory Compaction Guard: Memory compaction hook no longer runs twice per reasoning step (#3461)
Channels
- Discord Thread Routing: Discord thread messages now route to the correct thread session instead of the parent channel (#3144)
- WeChat Typing Indicator: WeChat typing indicator no longer leaks background tasks; typing starts on message receive and stops reliably on completion or error (#3488)
Desktop
- Python Environment Isolation: Packaged desktop builds now set
PYTHONNOUSERSITE=1to prevent user-installed packages from conflicting with bundled dependencies (#3476)
🔧 CI & Infrastructure
- Channel Testing Infrastructure: Contract tests, unit tests, CI workflow, and Makefile targets for channel quality assurance (#2506)
New Contributors
- @FrankJingHao made their first contribution in #3347
- @ployts made their first contribution in #2177
- @cqhtyi made their first contribution in #3428
- @leesf made their first contribution in #3433
- @flystar32 made their first contribution in #3333
Full Changelog: v1.1.1...v1.1.2
v1.1.2-beta.2
What's Changed
- fix: register AgentApp dispatched requests with TaskTracker to prevent background task cancellation by @ekzhu in #3305
- chore(version): bumping version to 1.1.2b2 by @xieyxclack in #3454
- fix: prevent message history navigation when suggestion popup is open by @bowenliang123 in #3444
- chore(console): add --cache to prettier format by @bowenliang123 in #3446
- fix(formatter): 400 error when multiple tool calls return multimodal content by @energyd in #3299
- feat(agent): guard against duplicate execution of memory compaction hook by @qbc2016 in #3461
- feat: provider sort by @zhaozhuang521 in #3458
- feat(skills): cli console for skills by @Leirunlin in #3459
- feat: add langfuse openai SDK tracing to openai_provider only by @leesf in #3433
- Enhance documentation and establish testing infrastructure by @hanson-hex in #2506
- style: Navigation bar distinguishes agent area styles by @zhaozhuang521 in #3469
- chore: fix task status not right by @rayrayraykk in #3472
- feat: search backwards for message-type output in text extraction by @qbc2016 in #3474
- feat(agents): allow custom agent ID when creating agents by @flystar32 in #3333
- fix(desktop): isolate packaged Python from user site-packages to prevent dependency conflicts by @rayrayraykk in #3476
- Feature(Provider): Add Free Tag for free models by @pan-x-c in #3471
- refactor(web): improve import skill modal by @bowenliang123 in #2412
- feat(tool): Add ACP-based external agent delegation and real-time tool output plumbing. by @x1n95c in #3340
- feat(console): add debug page in console to show log file by @zhijianma in #3478
- fix(mission): Detect active mission before agent creation to enable tool guard bypass by @rayrayraykk in #3480
- feat(WeChat): support quoted message handling and audio file sending by @hongxicheng in #3483
- fix(skills UI): fix i18n, dark mode, and error handling in ImportHubModal by @Leirunlin in #3482
- fix(discord): add thread awareness to on_message routing by @energyd in #3144
- fix(WeChat): prevent typing task leak and reduce CPU/memory usage by @hongxicheng in #3488
- Fix(tools): Optimize agent communication tools by @pan-x-c in #3485
- refactor(doctor): optimize the hint by @lalaliat in #3492
- Feat(Provider): Add warning for free models by @pan-x-c in #3494
New Contributors
- @leesf made their first contribution in #3433
- @flystar32 made their first contribution in #3333
Full Changelog: v1.1.2-beta.1...v1.1.2-beta.2
v1.1.2-beta.1
What's Changed
- chore(version): bumping version to 1.1.2b1 by @xieyxclack in #3416
- fix(memory): make file watcher recursive configurable by @FrankJingHao in #3347
- feat(memory): add default memory summarization cron job with automatic initialization by @ployts in #2177
- feat(chat): support searching title in chat by @qbc2016 in #3423
- fix(console): sort token usage by-date table in descending order by @hikariming in #3387
- fix(formatter): normalize image/jpg to image/jpeg in data URLs by @energyd in #3313
- Fix(Provider): OpenCode does not require API_KEY by @pan-x-c in #3418
- feat(skill): conflict to overwrite by @Leirunlin in #3415
- fix(console): clear chat history on /clear by @hikariming in #3348
- fix(provider): serialize models in get_info() to prevent pydantic class-identity crash by @fancyboi999 in #3431
- feat(cli): add cli
qwenpaw doctorto diagnose by @lalaliat in #3371 - Add qwen3.6-plus to aliyun-codingplan by @cqhtyi in #3428
- feat(mission): add mission mode — autonomous iterative agent for complex long-running tasks by @rayrayraykk in #3364
- fix tool call stop siliently of models similar to qwen3-coder-plus by @yuanxs21 in #3107
- Feat(Agent): Create Agent CLI && Local Agent Template by @pan-x-c in #3385
New Contributors
- @FrankJingHao made their first contribution in #3347
- @ployts made their first contribution in #2177
- @cqhtyi made their first contribution in #3428
Full Changelog: v1.1.1.post1...v1.1.2-beta.1
v1.1.1.post1
What's Changed
- chore(version): bumping version to 1.1.1p1 by @xieyxclack in #3399
- fix: update Cron Job ID info message text by @celestialhorse51D in #3404
- Fix(Provider): Fix ollama Provider connection test by @pan-x-c in #3391
- Fix(Provider): Fix LM Studio connection test timeout by @pan-x-c in #3412
- refactor(matrix): simplify path handling using WORKING_DIR constant by @zhijianma in #3406
Full Changelog: v1.1.1...v1.1.1.post1
v1.1.1
✨ Added
Providers and Models
- OpenRouter Provider: Built-in OpenRouter provider with model discovery, series browsing, and filtering by modality and pricing (#1192)
- OpenCode Provider: Built-in OpenAI-compatible OpenCode (Zen) provider with free models (#2463)
- Model ID Autocomplete: Autocomplete dropdown for model ID selection when adding models, with model discovery enabled by default for all providers (#3175, #3341)
Multi-Agent System
- Built-in Agent Collaboration Tools: New
list_agentsandchat_with_agentbuilt-in tools with a dedicated skill and streamlined CLI agent commands for inter-agent communication (#3292)
Channels
- Matrix Channel Rewrite: End-to-end encryption (E2EE), mention handling, message history support, and markdown rendering (#2509)
- Feishu Quoted Messages: Reply-chain message handling with text, post, image, and file content extraction (#3207)
- DingTalk QR Authentication: QR code device-flow authentication for DingTalk channel setup in console (#3315)
Security
- Extended Shell Command Guards: New guard rules covering
$IFSinjection, control characters, Unicode whitespace,/proc/*/environaccess, dangerousjqflags, and Zsh-specific risky builtins (#3303)
Tools & Skills
- ClawHub Skill Requirements: Support for skill requirements in ClawHub format with multiple metadata namespace resolution (#3310)
- Media URL Viewing:
view_imageandview_videotools now accept HTTP/HTTPS URLs for direct media viewing without download (#3358)
🔄 Changed
Providers and Models
- Multimodal Probe Unification: Image support probing across Anthropic, Gemini, and OpenAI providers now shares a single evaluation path with improved false-positive detection (#3367)
- Message Normalization for Model Switching: Messages are normalized at request time so media attachments are preserved in memory when switching between model providers (#3359)
- Anthropic Media Deduplication: Duplicate base64 media in tool results is replaced with text placeholders to prevent exceeding Anthropic's message size limit (#3372)
Channels
- DingTalk SDK Migration: Channel migrated to the official Alibaba Cloud SDK with emoji reaction feedback during processing and media delivery in AI Card mode (#3236, #3337, #3374)
- Feishu WebSocket Stability: Event loop handling refactored for improved cross-thread reliability during reconnections (#3360)
- WeChat Reply Limit Warning: Channel settings now display a warning about the context_token reply limit for WeChat iLink (#3376)
Tools & Skills
- Browser Managed CDP: Default browser start strategy changed to managed CDP with automatic Chromium detection, port allocation, and process lifecycle management (#3164)
Console & UI
- Model Management Redesign: Provider model management modal redesigned with capability tags, model searching, and simplified card layout (#3273, #3294)
- Agent Config Tabs: Agent configuration page refactored from stacked cards to a tabbed interface (#3354)
- Skill Selection UI: Improved skill selection with tag suggestions, tooltips for long names, refined loading behavior, and bulk select actions (#3320, #3362, #3373)
- Downloads Page: Website downloads page reworked with stable and preview version grouping (#3353)
🐛 Fixed
Channels
- QQ WebSocket Shutdown:
stop()no longer blocks for 8 seconds by force-closing the WebSocket on shutdown (#3188)
Console & UI
- Fixed chat session pin button contrast in dark mode (#3267)
- Markdown links in header now navigate in-app instead of opening new tabs (#3186)
- Website contributors layout alignment for Chinese locale (#3332)
Providers
- Fixed local model download failure on Windows (
[Errno 22] Invalid argument) (#3321) - Omit
tool_choice=autofor vLLM compatibility to avoid 400 errors on deployments without--enable-auto-tool-choice(#3295)
📚 Documentation
- RESTful API Tutorial: Comprehensive REST API tutorial covering chat endpoints, authentication, multi-turn sessions, streaming, and agent switching (#3335)
- Skill Chat Commands: Added skill chat command reference to commands documentation (#3330)
New Contributors
- @maplefeng-a made their first contribution in #2509
- @lhpqaq made their first contribution in #2463
- @jilin6627-spec made their first contribution in #3295
Full Changelog: v1.1.0...v1.1.1
v1.1.1-beta.2
What's Changed
- chore(version): bumping version to 1.1.1b2 by @xieyxclack in #3343
- refactor(console): improve provider model management modal for capability tags, model searching by @bowenliang123 in #3273
- chore(deps): add alibabacloud-tea-openapi dependency by @zhijianma in #3374
- feat(skills): improve skill selection UI by @Leirunlin in #3373
- fix(website) downloads by @yuluo1007 in #3353
- refactor(agent-config): replace form cards with tabbed interface and … by @zhijianma in #3354
- add context_token reply limit warning to WeChat channel settings by @hongxicheng in #3376
- fix(skills): Improve skill tag sync and UI by @Leirunlin in #3362
- fix(FeiShu): replace static loop swap with _EventLoopProxy by @hongxicheng in #3360
- feat(models): Use message normalizaiton to enable better switch(e.g. preserve media memory) within same type of model providers by @garyzhang99 in #3359
- feat(multimoal): support urls for viewing media by @qbc2016 in #3358
- feat(provider): fix anthropic provider multimodal probe by @qbc2016 in #3367
- feat(anthropic): remove duplicated base64 data to avoid exceeding max bytes error by @qbc2016 in #3372
- Feat(Agent): Refactor multi-agent collaboration by @pan-x-c in #3292
- fix: omit tool_choice=auto for vLLM compatibility to avoid 400 error by @jilin6627-spec in #3295
- fix: Fixed an issue where creating a scheduled task in the Console resulted in a 422 Unprocessable Entity error by @celestialhorse51D in #3379
New Contributors
- @jilin6627-spec made their first contribution in #3295
Full Changelog: v1.1.1-beta.1...v1.1.1-beta.2
v1.1.1-beta.1
What's Changed
- docs(news): update news by @xieyxclack in #3287
- chore: update ip logo by @rayrayraykk in #3289
- chore(version): bumping version to 1.1.1b1 by @xieyxclack in #3304
- fix(console): correct the model setting page and move default llm title into cards by @bowenliang123 in #3294
- CI: auto add unber review label by @rayrayraykk in #3307
- fix: url new tab by @zhaozhuang521 in #3186
- fix: 修复聊天会话置顶按钮在暗黑模式下对比度过低的问题 by @ltzu929 in #3267
- feat(skill): add support for reqs in clawhub format by @Leirunlin in #3310
- perf(QQ): fix QQ channel stop() blocking for 8s by force-closing WebSocket by @hongxicheng in #3188
- feat(Feishu): add quoted message handling for Feishu channel by @hongxicheng in #3207
- feat(console): add autocomplete dropdown for model ID selection for model providers with model discovery support by @bowenliang123 in #3175
- ci: fix ci under review by @rayrayraykk in #3316
- refactor(DingTalk): migrate API calls to official SDK, add emoji reaction feedback by @hongxicheng in #3236
- Console/channel by @zhaozhuang521 in #3315
- Fix(Local Provider): Fix "Donwload failed: [Errno 22] Invalid argument" on Windows Desktop by @pan-x-c in #3321
- chore (ci): fix ci under review with Review Opt by @rayrayraykk in #3324
- feat(matrix): enhance Matrix channel with E2EE, mentions, and history support (#2433) by @maplefeng-a in #2509
- fix(skill): fix skill loading during creation and selection behavior by @Leirunlin in #3320
- chore: fix ci under review by @rayrayraykk in #3326
- feat(provider): add OpenRouter provider with HTTP-Referer and X-Title headers by @seoeaa in #1192
- feat(skill): Update skill command description, add docs. by @Leirunlin in #3330
- fix(website UI): contributors style by @yuluo1007 in #3332
- feat(security): add cc rules by @gnipping in #3303
- feat(provider): Support integration with OpenCode by @lhpqaq in #2463
- feat: add RESTful API doc & minor opt by @rayrayraykk in #3335
- feat(tool): refine browser start strategy and private mode handling by @x1n95c in #3164
- feat(DingTalk): support media delivery in AI Card mode & prevent base64 overflow in DingTalk messages by @hongxicheng in #3337
- Fix(Provider): Enable Model Discovery for all Providers by @pan-x-c in #3341
New Contributors
- @maplefeng-a made their first contribution in #2509
- @lhpqaq made their first contribution in #2463
Full Changelog: v1.1.0...v1.1.1-beta.1
v1.1.0
CoPaw is Officially Rebranding to QwenPaw
This rebranding marks an important step forward into our next phase of open-source development.
The new name better reflects the open ecosystem we are building and the broader direction we are continuing to pursue:
Qwen — represents a deeper integration with the Qwen open-source ecosystem and a sharper focus on the model layer, including local models for agents and smart collaboration between small and large models.
Paw — carries forward our original mission to accompany users and become a personal assistant users can truly trust.
This rebranding does not change our vision and goals in the open-source community:
- To build a more practical, secure, and personalized AI assistant;
- To stay committed to open-source collaboration and move forward together with the community.
Thank you all for your support along the way.
From today on, QwenPaw will stay and grow with you!
More updates coming soon.
v1.1.0-beta.1
What's Changed
- refactor(env): transition from COPAW to QWENPAW environment variables… by @zhijianma in #3171
- chore: rename script & ci module by @rayrayraykk in #3169
- chore: add manual PyPI publish trigger to CI by @rayrayraykk in #3172
- refactor(core): rename project from copaw to qwenpaw by @zhijianma in #3180
- refactor(cli): rename all occurrences from CoPaw to QwenPaw by @zhijianma in #3189
- chore (channel): rename in channel module by @rayrayraykk in #3193
- refactor(security): rename copaw references with compatibility fallbacks by @gnipping in #3192
- refactor(routers): rename copaw identifiers to qwenpaw by @zhijianma in #3194
- refactor(agent): rename by @lalaliat in #3196
- refactor(tools): rename CoPaw to QwenPaw in tools module by @jinglinpeng in #3203
- refactor(memory): rename token counter function and update memory management by @jinliyl in #3199
- chore (plugin): rename plugin by @rayrayraykk in #3205
- refactor(skills): rename for skill modules by @Leirunlin in #3201
- refactor: rename for app runner and utils by @qbc2016 in #3202
- refactor(docs): rename the docs from to QwenPaw by @cuiyuebing in #3200
- Console/perf optimization by @zhaozhuang521 in #3210
- refacto(website):renam -copaw-to-qwenpaw-website by @yuluo1007 in #3212
- refactor: rename in comments by @qbc2016 in #3213
- refactor(config) copaw to qwenpaw in config by @yuanxs21 in #3216
- refactor(utils):rename-copaw-to-qwenpaw-utils by @x1n95c in #3204
- chore: minor fix in workspace module by @rayrayraykk in #3217
- refactor(root) copaw to qwenpaw in root by @yuanxs21 in #3220
- refactor(security):use legency variable by @gnipping in #3223
- refactor(local_models,providers): rename copaw to qwenpaw by @garyzhang99 in #3195
- refacto(website): rename by @yuluo1007 in #3219
- chore: async read_file_safe by @rayrayraykk in #3228
- update name by @xieyxclack in #3232
- refactor(docs,scripts): rename project from CoPaw to QwenPaw and upda… by @zhijianma in #3230
- refactor(agent): update qa agent by @lalaliat in #3231
- docs(news): update news by @qbc2016 in #3235
- minor fix by @xieyxclack in #3237
- feat: logo by @zhaozhuang521 in #3240
- website: text opt by @yuluo1007 in #3239
- refactor(app): remove redundant static file route handlers by @zhijianma in #3243
- chore: update welcome gif by @rayrayraykk in #3245
- docs(figs): update figures in website by @lalaliat in #3249
- refactor(website): update demo fig by @cuiyuebing in #3253
- feat(token_usage): 添加会话级别token使用情况记录与提取功能 by @Daye1112 in #3214
- refactor(website and docs): update contributor list and faq by @cuiyuebing in #3263
- Fix(Provider): Fixed an issue where the update button remained active after the update was complete. by @pan-x-c in #3284
- chore(version): update release note of v1.1.0 by @xieyxclack in #3282
New Contributors
Full Changelog: v1.0.2...v1.1.0-beta.1
v1.0.2
✨ Added
Core
- Plugins: Install extensions from your workspace
plugins/folder (#3101, #3131, #3132). copaw task: Run one-off jobs from the terminal with no web server (#3031)./modelin chat: Switch models, list what is available, reset to the default, and inspect a model—without opening Settings (#3133).
Models and providers
- SiliconFlow: Ready-to-use China and International endpoints for SiliconFlow’s OpenAI-compatible API (#2886).
- CoPaw Local: Image and video capable models, richer settings in the console, and more reliable downloads and capability detection on Windows (#3021, #3087, #3140).
Security
- Safer saved secrets: API keys and similar values are encrypted on disk; where possible the encryption key stays in the OS keychain (#3025).
Console and UI
- Chat input history: Browse previous user lines with the arrow keys (#2466).
- Chat search: Search message text across sessions (#2842).
- Pinned sessions: Pin threads so they stay at the top of the list (#3137).
- Per-agent chat: Restore the last open chat when you switch agents (#3155).
- Visual polish: Icons for built-in tools and provider logos next to models (#3061, #3130).
Skills and Tools
- Skill commands:
/skillsshows what is enabled for the channel; type/<skill name>to open a skill or run it with your message (#3150). - Tags for pool skills: Organize the shared pool with tags (#2837, #3069).
- MCP tool discovery: Query each connected MCP server for its tool names, descriptions, and parameters over the HTTP API (#3149).
Channels
- QQ: Send files and rich media consistently across message types (#3012).
- WeCom: Incoming messages keep quote/reply context so the agent sees what was referenced (#3024).
🔄 Changed
- Timezone picker: Region names follow your selected UI language (#2497).
- File sizes: Human-readable sizes everywhere in the console (#2808).
- Console startup: Heavier settings pages load on demand so the first screen opens faster (#3122).
- Large skill lists: Smoother scrolling and interaction when you have many pool skills (#3141, #3158).
- Provider connection tests: Status messages appear in your language (#2913).
- Error Code: More consistent error codes across channels, APIs, and CLI (#3110).
🐛 Fixed
Channels
- iMessage: Private chats now respect your DM policy and allowlist the same way as other channels (#2491).
- Discord: Long assistant replies no longer break Markdown code blocks mid-fence (#2976).
- Feishu: Reconnecting and running several agents no longer trips over shared locks or mixed-up event loops (#3095, #3145).
Tools and skills
- MCP: Closing or reconnecting clients after reload no longer causes runaway CPU usage (#3106).
- Browser automation: Clicking elements when duplicates exist targets the right one; the docs explain selectors more clearly (#3023).
- Shell tool: Commands with quoted text keep their line breaks intact (#3070).
- Skills: Corrupt or non-object skill metadata no longer crashes requirement parsing (#3072).
New Contributors
- @energyd made their first contribution in #2976
- @fengrui-z made their first contribution in #2842
- @alostbear made their first contribution in #2491
- @chr6192 made their first contribution in #3031
- @yyyzl made their first contribution in #3122
Full Changelog: v1.0.1...v1.0.2