What's Changed
✨ Added
Piccolo Local Decision Models
- Add Piccolo 4B, 9B, and 27B as local decision models for tool review and context compaction, with BF16 and Q8_0 recommendations, runtime installation and updates, and Hugging Face or ModelScope downloads. Review and compaction remain opt-in; the local runtime serves one model at a time (#8463, #8573)
QwenPaw Community
- Browse, sort, and comment on QwenPaw Community posts from the Console, draft resource-linked issue reports with model assistance, and open the community editor. Connect an account to sync selected message categories to the Inbox and desktop notifications (#7903)
Console & Desktop
- Add the optional OpenUI plugin to display interactive forms and components within replies, preserve their state during streaming, and submit actions to the originating conversation (#8239, #8248)
- Add an unread-only filter to Inbox push messages so older unread messages are easier to find (#8484)
- Let desktop windows share one background service, keep tasks running after closing the last window, and coordinate updates across windows; preserve unsent drafts when the service reconnects (#8373)
- Receive browser and desktop notifications for approvals, completed replies, and background tasks, including when the desktop is minimized to the tray; click a notification to return to the relevant conversation or approval (#8504)
Agent Modes
- Add Advisor Mode: pair an advisor model with a worker model, prepare an opening plan, consult the advisor when needed, and adjust the plan after repeated tool failures (#7569)
- Add experimental Python Code Mode to combine enabled tools in one script, including concurrent calls and ordered text and media output. Native tool permissions still apply; Code Mode does not enable the sandbox, which is off by default (#8224)
- Select an initial Agent mode for new ACP sessions with
qwenpaw acp --agent-mode(#8352) - Optionally use a decision model to check conversation and tool evidence for unfinished work during completion self-checks; retain the original self-check when the model is unavailable or uncertain. This option is off by default (#8544)
Memory
- Upgrade ReMe to 0.4.2.0 with image memory, automatic tags, tag-filtered search, and decision-model context compaction that retains references to original tool output. Image memory, automatic tagging, and decision compaction are off by default; Auto-Dream now focuses on consolidating memory (#8347)
- Browse ReMe Light memory files through clickable tags and a Tags tab, with file counts, pagination, and preserved unsaved edits when opening the same file from different views (#8470)
- Add an OpenViking memory plugin with automatic recall, completed-turn persistence, and explicit memory search through a configured OpenViking service (#7613)
Models & Approvals
- Sign in with a ChatGPT subscription on a local installation and select models available to the account without a Platform API key; support account switching and sign-out. Remote and Hub sign-in are not supported (#8437)
- Configure TypeSafe/JEV decision models separately from chat models and use them for tool approvals. Explicit denials remain enforced; uncertain assessments or service failures require manual approval (#8205, #8283, #8360)
QwenPaw Creator & Data
- Upgrade Creator to 2.0.4 with custom Skill management, direct script import, narration overlap prevention, and temporary-file cleanup. Improve local-media handling across providers, verify ASR connection tests more accurately, and keep saved credentials within their configured test destinations (#8357, #8529)
- Update the Data app to 1.0.3 with runtime 0.3.3: inherit the workspace model, retain dataset selections per chat, and keep analysis streams open until completion. The published app manifest still targets QwenPaw 2.2.2 and does not declare 2.3.0 compatibility; older unscoped sessions remain on disk but do not appear automatically in the new listing (9af3b184, #8346)
Skills, Plugins, Channels & Tools
- Allow Skill pool downloads to be cancelled from the Console, with visible cancellation progress and cleanup that preserves previously installed Skills (#8285)
- Add Firecrawl as a web search provider with an optional API key (#8200)
- Configure an optional Tavily API key in the Console, with keyless fallback for rejected keys or quota and rate limits (#8204)
- Add optional Shell memory protection, configurable from live environment settings, to monitor command processes and limit captured output. It is disabled by default and provides best-effort resource protection (#8574)
- Let plugins override shared background, surface, border, and text colors for both light and dark themes, restoring the user's preset when the plugin is unloaded (#8422)
- Install Matrix end-to-end encryption dependencies with the channel so no separate dependency installation is needed; encryption remains off by default (#8559)
Evaluation
- Add a bilingual evaluation page with benchmark scores, cost and runtime comparisons, adjustable benchmark weights, version history, and downloadable result records (#8253)
🔄 Changed
- Use AnySearch as the default web search provider when no provider has been saved, while retaining explicit provider choices (#8536)
- Enable decision-model tool review directly from the approval menu, removing the extra conversation switch; use manual approval if the selected decision model is unavailable (#8556)
- Refine plugin dependency checks and shared upgrades to account for affected runtimes, optional dependency extras, and rollback when an upgrade fails (#8598)
- Improve Console layouts, touch targets, keyboard navigation, loading and retry states, and draft handling across desktop and mobile; reduce repeated polling and unnecessary background work (#8332)
- Separate global model management from Agent runtime settings, support editing API keys on provider cards, and keep thinking settings consistent with declared model capabilities (#8240)
- Unify numeric controls and simplify execution-mode settings and sidebar styling (#8432)
- Keep initial Skill selection in Agent creation; manage an existing Agent’s Skills from the Skills page (#8448)
- Refresh model recommendations, capability metadata, and provider presets while preserving existing selections and user-added models (#8447)
- Manage official channels other than Console as plugins, start them in separate processes only when enabled, and preserve existing channel configurations (#8187)
- Install, update, and remove plugins without rebuilding every active workspace, with clean resource shutdown and rollback when an update fails (#7565)
- Reuse history database connections within each workspace to reduce repeated setup and checks on every request (#8482)
- Update bundled runtimes and installation dependencies; require pip 26.2.2 or uv 0.13.4 or later for the corresponding update and plugin-installation paths (#8391)
- Remove the legacy workspace ZIP upload and download APIs that could overwrite active history databases. Use Backup & Restore for workspace backups; ordinary file transfers and project ZIP imports remain available (#8508)
🐛 Fixed
Console, Chat & Files
- Keep unsent drafts separate for each conversation, clear submitted content immediately, and prevent delayed responses from erasing newly typed text (#8362, #8272)
- Open direct conversation links under the correct Agent, including archived conversations, and show retryable errors for invalid or ambiguous links (#8209)
- Stop stale requests after deleting a conversation and keep model-change events scoped to their own conversation (#8375)
- Keep inline plugin submissions bound to the correct session while conversations are switching (#8330)
- Correct message navigation in long conversations and pause sidebar polling while switching sessions (#8273, #8493)
- Prevent the first conversation in scheduled-task and subagent groups from overlapping its group heading (#8334)
- Display thinking-slider values accurately and preserve submitted settings when switching conversations before saving finishes (#8287)
- Keep configuration editors open when validation or saving fails, and offer a clear choice to continue editing or discard changes (#8263)
- Keep repetition-protection thresholds visible and editable (#8282)
- Restore clipped mobile model controls and the background-tool policy entry, improve popup focus and Escape handling, and pause notification polling in hidden tabs (#8452)
- Explain when an HTML preview depends on JavaScript and provide an Open in browser action instead of leaving a blank preview (#8245)
- Keep failed media previews compact, with the full filename and error details available on expansion (#8451)
- Prevent tool icons from being clipped in completed-step cards (#8503)
- Limit oversized tool output in chat-history responses to improve loading on slow connections while retaining the stored history (#8229)
- Keep cleared conversations empty after reopening or refreshing instead of restoring cached
/clearor/newcommands (#8600) - Preserve a new task's selected project directory through the first message and keep open file tabs when the directory is saved (#8582)
- Resolve Markdown preview links and images relative to the document's directory, including paths with Chinese characters, spaces, and Windows separators (#8551)
- Improve settings search and field navigation, retain settings navigation on plugin pages, and show only the settings supported by the current Agent runtime (#8545, #8593, #8572)
- Show translated names and descriptions for the audio-viewing tool and group it with media tools (#8597)
- Preserve CRLF and mixed line endings when the Agent edits a file, avoiding unrelated whole-file changes (#8235)
Models, Runtime & Approvals
- Honor model defaults and conversation thinking preferences using each model’s declared request parameters, including thinking-off settings, without leaking internal control flags to providers (#8358, #8436)
- Use the conversation’s selected model and thinking settings consistently for compaction, context limits, titles, media checks, and inherited subagent settings (#8465)
- Apply a timeout while waiting for a model stream to start and report prolonged rate-limit waits instead of appearing to hang silently (#8468)
- Recover from request-size errors by omitting older media from model input while preserving original assets and media from the current turn (#8395)
- Recover when providers reject video or audio in conversation history, including llama-server audio and DashScope audio-URL errors (#8299, #7654)
- Restore Code Mode media previews after reopening a conversation and keep CloudPaw tools available inside Code Mode (#8461)
- Reduce unnecessary JEV approval prompts for Code Mode calculations and distinguish local preflight checks, unavailable services, and model risk assessments in approval messages (#8492)
- Keep ACP sessions alive during long tool calls and drain final responses before ending a turn so completed task results are not lost (#8327)
- Connect to older MCP servers that return HTTP 422 when the newer discovery protocol is probed (#8051)
- Reject invalid thinking budgets and context limits before saving so a bad value cannot make a provider disappear after restart (#8550)
- Discover installed Ollama models during CLI setup and retain configured model choices if discovery is unavailable (#8309)
- Support slow summary models with a configurable 300-second default timeout, send a single output-token limit, and improve recovery when Scroll underestimates context usage (#8496, #8571)
- Limit the combined inline-media size of each model request, retain newer media when the budget is exceeded, and remove empty media blocks before sending (#8034, #8066)
- Allow Code Mode tools to receive a
nameargument without colliding with internal routing, includingdescribe_tool(name=...)(#8583) - Preserve Windows
cmd.exequoting when executing commands without sandbox isolation (#8602)
Memory & History
- Keep automatic memory-recall content out of visible transcripts and channel messages (#7835)
- Skip ReMe reranking when its API key is empty and report the missing configuration clearly (#8291)
- Skip completed history migrations on startup, snapshot active SQLite databases safely for backups, and add a history-check command with optional search-index repair (#8541)
- Open, recall, and back up history correctly under Windows long paths, network paths, and filenames containing reserved URL characters (#8587)
Skills & Plugins
- Preserve binary assets when importing Skills from GitHub (#8198)
- Use the native Skills CLI for Make Skill validation and installation so desktop packages no longer depend on importing internal Python modules (#8344)
- Keep failed plugins visible and removable, refresh Skill Hub installation state, and use bundled sources for local reinstallation (#8261)
- Show clear plugin-download errors for connection failures, timeouts, TLS problems, and incomplete responses (#8397)
- Avoid rejecting SDK plugin installations through redundant dependency checks while retaining the normal dependency safeguards (#8462)
- Continue loading plugins when an import-cache refresh fails (#8497)
- Repair desktop channel-plugin installation and dependency upgrades, including Windows path comparison and read-only source-file backup failures (#8509, #8633)
- Include third-party marketplace plugins in Update All by preserving their installation source (#8231)
- Explain when the plugin dependency-state directory is unusable and how to configure a writable location (#8527)
- Prevent the built-in Make Skill validator from being falsely blocked by the Skill security scanner (#8400)
Creator, Mail & Scheduled Tasks
- Fix Creator startup after stale Windows process checks, project deletion while logs are open, and review decisions that cannot be retried under long Windows paths (#8196, #8210, #8167)
- Accept a full email address as the mail account name without appending the domain a second time (#8438)
- Preserve running scheduled tasks, execution history, and concurrency limits when an Agent reloads (#8353)
- Keep scheduled-task time pickers in sync, preserve drafts after failed saves, and restore explicit Save and Cancel actions (#8349)
- Run scheduled Codex and Qoder tasks without incorrectly rejecting valid instructions as empty (#8535)
Channels
- Restore Matrix sessions and missing device keys, isolate crypto stores by identity, and migrate matching legacy state without losing Windows data or blocking unrelated accounts (#8558, #8584, #8599, #8411)
- Split long DingTalk replies into Markdown messages so tables and formatting are preserved (#8341)
- Render emphasis around Chinese, Japanese, and Korean punctuation correctly in supported channel messages and finalized TUI replies (#8067)
- Rebuild serialized channel response settings instead of dropping replies when cached values have lost their original types (#8564)
Hub, Desktop & Deployment
- Make the Hub model-gateway timeout configurable with a 600-second default, preserve unsaved policy edits during refreshes, and surface upstream errors with sensitive details removed (#8387, #8399)
- Replace an older shared backend after a desktop upgrade and show a clear message when the running backend requires a newer desktop (#8430)
- Recover Windows installer preparation when PowerShell is missing from PATH, handle empty launcher files, and display the actual preparation failure (#8455)
- Rotate desktop logs reliably on Windows and retain redirected output after rotation on macOS and Linux (#8390)
- Support Console deployments under a reverse-proxy subpath with consistent routing, asset URLs, and login redirects (#8316)
- Include shared plugin frontend sources when building the Console in Docker (#8450)
- Keep desktop automatic updates on stable and post releases; prereleases remain available for manual download (#8575)
- Include visual-compaction assets in desktop packages so Visual Compact can run (#8514)
- Open workspace HTML files through the correct local path in the legacy desktop bridge, including Chinese Windows paths (#8524)
- Disable nginx buffering for Console chat streams so incoming events are shown promptly (#8522)
New Contributors
- @Li-john1021
- @JuampiHernandez
- @jcs130
- @Frank-zhu2000
- @AGImentu
- @wuwenbo0626
- @Heipa1
- @wang-qisen
- @LingHu01
- @passionworkeer
- @xypang33-sketch
- @pcbeingused333
- @twotnguyen
- @lanjinzhoucode
- @liuxuyang1236
- @xiong-wei1
- @wxhking
Full Changelog: v2.2.2...v2.3.0