## ✨ 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](https://github.com/agentscope-ai/QwenPaw/pull/3534), [#3655](https://github.com/agentscope-ai/QwenPaw/pull/3655))
- **ACP Server**: Expose QwenPaw agents as ACP (Agent Communication Protocol) endpoints over stdio via `qwenpaw acp` ([#3487](https://github.com/agentscope-ai/QwenPaw/pull/3487), [#3589](https://github.com/agentscope-ai/QwenPaw/pull/3589), [#3595](https://github.com/agentscope-ai/QwenPaw/pull/3595))
- **Proactive Agent Messaging**: Agents can proactively send messages, using session memory and screen context to provide timely information ([#3466](https://github.com/agentscope-ai/QwenPaw/pull/3466), [#3643](https://github.com/agentscope-ai/QwenPaw/pull/3643))
- **Cross-Provider Message Normalization**: Seamlessly switch LLM providers mid-conversation — provider-specific message fields are automatically cleaned and normalized when changing models ([#3530](https://github.com/agentscope-ai/QwenPaw/pull/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](https://github.com/agentscope-ai/QwenPaw/pull/3357), [#3512](https://github.com/agentscope-ai/QwenPaw/pull/3512), [#3631](https://github.com/agentscope-ai/QwenPaw/pull/3631))
- **Agent Statistics Page**: New dashboard with session and message trend charts, token usage over time, and channel breakdown pie charts ([#3365](https://github.com/agentscope-ai/QwenPaw/pull/3365), [#3608](https://github.com/agentscope-ai/QwenPaw/pull/3608), [#3632](https://github.com/agentscope-ai/QwenPaw/pull/3632))

**Skills**

- **Skill Page Improvements**: Redesigned Skills and Skill Pool pages with batch select/manage, separated search and filter controls ([#3616](https://github.com/agentscope-ai/QwenPaw/pull/3616), [#3634](https://github.com/agentscope-ai/QwenPaw/pull/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](https://github.com/agentscope-ai/QwenPaw/pull/3558), [#3644](https://github.com/agentscope-ai/QwenPaw/pull/3644))

**Security**

- **Shell Evasion Guard**: New Tool Guard guardian that detects shell command obfuscation patterns ([#3400](https://github.com/agentscope-ai/QwenPaw/pull/3400), [#3668](https://github.com/agentscope-ai/QwenPaw/pull/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](https://github.com/agentscope-ai/QwenPaw/pull/3515))

**Providers**

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

**Channels**

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

**CLI**

- **Update Provider Base URLs**: `qwenpaw providers update` now supports updating provider base URLs from the command line ([#3536](https://github.com/agentscope-ai/QwenPaw/pull/3536))

## 🔄 Changed

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

## 🐛 Fixed

**Console & UI**

- **Preview URL Prefix**: Fixed duplicated URL prefixes in file preview paths ([#3355](https://github.com/agentscope-ai/QwenPaw/pull/3355))
- **Markdown Rendering**: Fixed markdown rendering and code block copy styling in workspace file editor ([#3639](https://github.com/agentscope-ai/QwenPaw/pull/3639))
- **Table Scrolling**: Fixed table scrolling on Sessions and Cron Jobs pages ([#3654](https://github.com/agentscope-ai/QwenPaw/pull/3654))

**Channels**

- **WeCom Attachment Access**: Fixed WeCom attachment access failing in server deployments ([#3079](https://github.com/agentscope-ai/QwenPaw/pull/3079))
- **WeCom File Upload**: Fixed event loop blocking in WeCom file uploads and added relative path support for `send_file_to_user` ([#3128](https://github.com/agentscope-ai/QwenPaw/pull/3128))
- **WeCom Duplicate Messages**: Fixed duplicate chat entries for WeCom group messages ([#3529](https://github.com/agentscope-ai/QwenPaw/pull/3529))
- **WeCom Screenshot Filename**: Fixed CJK characters in WeCom screenshot filenames causing download failures ([#3633](https://github.com/agentscope-ai/QwenPaw/pull/3633))
