Skip to content

Releases: agentscope-ai/QwenPaw

v1.1.5.post2

06 May 13:02
24c0610

Choose a tag to compare

What's Changed

  • docs(website): update documentation to v1.1.5 by @xieyxclack in #4013
  • feat(chat): generate session titles asynchronously via LLM by @ekzhu in #3829
  • fix(message_processing): return resolved path for file:// URL audio blocks by @karls0r in #4021
  • Fix(Provider): Increase max_token for anthropic compatible models by @pan-x-c in #4054
  • perf(console): Solve duplicate rendering by @zhaozhuang521 in #4052
  • fix(mcp): typo fix by @qbc2016 in #4058
  • fix(mcp): use sse_read_timeout as MCP tool execution_timeout instead of HTTP connect timeout by @qbc2016 in #4061
  • fix(utils): remove redundant codes by @qbc2016 in #4048
  • fix(channel): telegram network retry by @Leirunlin in #4039
  • feat(i18n): add Brazilian Portuguese (pt-BR) locale support by @Jailtonfonseca in #4009
  • fix(skill): resilient loading for migrated or malformed skill & skill pool entries by @Leirunlin in #4016
  • fix(approval): /approve shorthand ignores request_id argument by @xieyxclack in #4014
  • docs(faq): Docs for handling APITimeoutError when running in WSL2 (NAT mode) by @hllqkb in #4005
  • feat(skill): Add skill install/uninstall cli by @Leirunlin in #4053
  • chore(version): bumping version to 1.1.5p2 by @xieyxclack in #4071

New Contributors

Full Changelog: v1.1.5.post1...v1.1.5.post2

v1.1.5.post1

30 Apr 10:02
9b7acb3

Choose a tag to compare

What's Changed

  • chore(version): update version to 1.1.5.post1 by @zhijianma in #3970
  • feat(feishu): introduce FeishuCardHandler and upgrade tool_guard approval to interactive buttons by @hongxicheng in #3941
  • fix(WeCom): keep placeholder stream alive to prevent stuck "Thinking..." by @hongxicheng in #3950
  • fix(chat): fix CodeMirror line wrapping in tool call input/output blocks by @bowenliang123 in #3960
  • fix(WeCom): avoid double reconnect race and cross-loop disconnect by @hongxicheng in #3963
  • feat(WeCom): add share_session_in_group toggle for group chats by @hongxicheng in #3948
  • feat(app): prevent path traversal by rejecting absolute static file paths by @zhijianma in #3973
  • feat(feishu): hint docs link on approval card when card.action.trigger is unsubscribed by @hongxicheng in #3982

Full Changelog: v1.1.5...v1.1.5.post1

v1.1.5

29 Apr 08:49
283293f

Choose a tag to compare

