·
1 commit
to release/v0.21.8
since this release
Highlights
- Restored real-time autofix support for pull requests opened from forks by bridging review events to credentialed workflows. (#8676)
- Enabled compression cache sharing for OpenAI, Gemini, and Vertex AI to reuse conversation prefixes and reduce redundant input processing. (#8418, #8425)
- Added repository context manifests to guide the /review command with bounded domains, related paths, and recommended tests. (#8654)
- Fixed a security issue where explicitly distrusted workspaces were incorrectly inheriting trust from parent directories. (#8628)
- Improved /review performance by moving remote matching to a deterministic CLI subcommand, achieving up to 93.3% prompt cache hit rates. (#8658)
- Allowed ACP agent tool calls to run concurrently at the configured limit, removing artificial serialization that slowed down fan-out operations. (#8631)
Breaking Changes
No known breaking changes.
Complete Change List
Features
- Review runs now warn users if the executing bundle is older than the current code and document the findings --test-delta flag for severity adjustments. (#8390) by @wenshao
- The daemon now observes and reports memory pressure levels and ratios using real denominators for both the root process and child heaps. (#8423) by @doudouOUC
- Compression cache sharing is now enabled for all OpenAI-compatible providers, including stable session keys for the official OpenAI API. (#8418) by @DragonnZhang
- Compression cache sharing is now enabled for Gemini and Vertex AI to reuse conversation prefixes and reduce redundant input processing. (#8425) by @DragonnZhang
- Group chats can now be approved once via a stable chat ID using the new group pairing policy, allowing access for all members. (#8440) by @qqqys
- Added a repository context manifest to guide the /review command with bounded domains, related paths, and recommended tests for specific repository areas. (#8654) by @wenshao
- Enhanced DingTalk integration to include stable identifiers of mentioned members in the inbound context when the bot is mentioned alongside other users. (#8639) by @BenGuanRan
- Restores real-time autofix support for pull requests opened from forks by bridging review events to the credentialed workflow lane. (#8676) by @wenshao
- Enriches Feishu contact observations with sender display names and group names to replace opaque IDs with recognizable labels. (#8569) by @BenGuanRan
- Improves Web Shell feedback for parallel subagents by keeping status visible, auto-expanding details during work, and collapsing groups upon completion. (#8559) by @carffuca
- Adds optional Mem0 memory write support to the Direct External Context integration for approved content when explicitly enabled in configuration. (#8507) by @doudouOUC
- Improves telemetry attribution to distinguish daemon-spawned sessions from direct CLI launches in usage statistics. (#8670) by @yiliang114
- Added support for installing Web Shell Extensions directly from local .zip or .tar.gz archive files via the Extension manager. (#8621) by @callmeYe
- Feishu users can now answer structured single-select and multi-select questions directly via native Card V2 forms instead of text replies. (#8578) by @BenGuanRan
- Dynamic Workflows now support cooperative pause and resume via the 'p' shortcut in Background Tasks or the '/workflows p' command in the TUI. (#8320) by @qqqys
- Added activeWork, activeWorkReporting, and activeWorkStaleMs fields to the GET /health?deep=1 endpoint to expose current work state. (#8588) by @doudouOUC
- Implemented durable evidence checkpointing for long-running Goals to prevent data loss and manage evidence limits during execution. (#8465) by @qqqys
Bug Fixes
- Forced AutoFix review admission now fails closed with explicit validation and stable reason codes when takeover permissions cannot be verified. (#8410) by @qqqys
- Automatic recap results are now discarded if a new user message starts while the recap is still processing to prevent output from appearing in the wrong turn. (#8573) by @carffuca
- File caching and session leases now fail closed when inode values are zero to prevent unrelated files from being incorrectly treated as identical. (#8290) by @xianjianlf2
- Backward transcript pagination now caps page expansion to prevent single large turns from inflating pages beyond the requested size and byte budget. (#8553) by @wenshao
- Signal-terminated foreground shell commands are now correctly reported as errors instead of being treated as successful executions. (#8501) by @daleselaji-dev
- The npm cache producer now runs as a non-root user to prevent file permission issues on persistent self-hosted CI runners. (#8669) by @yiliang114
- Same-host daemon bridges now use the regular CLI filesystem service for text reads while keeping text writes delegated through the workspace boundary. (#8620) by @doudouOUC
- Automated fix jobs backed by personal access tokens are now skipped for fork pull requests that lack repository secrets. (#8671) by @wenshao
- The triage status comment now finalizes correctly even when the workflow is cancelled or times out, preventing stale running indicators. (#8436) by @wenshao
- Fixed an issue where slash command names were truncated in narrow terminals, ensuring full command names like 'review' and 'doctor' remain visible in completion menus. (#8657) by @carffuca
- Removed a blocking disk flush command from directory E2E tests to prevent Vitest worker timeouts on busy self-hosted Linux runners. (#8685) by @wenshao
- Added a timeout to silent MCP SSE startup attempts in 'qwen mcp list' to prevent the command from hanging indefinitely on unresponsive endpoints. (#8555) by @daleselaji-dev
- Enabled management of DingTalk interactive card configurations in the daemon channel catalog and ensured Web Shell preserves these object-valued settings. (#8517) by @BenGuanRan
- Increased SDK request timeouts and stream limits for CI review runs to prevent failures during long upstream processing or large context generation. (#8673) by @wenshao
- Fixes an issue on Windows where workspace paths with verbatim prefixes caused failures during runtime startup and workspace resolution. (#8619) by @yiliang114
- Ensures links in assistant replies open in the system browser when the built-in browser pane fails to load or navigate. (#8594) by @yiliang114
- Allows ACP agent tool calls to run concurrently at the configured limit, removing artificial serialization that slowed down fan-out operations. (#8631) by @wenshao
- Fixes mobile layout issues to keep the composer anchored at the bottom of the chat pane on screens up to 760px wide. (#8601) by @dreamWB
- Fixes an issue where resuming a session after a connection cut would display incomplete responses by correctly recording the delivered text prefix. (#8624) by @harjothkhara
- Ensures live system instructions refresh immediately after memory writes so new context is applied without requiring a session restart. (#8640) by @ZijianZhang989
- Hardens QQ group sender attribution to consistently display neutral labels for username-less senders and prevent identity exposure when mentions are disabled. (#8477) by @zjunothing
- Fixes stream-json sessions to remain alive after an interrupt signal, allowing users to continue interactions without restarting the CLI. (#8509) by @zjunothing
- Corrects integration test configuration to enforce worker limits and prevent unbounded parallelism during test execution. (#8689) by @wenshao
- Emits standard ACP usage update notifications after each model round to accurately report prompt context occupancy and window size. (#8528) by @zjunothing
- Fixed an issue where changing trust or tool settings now correctly refreshes MCP session metadata without requiring a full reconnection. (#8522) by @zjunothing
- Fixed a layout issue where collapsing thought blocks in the terminal buffer now correctly releases reserved vertical space immediately. (#8570) by @chiga0
- Fixed timeout error handling to preserve underlying cause and HTTP status codes, ensuring retry policies function correctly for network failures. (#8531) by @zjunothing
- Separated internal hook context from user-visible transcript text to ensure clean display and accurate telemetry across all interfaces. (#7948) by @destire-mio
- Integration test cleanup now runs asynchronously and stops waiting immediately if telemetry fails to become ready, preventing hangs during test execution. (#8688) by @wenshao
- Review agent transcripts are now wrapped to prevent accidental execution of workflow commands found in logged file contents. (#8683) by @wenshao
- The resume session command is now echoed to the main terminal buffer on exit so it remains visible in scrollback when chat recording is enabled. (#8455) by @chiga0
- A persistent 'N queued' badge now appears in the Footer status row to indicate pending messages even when the main queue display is clipped during streaming. (#8667) by @qwen-code-dev-bot
- Pressing ESC once now immediately cancels ongoing agent work instead of requiring multiple presses to clear queued messages first. (#8353) by @C0d3N1nja97342
- The Alibaba Token Plan preset now uses the correct Singapore-region model ID 'deepseek-v4-flash-0731' to prevent HTTP 403 errors. (#8705) by @zjunothing
- Fixed a startup failure in the review workflow caused by exceeding GitHub's maximum expression length limit. (#8720) by @wenshao
- Fixed a security issue where explicitly distrusted workspaces were incorrectly inheriting trust from parent directories. (#8628) by @daleselaji-dev
- Fixed an issue where multi-line /review commands followed by a newline failed to trigger the review process. (#8723) by @wenshao
- Changed the autofix loop to enter Critical-only mode after five change rounds to prevent excessive automated modifications. (#8751) by @wenshao
- Prevents daemon sessions from inheriting loader-affecting environment variables like NODE_OPTIONS and LD_* that could interfere with subprocess execution. (#8663) by @wenshao
- Enables successful type checking for integration tests by fixing configuration errors and resolving previously undetected type issues. (#8693) by @doudouOUC
Performance
- Stopped restoring the large remote npm cache on self-hosted runners to improve performance, as the restore time exceeded the installation time saved. (#8681) by @wenshao
- Optimizes CI by running automatic reviews for documentation-only pull requests at medium effort while maintaining high effort for all other changes. (#8648) by @wenshao
- Improved /review performance by moving remote matching to a deterministic CLI subcommand and achieving up to 93.3% prompt cache hit rates. (#8658) by @wenshao
- Made autofix fleet caps tunable via repository variables and raised default limits to improve CI throughput without workflow edits. (#8731) by @wenshao
- Introduced a soft tool-call budget into review plans to optimize resource usage during finder and auditor operations. (#8708) by @wenshao
Documentation
- Documentation now covers the per-caller and workspace-wide concurrency settings for the qwen serve command, including defaults and accepted ranges. (#8404) by @DragonnZhang
- Added Aliyun Model Studio CLI (bailian-cli) to the Ecosystem section to support image generation, knowledge retrieval, and agent orchestration. (#8710) by @Maddock-MDF
- Clarified SDK documentation to confirm that reusable queries remain open for further prompts after an interruption, unless the session is explicitly closed. (#8711) by @DragonnZhang
Internal Changes
- Markdown parsing during message streaming is now throttled to 80ms intervals to prevent performance degradation while maintaining immediate updates when streaming stops. (#7904) by @PratikWayase
New Contributors
- @daleselaji-dev made their first contribution in #8501
- @Maddock-MDF made their first contribution in #8710
Full Changelog: v0.21.7...v0.21.8