## ✨ Added

**PawApp Platform**

- **PawApp SDK & Kanban App**: A new mini-app platform that lets plugins build rich interactive UIs on top of QwenPaw. Ships with a built-in Kanban task board app for project management ([#6150](https://github.com/agentscope-ai/QwenPaw/pull/6150))

**Custom Agent Modes**

- **User-editable Agent Mode**: Create and edit custom agent loop modes directly from the console — define iteration limits, stop conditions, and approval gates without touching code ([#6270](https://github.com/agentscope-ai/QwenPaw/pull/6270))
- **Oh-My-Paw Plugin**: Five ready-to-use Agent Loops (UltraQA, Ralph, Ultrawork, Autopilot, Team) for multi-agent collaboration and long-running tasks ([#5882](https://github.com/agentscope-ai/QwenPaw/pull/5882))

**Memory & Observability**

- **ReMe Light index maintenance**: Explicit index rebuild via console button or API, improved startup self-repair, and optimized Markdown chunking for large documents ([#6235](https://github.com/agentscope-ai/QwenPaw/pull/6235))
- **ReMe reliability improvements**: Runtime memory stats inspection, CJK embedding safety, and background summarizer graceful shutdown ([#6098](https://github.com/agentscope-ai/QwenPaw/pull/6098))
- **ReMe indexing safeguards**: Enhanced configuration validation and indexing stability ([#6153](https://github.com/agentscope-ai/QwenPaw/pull/6153))
- **Langfuse trace enrichment**: Traces now carry user ID, session ID, and package version for better filtering and analysis ([#5922](https://github.com/agentscope-ai/QwenPaw/pull/5922))
- **History retention config**: Scroll context retention days now configurable from the console ([#6214](https://github.com/agentscope-ai/QwenPaw/pull/6214))

**Console & Desktop**

- **Chat archiving**: Archive old conversations to keep the session list clean ([#6078](https://github.com/agentscope-ai/QwenPaw/pull/6078))
- **Drag-and-drop file upload**: Drop files directly into the chat input area in the desktop app ([#6327](https://github.com/agentscope-ai/QwenPaw/pull/6327))
- **Plugin market sorting**: Sort plugins by downloads, update time, or favorites ([#6349](https://github.com/agentscope-ai/QwenPaw/pull/6349))
- **One-click agent config copy**: Duplicate an agent configuration with a single click ([#6262](https://github.com/agentscope-ai/QwenPaw/pull/6262))
- **Configurable log rotation**: Set log file rotation limits from the configuration ([#6183](https://github.com/agentscope-ai/QwenPaw/pull/6183))

**Security & Governance**

- **Windows restricted-token sandbox**: Code execution isolated via Windows restricted tokens for an additional sandbox option ([#5931](https://github.com/agentscope-ai/QwenPaw/pull/5931))
- **Governance rules**: New governance rule definitions for finer-grained access control ([#6215](https://github.com/agentscope-ai/QwenPaw/pull/6215))
- **Sensitive file detection**: More file types detected as sensitive; global file reads now allowed by default for non-sensitive paths ([#6067](https://github.com/agentscope-ai/QwenPaw/pull/6067))

**Runtime & Multi-Agent**

- **Multi-agent startup control**: Bounded startup concurrency with partial-readiness indicator in the console ([#6198](https://github.com/agentscope-ai/QwenPaw/pull/6198))
- **Silent cron delivery**: Scheduled tasks can deliver results silently without notifications ([#6080](https://github.com/agentscope-ai/QwenPaw/pull/6080))
- **Event metadata preservation**: Plugin and extension metadata is now carried through real-time output envelopes ([#6224](https://github.com/agentscope-ai/QwenPaw/pull/6224))
- **Readiness probe**: New `/api/healthz` endpoint for health-check and container orchestration ([#6028](https://github.com/agentscope-ai/QwenPaw/pull/6028))
- **Trusted proxy auth**: Verify trusted proxies and resolve real client IPs for deployments behind load balancers ([#6030](https://github.com/agentscope-ai/QwenPaw/pull/6030))

**CLI**

- **`gh` CLI allowed in governance**: GitHub CLI commands are now permitted by the governance policy ([#6031](https://github.com/agentscope-ai/QwenPaw/pull/6031))

## 🔄 Changed

- The default ReAct loop is now modeled as a first-class `DefaultMode`, giving each mode explicit ownership of its lifecycle and gates ([#6210](https://github.com/agentscope-ai/QwenPaw/pull/6210))
- ACP slash commands decoupled from core, safety checks extracted into a standalone module, and bootstrap flow unified ([#5796](https://github.com/agentscope-ai/QwenPaw/pull/5796))
- Channel tool-call and tool-result display now have separate toggle controls ([#6233](https://github.com/agentscope-ai/QwenPaw/pull/6233))
- ToolGuard detection rules are now bridged into the governance policy engine for unified evaluation ([#6390](https://github.com/agentscope-ai/QwenPaw/pull/6390))
- `DEFAULT_USER_RULES` auto-sync no longer requires a manual whitelist ([#6025](https://github.com/agentscope-ai/QwenPaw/pull/6025))
- Tool approval button now uses `toolSource` instead of `executionLevel` for the "Always Allow" control ([#6095](https://github.com/agentscope-ai/QwenPaw/pull/6095))
- Agent reasoning optimized to reduce redundant thinking loops and duplicate tool invocations (v2.0.0.post4)

## 🐛 Fixed

**Desktop**

- Desktop app now gracefully shuts down the backend before exit, preventing lost memory and incomplete cleanup ([#6225](https://github.com/agentscope-ai/QwenPaw/pull/6225))
- Markdown links in desktop now open in the system browser instead of navigating the app window ([#6300](https://github.com/agentscope-ai/QwenPaw/pull/6300))
- Monaco editor loads from a local bundle for offline coding preview ([#6291](https://github.com/agentscope-ai/QwenPaw/pull/6291))
- WKWebView no longer pins a stale console frontend version ([#6107](https://github.com/agentscope-ai/QwenPaw/pull/6107))
- Tauri updates restricted to OSS builds only ([#6071](https://github.com/agentscope-ai/QwenPaw/pull/6071))

**Runtime & Agents**

- Reasoning content now correctly rotates on new reasoning blocks during streaming ([#6310](https://github.com/agentscope-ai/QwenPaw/pull/6310))
- Tool call arguments are streamed incrementally instead of buffering the complete response ([#6343](https://github.com/agentscope-ai/QwenPaw/pull/6343))
- Sub-agent approvals now route and resolve from the root session correctly ([#6295](https://github.com/agentscope-ai/QwenPaw/pull/6295))
- Fixed input validation failures that blocked Oh-My-Paw parallel workflows ([#6395](https://github.com/agentscope-ai/QwenPaw/pull/6395))
- Stopped tasks now wait for proper cleanup before signaling completion ([#6347](https://github.com/agentscope-ai/QwenPaw/pull/6347))
- Background chats are properly registered; legacy runner removed ([#6272](https://github.com/agentscope-ai/QwenPaw/pull/6272))
- Reasoning output and tool segments are now correctly aligned ([#6280](https://github.com/agentscope-ai/QwenPaw/pull/6280))
- Per-request model override now properly honored ([#5731](https://github.com/agentscope-ai/QwenPaw/pull/5731))
- Malformed tool-call input is surfaced to the model for self-correction ([#5761](https://github.com/agentscope-ai/QwenPaw/pull/5761))
- Doom loop thresholds fine-tuned to reduce false positives ([#6184](https://github.com/agentscope-ai/QwenPaw/pull/6184))
- Use `max_completion_tokens` for reasoning models ([#6015](https://github.com/agentscope-ai/QwenPaw/pull/6015))
- Whitespace in streaming thinking/text deltas preserved correctly ([#6166](https://github.com/agentscope-ai/QwenPaw/pull/6166))
- Images no longer stripped for multimodal models when model info lookup fails ([#6154](https://github.com/agentscope-ai/QwenPaw/pull/6154), [#6217](https://github.com/agentscope-ai/QwenPaw/pull/6217))

**Console & UI**

- Tool output copy works in all browser contexts including non-HTTPS ([#6275](https://github.com/agentscope-ai/QwenPaw/pull/6275))
- Skills list refreshes automatically after installing from the market ([#6296](https://github.com/agentscope-ai/QwenPaw/pull/6296))
- One-time tool approval is now prioritized over session-level settings ([#6357](https://github.com/agentscope-ai/QwenPaw/pull/6357))
- Inbox badge shows count for all pending approvals, not just high/critical ones ([#6391](https://github.com/agentscope-ai/QwenPaw/pull/6391))
- Stale media preview errors are cleared; relative-path images handled correctly ([#6385](https://github.com/agentscope-ai/QwenPaw/pull/6385))
- Dark mode text contrast improved for loop templates and chat history ([#5975](https://github.com/agentscope-ai/QwenPaw/pull/5975))
- Browser autofill no longer triggers on provider search input ([#6011](https://github.com/agentscope-ai/QwenPaw/pull/6011))
- Chat message queue clears correctly when a session is deleted ([#6045](https://github.com/agentscope-ai/QwenPaw/pull/6045))
- Skills page scroll loading no longer stops after the first batch ([#5968](https://github.com/agentscope-ai/QwenPaw/pull/5968))

**Governance & Security**

- Disabled audit logging is now properly honored ([#6369](https://github.com/agentscope-ai/QwenPaw/pull/6369))
- Plugin tools are unregistered on unload; ToolGuard safety checks shared correctly across contexts ([#6311](https://github.com/agentscope-ai/QwenPaw/pull/6311))
- Oh-My-Paw workflow mode isolation hardened with per-workspace instances and fork/deny-all gate fixes ([#6317](https://github.com/agentscope-ai/QwenPaw/pull/6317))
- Plugin tool defaults refresh on registration; tool type validation added ([#6313](https://github.com/agentscope-ai/QwenPaw/pull/6313))
- Tools auto-register via `@tool_descriptor` and PluginApi ([#6190](https://github.com/agentscope-ai/QwenPaw/pull/6190))
- Stale OFF-mode sandbox state properly cleared ([#6122](https://github.com/agentscope-ai/QwenPaw/pull/6122))
- Frontend tool-guard rules now bridge into policy deep scan ([#6063](https://github.com/agentscope-ai/QwenPaw/pull/6063))
- Sandbox preserves venv PATH in shell execution ([#6081](https://github.com/agentscope-ai/QwenPaw/pull/6081))
- `sandbox_enabled` switch honored in OFF-mode sandbox path ([#6109](https://github.com/agentscope-ai/QwenPaw/pull/6109))
- Sudo commands now properly ask user for permission ([#6079](https://github.com/agentscope-ai/QwenPaw/pull/6079))

**Memory**

- Automatic memory restricted to external user queries only ([#6120](https://github.com/agentscope-ai/QwenPaw/pull/6120))
- `auto_memory_interval` can be set to 0 to disable auto memory ([#6135](https://github.com/agentscope-ai/QwenPaw/pull/6135))
- Dream schedule toggle added ([#6171](https://github.com/agentscope-ai/QwenPaw/pull/6171))
- Memory summary task history properly bounded ([#6206](https://github.com/agentscope-ai/QwenPaw/pull/6206))
- Windows-safe session ID encoding for ReMe file storage ([#6022](https://github.com/agentscope-ai/QwenPaw/pull/6022))

**MCP**

- `${VAR}` headers migrated to env credential refs during driver migration ([#6091](https://github.com/agentscope-ai/QwenPaw/pull/6091))
- Legacy MCP migration made one-shot via schema watermark ([#6133](https://github.com/agentscope-ai/QwenPaw/pull/6133))
- MCP access policy updates apply immediately ([#5949](https://github.com/agentscope-ai/QwenPaw/pull/5949))
- Workspace startup no longer blocked by MCP connection timeout ([#6174](https://github.com/agentscope-ai/QwenPaw/pull/6174))
- Fallback namespace in MCP tool name sanitized for OpenAI compliance ([#6209](https://github.com/agentscope-ai/QwenPaw/pull/6209))

**CLI & Channels**

- `cron update` now preserves untouched runtime and request fields ([#6236](https://github.com/agentscope-ai/QwenPaw/pull/6236))
- SIP, Matrix, and Slack channel state properly bounded to prevent memory leaks ([#6207](https://github.com/agentscope-ai/QwenPaw/pull/6207))
- Telegram polling no longer enters 409 conflict loop ([#6005](https://github.com/agentscope-ai/QwenPaw/pull/6005))
- Bounded channel state and fire-and-forget task tracking to prevent memory leaks ([#6168](https://github.com/agentscope-ai/QwenPaw/pull/6168))
- TUI crash fixed when clicking streaming output ([#6069](https://github.com/agentscope-ai/QwenPaw/pull/6069))

**Observability**

- Langfuse trace IDs now use valid hex format ([#6277](https://github.com/agentscope-ai/QwenPaw/pull/6277))

**Other**

- Model slot override passes correctly through the console channel to the model factory ([#6304](https://github.com/agentscope-ai/QwenPaw/pull/6304))
- Local model GGUF check adapted to ModelScope SDK key change ([#6290](https://github.com/agentscope-ai/QwenPaw/pull/6290))
- Tauri entry point uses absolute imports ([#6234](https://github.com/agentscope-ai/QwenPaw/pull/6234))
- File reference check no longer crashes on OSError ([#6247](https://github.com/agentscope-ai/QwenPaw/pull/6247))
- Stale session cleaned up after goal completion ([#6086](https://github.com/agentscope-ai/QwenPaw/pull/6086))
- Stop gates reset on `/new` and `/clear` commands ([#6094](https://github.com/agentscope-ai/QwenPaw/pull/6094))
- Context limits hardened with recoverable tool-result compaction ([#6123](https://github.com/agentscope-ai/QwenPaw/pull/6123))
- GBK encoding compatibility in command execution on Windows ([#6140](https://github.com/agentscope-ai/QwenPaw/pull/6140))
- Multi-layer orphan tool-result message defense ([#5989](https://github.com/agentscope-ai/QwenPaw/pull/5989))
- Regex shorthands in tool schema patterns expanded for GBNF compatibility ([#6216](https://github.com/agentscope-ai/QwenPaw/pull/6216))
- Browser use now has a maximum wait time to prevent indefinite hangs ([#6170](https://github.com/agentscope-ai/QwenPaw/pull/6170))
- Token usage cache no longer persisted when unseeded ([#6220](https://github.com/agentscope-ai/QwenPaw/pull/6220))
- Skill-hub related memory leakage fixed ([#6208](https://github.com/agentscope-ai/QwenPaw/pull/6208))
- Redundant nvidia-smi probe removed from VRAM detection ([#6204](https://github.com/agentscope-ai/QwenPaw/pull/6204))
- Windows VBS headless launchers stay windowless with conditional UAC elevation ([#6127](https://github.com/agentscope-ai/QwenPaw/pull/6127))
- `file://` URIs in DataBlock resolved to local paths before formatting ([#6191](https://github.com/agentscope-ai/QwenPaw/pull/6191))
- Gzip-encoded JSON responses handled in download catalog ([#6106](https://github.com/agentscope-ai/QwenPaw/pull/6106))

## ⚡ Performance

- Tool call argument fragments are joined once instead of per-token reassembly ([#6346](https://github.com/agentscope-ai/QwenPaw/pull/6346))
- Synchronous I/O operations no longer block the async event loop ([#6378](https://github.com/agentscope-ai/QwenPaw/pull/6378))
- Session history migration writes batched for faster startup ([#6021](https://github.com/agentscope-ai/QwenPaw/pull/6021))

## 🧪 Testing

- E2E: tool-approval level cases added ([#6334](https://github.com/agentscope-ai/QwenPaw/pull/6334))
- E2E: agent cases adapted to the actions redesign ([#6333](https://github.com/agentscope-ai/QwenPaw/pull/6333))
- E2E: selectors adapted for v2.0.0 UI redesigns ([#6185](https://github.com/agentscope-ai/QwenPaw/pull/6185))
- Integration: access-control, fork, coding-mode, and agent-status coverage ([#6213](https://github.com/agentscope-ai/QwenPaw/pull/6213))
- Runtime/security/install regression tests ([#5813](https://github.com/agentscope-ai/QwenPaw/pull/5813))
- Console vitest with coverage in nightly full sweep ([#6194](https://github.com/agentscope-ai/QwenPaw/pull/6194))

## 🏗️ Infrastructure

- Unified release orchestrator: web release now gates on desktop build completion ([#6329](https://github.com/agentscope-ai/QwenPaw/pull/6329))
- Desktop workflows hardened with legacy dead code removed ([#6110](https://github.com/agentscope-ai/QwenPaw/pull/6110))
- CodeQL 2-shard security scan and Dependabot added ([#6027](https://github.com/agentscope-ai/QwenPaw/pull/6027))

## New Contributors

- @alvinlee518 made their first contribution in [#5922](https://github.com/agentscope-ai/QwenPaw/pull/5922)
- @Gmgge made their first contribution in [#6296](https://github.com/agentscope-ai/QwenPaw/pull/6296)
- @patrick-andstar made their first contribution in [#6357](https://github.com/agentscope-ai/QwenPaw/pull/6357)
- @splash-li made their first contribution in [#6277](https://github.com/agentscope-ai/QwenPaw/pull/6277)
- @liu6yi1 made their first contribution in [#6140](https://github.com/agentscope-ai/QwenPaw/pull/6140)
- @AaronZ345 made their first contribution in [#6080](https://github.com/agentscope-ai/QwenPaw/pull/6080)
- @Yigtwxx made their first contribution in [#6204](https://github.com/agentscope-ai/QwenPaw/pull/6204)
- @Marlin-Phone made their first contribution in [#5975](https://github.com/agentscope-ai/QwenPaw/pull/5975)
- @feng183043996 made their first contribution in [#5968](https://github.com/agentscope-ai/QwenPaw/pull/5968)
- @tadebao made their first contribution in [#5989](https://github.com/agentscope-ai/QwenPaw/pull/5989)

**Full Changelog**: [v2.0.0...v2.0.1](https://github.com/agentscope-ai/QwenPaw/compare/v2.0.0...v2.0.1)
