✨ Added
Security
- Tool Guard: Pre-execution security layer that scans tool parameters for risky patterns (e.g.,
rm,mvin shell commands). Risky calls are blocked until the user approves via/approve; denied tools are always blocked. New Security settings page for managing rules and approvals (#563)
Channel & Communication
- Mattermost Channel: Full Mattermost integration supporting DMs and threaded conversations with text, images, files, video, and audio, plus typing indicator and configurable access policies (#1071)
- Matrix Channel: New Matrix protocol channel integration using matrix-nio, supporting text, images, video, audio, and file messages (#969)
- Require Mention Filtering: Group messages are ignored unless the bot is @mentioned (or a slash command is used on Telegram), configurable per-channel via
require_mentionfor Discord, DingTalk, Feishu, and Telegram (#1049) - Telegram Markdown Rendering: Markdown-to-Telegram HTML conversion for LLM output including bold, italic, code blocks, links, blockquotes, spoilers, and more, with automatic plain text fallback on send failure (#850)
- Feishu Emoji Reaction: Automatically adds a "DONE" emoji reaction to the last Feishu reply when processing completes successfully (#1158)
- Feishu Rich Text Media: Parsing of media files (videos, audio, and other files) in Feishu post-type rich text messages, with automatic download and attachment (#1159)
- QQ Image Messages: Support for sending image messages via
[Image: url]tags in agent output for both DM and group chats (#1212)
Model & AI Features
- Model Retry: Automatic retries for LLM API calls on transient errors (rate limit, timeout, connection) with exponential backoff, configurable via
COPAW_LLM_MAX_RETRIES,COPAW_LLM_BACKOFF_BASE,COPAW_LLM_BACKOFF_CAP(#1150) - LM Studio Provider: LM Studio added as a built-in model provider with configuration UI and documentation (#1134)
- Token Usage Tracking: End-to-end token usage tracking across providers with a Token Usage settings page, API, and
get_token_usagetool (#775, #1349, #1284) - Provider Advanced Configuration: Added
generate_kwargseditor for custom generation parameters (e.g., temperature, top_p, enable_thinking); providers without API keys (Ollama, LM Studio) are now correctly shown as configured (#1170)
Console & UI
- Workspace Drag-and-Drop: Drag-and-drop reordering for enabled system prompt files in Agent Workspace, controlling prompt file precedence (#1121)
- Chat Model Selection: Model selector dropdown on the Chat page for switching models during conversation (#1140)
- Agent Language Selector: Change the agent's language directly from the console Agent Config page (#1251)
- Tool Batch Toggle: "Enable All" and "Disable All" buttons on the Tools page for batch tool management (#1112)
- Chat URL Routing: Direct URL access to specific chat sessions via
/chat/:chatIdwith automatic URL synchronization (#1221) - Context Management UI: New Context Management section in Agent Config with adjustable compact ratio, reserve ratio, and tool result compaction settings, displaying derived token thresholds (#1247)
- Preserve Chat on Navigate: Chat stays mounted when switching to other pages, preserving in-progress messages, cursor position, and running state (#1340)
Skills
- AI Skill Optimization: "AI Optimize" button in the skill editor uses the active model to rewrite skill content with streaming output; supports English, Chinese, and Russian prompts (#853)
- Skill Card Description: Skill cards now display the
descriptionfrom SKILL.md frontmatter so you can see what each skill does without opening it (#1235)
Installation & Platform
- Auto PyPI Mirror: Automatic PyPI mirror selection in the install script, detecting connectivity and falling back to Alibaba Cloud mirror for users in China (#925, #1330)
- Docker Secret Directory: Added
/app/working.secretto Docker layout for persistent provider settings and API keys (#1050)
🔄 Changed
Model & Provider
- Provider Connection Test: Connection test methods now return descriptive failure messages instead of just a boolean, making it easier to diagnose configuration issues (#1120)
- ModelScope Defaults: Updated default models to
Qwen3.5-122B-A10BandGLM-5(#1154) - Provider ID Conflict Resolution: Duplicate provider IDs now auto-resolve (e.g.,
openai→openai-custom) instead of raising errors; connection testing disabled for custom providers (#1234) - Model Discovery On-Demand: Opening the provider page no longer auto-triggers model fetching; use the "Discover Models" button to refresh the model list (#1342)
Performance
- Async Zip Operations: Workspace zip/unzip operations now run asynchronously to prevent blocking during download and upload (#1128)
- Async Session Load: Session load converted to async function, preventing disk operations from blocking the server (#1236)
Console, Skills & System
- Tools Page Styling: Updated tool card hover effects, enabled/disabled states, and status indicators (#1092)
- Container Detection: Simplified container detection logic for more reliable environment variable handling (#1075)
- Built-in Skills Improvement: Updated docx, pdf, pptx, xlsx skills with clearer prerequisites and new documentation for pdf/forms and pptx/editing; added
~home directory support in file operations and venv Python onPATHfor shell subprocesses (#1147) - Himalaya Email Skill: Updated with send/compose support via
template write | template send, attachment handling documentation, and 163 mail configuration notes (#1279) - Memory Docs Refactor: Reorganized memory and context documentation structure, updated README links, and bumped
reme-aito 0.3.0.6b3 (#1190) - Model Selector Styling: Fixed model selector alignment in the chat header for consistent layout (#1309)
- Config & Security Page Refactor: Restructured Agent Config and Security settings pages with clearer layout, improved styling, and better responsiveness (#1333)
🐛 Fixed
Channel Fixes
- DingTalk Auth Failure Cleanup: DingTalk channel now shuts down cleanly when authentication fails, properly canceling the main task instead of relying on a fixed-time sleep (#1039)
- Discord Message Splitting: Messages exceeding Discord's 2000-character limit are automatically split at line breaks, preserving markdown code fences (#1001)
- Channel Config Type Alignment: Matrix, Mattermost, and MQTT channel configs are now correctly typed and validated via the API (#1289)
Platform Compatibility
- Windows Shell Encoding: Shell command output on Windows now uses smart decoding (UTF-8 first, locale fallback) for reliable handling of mixed-encoding output (#1103)
- Windows Process Cleanup: Shell command execution on Windows now properly kills the full process tree on timeout, preventing hangs from descendant processes keeping pipes open (#1260)
- Desktop SSL & Windows: Fixed SSL certificate loading in packaged desktop apps via certifi; preserved system PATH in launchers; added
COPAW_LOG_LEVELsupport; resolved log file locking and subprocess output blocking on Windows (#1252, #1282) - Desktop IME & Navigation: Fixed Enter key submitting chat while typing with IME, enabled external URL opening in system browser, and text selection in webview (#1239)
Console & UI
- Magic Command State: Fixed magic commands silently destroying session state; session data is now updated by key path instead of full overwrite (#1168)
- Ollama Modal Re-renders: Fixed unnecessary child component re-renders when opening the Ollama model manage modal (#1242)
- Chat Request Deduplication: Prevented duplicate API calls when multiple components request the same chat session simultaneously (#1307)
📚 Documentation
- Roadmap & Comparison: Updated website and README roadmaps (EN/ZH/JA) with Memory System and Small+Large Model Collaboration; updated CoPaw vs OpenClaw comparison table (#1062, #1110)
- Contributing Guide: Fixed grammar and clarity in CONTRIBUTING_zh.md (#1119)
🔧 CI/CD
- Docker Release Workflow: Refactored Docker CI to properly distinguish
.postreleases (updatelatest) from pre-release versions (beta/alpha/rc/dev) (#1069) - Test CI: Added GitHub Actions workflow for unit and integrated tests with
scripts/run_tests.pyfor local runs (#1152) - Test Trigger Optimization: Narrowed test workflow triggers with
pathsfilters to only run on changes tosrc/,tests/,pyproject.toml,setup.py, and.github/workflows/tests.yml(#1245)
New Contributors
- @2catycm made their first contribution in #1119
- @2niuhe made their first contribution in #1071
- @yingdachen made their first contribution in #1154
- @Atletico1999 made their first contribution in #1001
- @buecker made their first contribution in #969
- @Cirilla-zmh made their first contribution in #775
- @gnipping made their first contribution in #563
- @Nufe-muzi made their first contribution in #1212
- @FuKunZ made their first contribution in #925
- @JasonBuildAI made their first contribution in #1289
- @StarMoonCity made their first contribution in #1330
- @walker83 made their first contribution in #853
- @lllcy made their first contribution in #1235
Full Changelog: v0.0.6...v0.0.7