✨ Added

  • CJK-Aware Memory Search: Memory search now tokenizes CJK queries at character level while preserving Latin/digit runs (#3811)
  • Context Compaction Fallback: When LLM-based context compaction fails or is disabled, the context manager now retries the context split with a raised reserve to keep more recent conversation turns (#3882)
  • Adaptive Model Retry: The runtime now learns per-model quirks from API failures and proactively adapts subsequent requests (#3874)
  • ACP Agent Rename & Delete: ACP agents can now be renamed and deleted from the WebUI (#3859)
  • QQ Voice & ASR Support: QQ channel now detects voice messages by file extension and uses platform ASR transcription when available (#3845)

🔄 Changed

  • Agent Statistics Navigation: Moved Agent Statistics page into the Workspace group on the sidebar (#3754)
  • Dockerfile Cleanup: Build directory is now removed after pip install in Dockerfile for a leaner image (#3638)
  • Chat Component Upgrade: Upgraded @agentscope-ai/chat with stopChat fix (#3917)

⚡ Performance

  • Config Loading Cache: Root and per-agent config files are now cached with mtime-based invalidation (#3865)
  • Skill Manifest Cache: Skill manifest reads are cached by file path and mtime, reducing repeated disk reads on hot paths (#3910)
  • Model API Deduplication: Concurrent listProviders and getActiveModels calls on the chat page now deduplicate their own in-flight requests (#3897)
  • Console Chat Performance: Chat session list is virtualized with react-window, search loads sessions progressively with a progress indicator (#3908, #3912)

🐛 Fixed

Channels

  • Approval in Channels: Fixed /approve and /deny commands not working in channels (#3832, #3896)
  • WeCom @Mention Commands: Fixed slash commands failing in WeCom group chats when the bot is @-mentioned (#3903)
  • Feishu Reaction Events: Registered no-op handlers for Feishu message reaction events (#3890)
  • QQ WebSocket Reconnect: QQ channel now reconnects on recoverable WebSocket errors (#3872)

Console & UI

  • Per-Tab Agent Selection: Fixed agent selection leaking between browser tabs (#3857, #3867)
  • Backups Import Icon: Updated the backup import button to use an import icon instead of upload (#3909)

Agent System

  • Timezone Normalization: Non-standard timezone names are now mapped to canonical IANA identifiers (#3858)
  • ACP Fallback Inheritance: Fallback agent profile now inherits ACP configuration from the main config (#3834)
  • MCP Execution Timeout: MCP client timeout is now passed through to tool execution (#3904)

New Contributors

Full Changelog: v1.1.4...v1.1.5

v1.1.5-beta.1

28 Apr 10:02
49903e8

Choose a tag to compare

v1.1.5-beta.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v1.1.4.post2...v1.1.5-beta.1

v1.1.4.post2

25 Apr 15:04
9489647

Choose a tag to compare

What's Changed

Full Changelog: v1.1.4.post1...v1.1.4.post2

v1.1.4.post1

24 Apr 15:32
e6083b1

Choose a tag to compare

What's Changed

  • feat(memory): add CJK-aware query tokenization for memory search by @jinliyl in #3811
  • Revert "build(console): upgrade Vite from v6 to v8 for build performance boost (#3712)" by @zhijianma in #3812

Full Changelog: v1.1.4...v1.1.4.post1

v1.1.4

24 Apr 10:38
ae719fa

Choose a tag to compare

✨ Added

Agent System

  • Memory & Context refactor: Refactor long-term memory module with pluggable backends, automatic memory summarization every N conversation turns, automatic memory retrieval, and a new context management interface (#3548)
  • Plan Mode: Opt-in structured planning mode — use /plan to create step-by-step task plans that the agent follows, with a live plan panel in the console (#3686, #3787)

Providers

  • DeepSeek V4 Models: Added DeepSeek V4 Flash and V4 Pro as built-in models (#3797)

Security

  • Configurable Shell Evasion Checks: Toggle individual shell evasion detection rules on or off from the Security settings page, with per-check risk-type tagging (#3694, #3715, #3781)
  • Auth-Bypass Host Whitelist: Configurable allow_no_auth_hosts list for API access without authentication, with IP validation and security warnings in the console (#3739)

Tools

  • Browser Launch Parameters: Pass custom Chromium flags and a custom browser executable path to browser_use (#3556)
  • Shell Command Timeout: Configurable default timeout for execute_shell_command per agent (#3732)

Console & UI

  • Per-Agent Model Assignment: Assign a specific LLM model to each agent from Settings → Agents (#3599)
  • Session View Button: "View" action on the Sessions table to jump directly into the corresponding chat session (#3615)
  • Session Right-Click Context Menu: Right-click on chat session items for quick open, rename, pin/unpin, and delete actions (#3770)

Channels

  • SIP Voice Channel: New SIP phone channel with dual-mode backends — pyVoIP for development and LiveKit for production (#3449)
  • DingTalk Voice Recognition: Use DingTalk's built-in voice recognition instead of downloading and transcoding audio locally (#3681)
  • Telegram Command Menu: Expose /model and /stop in the Telegram bot's command menu for discoverability (#3714)
  • QQ Quoted Message Support: Parse reply/quote metadata and inject quoted text and attachments into agent requests (#3735)
  • DingTalk Markdown Messages: Send shorter replies as DingTalk Open API markdown for richer message rendering (#3771)
  • DingTalk Cron Message Type: Independent message type for scheduled/cron sends, allowing card-style messages for cron while using markdown for interactive chat (#3778)
  • WeChat Interactive Wizard: Interactive configure_weixin wizard in the CLI channel setup flow (#3699)

🔄 Changed

  • Tool Guard Approval System: Refactored tool-guard with interactive approval cards in the console, cross-session approval routing (approve sub-agent tool calls from the main session), configurable execution levels (Strict/Smart/Auto/Off), REST API and /approval CLI command (#3656, #3737)
  • Dynamic Plugin Registration: Replaced the build-time generated host module registry with runtime import.meta.glob-based registration (#3676, #3692, #3696)
  • Docker Build Improvements: Moved config.json initialization from image build to container entrypoint for volume-mounted deployments, and replaced pip with uv for faster package installs (#3698, #3723, #3769)
  • Agent Language Sync: New agents now inherit the console UI language (#3720)
  • Agent Selection Persistence: Agent selection state persisted in localStorage so it survives browser restarts (#3772)
  • Token Usage Buffering: Asynchronous buffered token usage recording with periodic disk flush (#3766)

🐛 Fixed

Channels

  • Filter Tool Messages: Respect filter_tool_messages setting for in-progress content events (#3660)
  • File URL Encoding: Percent-encode non-ASCII characters in file:// URLs to fix file send failures on Windows and paths with CJK characters (#3625)
  • WeChat Send Response: Fixed WeChat send_text failing on empty or non-dict API responses (#3685)
  • WeChat Icon Mapping: Fixed wechat channel key not mapping to the correct WeChat icon in chat history sidebar (#3691)
  • WeChat QR Login Timeout: Extended WeChat QR-status polling timeout to 60 seconds with retry on read timeout during login (#3700)

Console & UI

  • Agent Stats: Fixed page crash from incorrect chart library imports and stats not refreshing when switching agents (#3724, #3743)

Providers

  • Duplicate Model Warning: Show a localized warning when adding a model ID that already exists (#3773)
  • Anthropic File Block: Convert unsupported file blocks to text placeholders in Anthropic-formatted history to prevent API errors (#3786)

Packaging

  • Discord.py Conda-Unpack: Added discord.py to conda-unpack reinstall list to fix Windows path corruption (#3730)

📝 Documentation

  • Memory-Evolving & Proactive Agent: Added dedicated documentation pages for memory-evolving and proactive agent features (#3755, #3764)
  • Agent Team Practice Guide: Added a comprehensive practice guide for Agent Team collaboration (#3784)
  • ACP Integration: Restructured and polished ACP integration documentation, with in-UI documentation link (#3741)
  • Docker Backup Volume: Added Docker volume mount documentation for backup & restore (#3736)
  • Backup Figures: Updated backup documentation figures (#3678)

🧪 Testing & CI

  • Agent Unit Tests: Added unit tests for hooks, memory, and utils modules (#3630)

New Contributors

Full Changelog: v1.1.3...v1.1.4

v1.1.4-beta.1

23 Apr 12:02
fca708c

Choose a tag to compare

v1.1.4-beta.1 Pre-release
Pre-release

What's Changed

  • chore(version): bumping version to 1.1.4b1 by @qbc2016 in #3674
  • docs(backup): fix language issues in fig by @jinglinpeng in #3678
  • chore(console): add .prettierignore and update format scripts to excl… by @zhijianma in #3676
  • doc(security): fix format issues in doc by @gnipping in #3684
  • chore(deploy): update deployment workflow to skip pre-releases by @zhijianma in #3689
  • feat(memory): rebuild memory & context by @jinliyl in #3548
  • feat(startup): warn when console frontend build is outdated by @shadowabi in #3394
  • feat(browser): add browser_args and executable_path parameters for browser_use by @shadowabi in #3556
  • feat(agents): add per-agent model assignment in settings UI by @seoeaa in #3599
  • feat(channels): add SIP voice channel with pyVoIP/LiveKit dual-mode, streaming STT/TTS, and multi-turn conversation support by @shaohuaxi in #3449
  • fix(channels): respect filter_tool_messages in on_event_content by @vincentyzhj in #3660
  • chore(console): comment out vitePatchable plugin in Vite configuration by @zhijianma in #3692
  • feat(console): add View button in session list to enter the corresponding chat sesssion by @bowenliang123 in #3615
  • perf(agent-stats): optimize session file processing with fast-skip and bounded concurrency for /agent-stats API by @bowenliang123 in #3662
  • feat(DingTalk): use built-in voice recognition from DingTalk callback by @hongxicheng in #3681
  • fix(console): map wechat channel key to WeChat icon in chat history sidebar by @bowenliang123 in #3691
  • refactor(plugins): switch to dynamic module registration without gene… by @zhijianma in #3696
  • fix(channels/weixin): accept empty sendmessage response as success by @hlgone in #3685
  • feat(security): add shell invasion guard configuration by @gnipping in #3694
  • Console/icon by @zhaozhuang521 in #3683
  • feat(plan): add plan mode by @qbc2016 in #3686
  • feat(telegram): register /model, /stop in bot command menu by @hongxicheng in #3714
  • perf: Tool Guard Approval System Refactor by @rayrayraykk in #3656
  • build(console): upgrade Vite from v6 to v8 for build performance boost by @bowenliang123 in #3712
  • improve(deploy): enable runtime auto-initialization of config.json by @zhijianma in #3723
  • chore: merge bugfix in v1.1.3.post1 into main by @xieyxclack in #3721
  • fix(console): sync new agent language with console UI by @xieyxclack in #3720
  • fix: unable to open /agent-stats page due to incorrect imports by @bowenliang123 in #3724
  • test(agents): unit tests for hooks / memory / utils + unit-tests.yml CI by @hanson-hex in #3630
  • feat(cli/channels): add interactive configure_weixin wizard by @hlgone in #3699
  • fix: remove dynamic environment variable coupling in tavily_search MCP default config by @rayrayraykk in #3725
  • Revert "feat(startup): warn when console frontend build is outdated" by @rayrayraykk in #3726
  • fix(channels/weixin): extend QR-status polling timeout to 60s by @hlgone in #3700
  • feat: Security by @zhaozhuang521 in #3715
  • feat(tool): support configuring timeout of run_shell_command by @xieyxclack in #3732
  • feat(model): support retry for httpx errors by @qbc2016 in #3734
  • feat(QQ): add quoted message support for QQ channel by @hongxicheng in #3735
  • docs: add Docker volume mount section for backup & restore by @jinglinpeng in #3736
  • Console/configuration by @zhaozhuang521 in #3737
  • fix(pack): add discord.py to conda-unpack affected packages by @hongxicheng in #3730
  • refactor(api): migrate agent endpoints to workspace by @zhijianma in #3738
  • docs: polish ACP docs and add ACP doc link by @x1n95c in #3741
  • feat: add configurable allow_no_auth_hosts whitelist for API authentication by @rayrayraykk in #3739

New Contributors

Full Changelog: v1.1.3...v1.1.4-beta.1

v1.1.3.post1

23 Apr 05:38
ec3fd32

Choose a tag to compare

What's Changed

Full Changelog: v1.1.3...v1.1.3.post1

v1.1.3

22 Apr 04:31
aa324e3

Choose a tag to compare

✨ Added

Agent System

  • Backup & Restore: Backup and restore system — create scoped snapshots of agents, skills, memory, and sessions with per-agent selection, import/export as zip files (#3534, #3655)
  • ACP Server: Expose QwenPaw agents as ACP (Agent Communication Protocol) endpoints over stdio via qwenpaw acp (#3487, #3589, #3595)
  • Proactive Agent Messaging: Agents can proactively send messages, using session memory and screen context to provide timely information (#3466, #3643)
  • Cross-Provider Message Normalization: Seamlessly switch LLM providers mid-conversation — provider-specific message fields are automatically cleaned and normalized when changing models (#3530)

Console & UI

  • Console Plugin System: Extensible plugin architecture for the console — third-party plugins can inject sidebar pages, register routes, and share host modules (#3357, #3512, #3631)
  • Agent Statistics Page: New dashboard with session and message trend charts, token usage over time, and channel breakdown pie charts (#3365, #3608, #3632)

Skills

  • Skill Page Improvements: Redesigned Skills and Skill Pool pages with batch select/manage, separated search and filter controls (#3616, #3634)
  • Builtin Skill Language Switch: All builtin skills now ship with English and Chinese variants. Switch language from the Skill Pool page, with default language support when importing skills to agents (#3558, #3644)

Security

  • Shell Evasion Guard: New Tool Guard guardian that detects shell command obfuscation patterns (#3400, #3668)
  • Enhanced Tool Guard Response: Tool guard messages now include risk severity level and a localized explanation of why a tool call was blocked or requires approval (#3515)

Providers

  • Local Model Management: Configure custom server ports for local models (llama.cpp) and monitor server logs in real-time (#3596, #3604)
  • OpenRouter Multimodal Detection: OpenRouter models now automatically report multimodal capabilities (image/video support) from the model registry (#3584, #3604)
  • Aliyun Coding Plan International: Added international region support for the Aliyun Coding Plan provider (#3609)

Channels

  • QQ Instant Acknowledgment: Configurable instant reply for QQ channel — acknowledge the user immediately while the agent processes the request (#3246)
  • Telegram Typing Indicator: Typing indicator now stays active during tool execution, providing continuous visual feedback while the agent works (#3585)
  • DingTalk @Mention on Reply: Automatically @mention the original sender when replying in DingTalk group chats (#3591)
  • Channel Health Check & Restart API: Per-agent HTTP endpoints to check individual channel health status and hot-restart channels (#3649)

CLI

  • Update Provider Base URLs: qwenpaw providers update now supports updating provider base URLs from the command line (#3536)

🔄 Changed

  • Debug Page Redesign: Relocated the Debug page under Settings with improved component structure, dedicated log viewer, and dark mode styling fixes (#3539, #3547, #3590)
  • make_plan Skill Update: Cleaned up stale documentation references and streamlined the make_plan skill (#3535)
  • Unified Channel Media Directory: All channels now resolve media_dir from the agent workspace consistently, ensuring isolated file storage across channel types (#3610)

🐛 Fixed

Console & UI

  • Preview URL Prefix: Fixed duplicated URL prefixes in file preview paths (#3355)
  • Markdown Rendering: Fixed markdown rendering and code block copy styling in workspace file editor (#3639)
  • Table Scrolling: Fixed table scrolling on Sessions and Cron Jobs pages (#3654)

Channels

  • WeCom Attachment Access: Fixed WeCom attachment access failing in server deployments (#3079)
  • WeCom File Upload: Fixed event loop blocking in WeCom file uploads and added relative path support for send_file_to_user (#3128)
  • WeCom Duplicate Messages: Fixed duplicate chat entries for WeCom group messages (#3529)
  • WeCom Screenshot Filename: Fixed CJK characters in WeCom screenshot filenames causing download failures (#3633)

New Contributors

Full Changelog: v1.1.2...v1.1.3