Skip to content

Release v0.21.2

Latest

Choose a tag to compare

@wenshao wenshao released this 31 Jul 04:10

Highlights

  • Autofix now defers lower-severity suggestions after five rounds and posts visible notices when refusing to proceed due to round limits. (#7913, #8067)
  • Added an opt-in Auto Recall profile that automatically searches external context with built-in security limits. (#7877)
  • Enhanced the /verify command with increased time budgets, evidence screenshots, and new maintainer verification techniques. (#8010, #8014, #8016)
  • Web Shell now supports contextual task panels, theme-aware visuals, and correctly handles artifact previews and session states. (#7929, #8098, #8078, #8106)
  • GitHub channels now emit exactly one final comment per event and display eyes reactions to indicate active agent processing. (#8033, #8061)
  • Added APIs and UI controls to view, approve, and revoke channel pairing approvals within specific workspaces. (#8045, #8081)

Breaking Changes

No known breaking changes.

Complete Change List

Features

  • Autofix now defers lower-severity suggestions after five change rounds, allowing only critical findings and failed checks to drive further code modifications. (#7913) by @qqqys
  • Goal v3 is now connected to the turn engine with deterministic permit handling, ensuring runtime continuations do not consume session or recursive turn budgets. (#7895) by @qqqys
  • Static image reads now return a canonical, auto-oriented JPEG overview with source dimensions to support reliable zooming within shared resource budgets. (#7911) by @qqqys
  • The triage system now mechanically triggers the 2b-bis sandboxed-lane recommendation when a Stage 2 draft explicitly contains a not-verified sentence. (#7965) by @wenshao
  • Adds an opt-in Auto Recall profile that automatically searches external context when you submit a prompt, with built-in security limits. (#7877) by @doudouOUC
  • Updates WebShell to use a shared renderer for streaming charts, ensuring canonical markdown-chart blocks work without extra host configuration. (#7916) by @zhangxy-zju
  • Improves ripgrep reliability by retrying failed searches and correctly distinguishing between no matches found and incomplete search results. (#7888) by @water-in-stone
  • feat(channels): add DingTalk interactive cards (#6930) by @BenGuanRan
  • feat(web-shell): refine advanced table controls (#7999) by @ytahdn
  • Updated triage comments to lead with a clear pass or fail verdict and display English by default with Chinese translations folded. (#7974) by @wenshao
  • feat(triage): run external /verify on ECS behind a workspace wipe (#7985) by @wenshao
  • Added the security.allowPrivateNetworkHooks setting to allow HTTP hooks to access private network addresses in trusted platform-managed environments. (#7968) by @xurik
  • Added a customizable action slot to split pane headers that automatically overflows into a menu when space is limited. (#7808) by @samuelhsin
  • Added a GitLab polling channel adapter that converts GitLab todos into inbound messages for automated processing. (#7862) by @OrbitZore
  • Added APIs and SDK helpers to list approved pairing senders and revoke access within a specific workspace. (#8045) by @qqqys
  • Introduced an optional reasonFilter setting for GitHub channels to skip unwanted notification reasons and prevent unintended agent actions. (#8031) by @xianjianlf2
  • Review approvals with zero findings on non-trivial diffs now explicitly disclose low signal status in the verdict line. (#7987) by @wenshao
  • Added a threshold setting to automatically preload deferred tools into the context window when their total size fits within limits. (#7922) by @DragonnZhang
  • feat(review): add review run — headless review with a machine-readable verdict (#7983) by @wenshao
  • Enhanced the verify-pr skill with seven new techniques from maintainer verification rounds to improve change validation. (#8010) by @wenshao
  • Increased the /verify agent budget from 25 to 120 minutes to allow comprehensive verification matching local maintainer rounds. (#8014) by @wenshao
  • Added automatic milestone summaries every tenth takeover round to provide visibility into long-running fix attempts. (#8046) by @wenshao
  • Adds a temporary eyes reaction to GitHub issues and comments while an agent turn is running to indicate active processing. (#8061) by @yiliang114
  • Reduces scan delays by skipping inspection of idle autofix candidates to prioritize fresh engagements. (#8049) by @wenshao
  • The /verify command now successfully captures and includes evidence screenshots in its reports. (#8016) by @wenshao
  • Ensures maintainer feedback containing specific phrases is not deferred in Critical-only mode by implementing a per-source feedback budget. (#8071) by @wenshao
  • Tags UserPromptSubmit hook context in model requests and records display provenance to ensure session replays accurately reflect what the model saw. (#7956) by @zjgzx1988
  • Adds byte-cursor paging to large text file reads across HTTP, ACP, and SDK surfaces to efficiently retrieve subsequent content without rescanning. (#8002) by @doudouOUC
  • The qwen review test-efficacy command now detects unprotected safety statements using statement-level mutation probes that delete single lines to verify test coverage. (#8020) by @wenshao
  • feat(web-shell): add contextual task panels (#7929) by @ytahdn
  • Subagents using the fork type now support an optional fork_tools allowlist to restrict execution to specific canonical tool names or MCP server patterns. (#8066) by @destire-mio
  • The Channel editor now allows operators to view, approve, and revoke pairing approvals with explicit confirmation dialogs distinct from the configured allowlist. (#8081) by @qqqys
  • Enhanced Web Shell visuals with theme-aware composer highlights, interactive dot animations for empty sessions, and a new typewriter effect for placeholders. (#8098) by @ytahdn

Bug Fixes

  • Interactive end-to-end tests now scale read-then-write waits with the environment timeout instead of using a fixed 15-second limit to prevent flakiness. (#7943) by @qwen-code-dev-bot
  • CI now cleans stale .qwen/ directories before checkout to prevent permission denied errors caused by restrictive file modes left by previous jobs. (#7977) by @qwen-code-dev-bot
  • CI verify jobs now correctly restore write permissions on the .qwen tree before returning workspace ownership to prevent checkout failures on self-hosted runners. (#7992) by @yiliang114
  • Fixes an issue where ECS runners on specific hosts failed to update the Qwen binary to the requested version. (#8000) by @yiliang114
  • Fixes directory listing to clearly distinguish between folders that are empty and those that were skipped due to item budget limits. (#7868) by @chinesepowered
  • Fixes a bug where code blocks in Feishu messages could exceed size limits by incorrectly calculating space needed for closing fences. (#7850) by @chinesepowered
  • Ensures standalone WebShell URLs preserve authentication tokens and deployment base paths when navigating between sessions. (#7926) by @ytahdn
  • fix(web-shell): polish Channel pairing requests (#7997) by @qqqys
  • fix(cli): correct hardware cursor off-by-one in fullscreen mode (#7998) by @chiga0
  • fix(cli): prevent SGR mouse events from being swallowed as paste on Windows (#7988) by @chiga0
  • fix(serve): allow bounded reads of large text files (#7947) by @doudouOUC
  • fix(web-shell): prefer artifact type metadata in cards (#7973) by @ytahdn
  • fix(web-shell): reduce composer input latency (#8015) by @ytahdn
  • Fixed session history pagination to prevent failures when loading earlier records by using stable record boundaries instead of opaque cursors. (#8001) by @ytahdn
  • Fixed release note generation to correctly handle cases where the previous release tag diverges from the current release target. (#7970) by @qwen-code-dev-bot
  • Increased the browser daemon SDK bundle size budget to 177KB to accommodate recent feature additions and restore successful builds. (#8024) by @wenshao
  • Fixed keyboard handling in Kitty protocol terminals to correctly map the Command or Super key modifier to the meta flag for shortcuts. (#7996) by @chiga0
  • Improved diagnostic messages to distinguish between a missing channel worker and a worker that is intentionally draining during workspace reloads. (#7932) by @destire-mio
  • Added preflight disk space checks to the build-test command to prevent installation and build failures caused by insufficient storage. (#7986) by @wenshao
  • Fixed Ctrl+Shift+C to correctly copy text in the terminal instead of triggering quit or clear actions. (#8011) by @chiga0
  • Artifact file writes are now automatically recorded upon success, eliminating the need for a separate manual registration step. (#7914) by @chiga0
  • Fixed an issue where pressing Enter during MCP prompt completion incorrectly treated optional parameters as mandatory. (#7995) by @qwen-code-dev-bot
  • Disabled native cron jobs in daemon-managed Channel sessions to ensure scheduled tasks are correctly tracked and delivered. (#8034) by @qqqys
  • GitHub channels now fail startup with guidance if configured with a self-only operator allowlist that cannot receive usable notifications. (#8055) by @zjunothing
  • Removed a schema combinator from the send_message tool to fix compatibility with Anthropic models that previously rejected the request. (#7989) by @netbrah
  • Fixed a terminal resize issue that caused excessive scrolling and history re-rendering during panel toggle animations. (#8009) by @chiga0
  • Forked background agents now correctly refresh tool capabilities and system instructions when resumed while preserving conversation history. (#7927) by @DragonnZhang
  • GitHub channel publications now emit exactly one final comment per event, preventing duplicate or intermediate outputs while recording detailed audit metadata for every attempt. (#8033) by @yiliang114
  • The review-pr job now restores workspace ownership before checkout to prevent permission denied errors on reused self-hosted runners. (#8062) by @yiliang114
  • Preview version generation now detects existing stable releases and bumps the patch number to prevent npm publishing conflicts for channel packages. (#7978) by @yiliang114
  • Daemon-managed session writers now use an integrity-protected handoff protocol with sealed locks to ensure safe ownership transfer during managed shutdowns. (#7976) by @doudouOUC
  • Transport stream retries are now allowed during the thinking-only phase by distinguishing non-thought content chunks from intermediate processing steps. (#7938) by @ComplexSimply
  • The reasonFilter setting now validates input arrays, rejects unknown reasons, and treats empty arrays as unset to ensure reliable notification routing. (#8035) by @yiliang114
  • Fixed an issue where CJK-heavy text could cause output token limits to be exceeded, preventing API errors during generation. (#7963) by @zambalee
  • Ensured active Todo lists persist correctly across tool turns to maintain context without interfering with user input priority. (#7919) by @yiliang114
  • Fixed environment variable propagation to ensure skill subprocesses use the correct CLI build and model configuration. (#7993) by @wenshao
  • Fixed the autofix loop to properly count timeouts toward failure limits and corrected status messages during handoffs. (#8044) by @wenshao
  • Fixes takeover acknowledgments by posting confirmations directly from the command to prevent event loss and long delays. (#8043) by @wenshao
  • Stabilizes web shell table controls by fixing column sizing, frozen-column shadows, and scroll position during row expansion. (#8041) by @ytahdn
  • Makes the interactive read-then-write integration test deterministic by using a fake server instead of a live LLM. (#8064) by @qwen-code-dev-bot
  • Adds a visible Queued on server status in the web shell for messages waiting in the daemon queue before execution. (#8065) by @wenshao
  • Fixes web shell artifact previews by enabling scripts in sandboxed iframes and correctly handling binary image files. (#8078) by @ytahdn
  • Optimized the Comment Attachment Guard to skip unnecessary runner allocation, reducing queue congestion for hosted jobs. (#8095) by @wenshao
  • Web Shell now correctly translates legacy /skills invocations with arguments into direct skill commands. (#8103) by @ytahdn
  • Updated the verify-pr agent to account for evidence capture costs within its execution budget to ensure images are generated. (#8104) by @wenshao
  • Web Shell now displays a clear failure status and Retry action for prompts that fail before daemon admission. (#8106) by @ytahdn
  • Added retry capability and in-progress states to Web Shell question submissions to prevent silent failures. (#8096) by @ytahdn
  • Fixed Web Shell to correctly distinguish and label one-time tool approvals that also switch the session to Default mode. (#8099) by @ytahdn
  • Autofix now posts visible notices to PRs when refusing to proceed due to round-cap limits instead of logging only. (#8067) by @wenshao
  • Prevents loss of verified autofix results by merging concurrent pushes and retrying when the PR head moves during a long agent run. (#8042) by @wenshao
  • Properly aborts active dynamic workflow runs during session shutdown to prevent orphaned dispatches and unnecessary token usage. (#8107) by @qqqys
  • Stabilizes the setModel E2E test by detecting turn completion via result messages instead of counting assistant messages. (#8075) by @qwen-code-dev-bot
  • Increases the per-turn model response timeout in multi-model E2E tests from 30s to 60s to reduce flakiness on CI. (#8111) by @qwen-code-dev-bot
  • Prevents repeated workspace skill rescans by making status reads side-effect free and implementing generation-guarded caching with ETag support. (#8080) by @doudouOUC
  • Daemon session maintenance now uses a writer-lease protocol to isolate transcript updates and prevent conflicts during session deletion, archiving, and cleanup operations. (#7975) by @doudouOUC
  • Fixed a build failure by routing side-task rollback operations through the workspace session service to resolve an unbound identifier introduced by recent maintenance changes. (#8144) by @wenshao
  • Web Shell worktree sessions now consistently execute commands in the session's effective working directory and defer MCP discovery until trusted relocation completes. (#8068) by @wenshao
  • Permission-control E2E tests now use shared response timeouts to prevent false failures caused by slow model responses during dynamic permission mode changes. (#8149) by @wenshao
  • Fixed a flaky end-to-end test for auto-edit permissions to ensure deterministic results without relying on live model behavior. (#8154) by @wenshao
  • Fixed session details menus overflowing on narrow layouts and added a keyboard-accessible action to copy the full session ID. (#8127) by @dreamWB

Internal Changes

  • The asyncGenerator canUseTool test now validates tool-call arguments instead of strict file content equality to stabilize assertions against model wording variations. (#7939) by @qwen-code-dev-bot
  • Adds an isolated CI pipeline to automatically run SWE-bench benchmarks on stable Qwen Code releases. (#7656) by @DennisYu07
  • Migrated flaky end-to-end tests to a deterministic fake server to eliminate failures caused by model output variance and latency. (#7934) by @yiliang114
  • Expanded regression tests now verify session history pagination behavior, including active record tracking and edge cases for page-size parsing. (#7907) by @PratikWayase
  • Opt-in daemon benchmarks now measure immediate prompt dispatch stages, including HTTP acceptance, message echo, and queue-wait durations. (#7994) by @doudouOUC
  • Stabilizes a flaky E2E test case for subagent delegation by refining prompt instructions without changing production code. (#8073) by @qwen-code-dev-bot

New Contributors

Full Changelog: v0.21.1...v0.21.2