github QwenLM/qwen-code v0.26.2
Release v0.26.2

latest release: sdk-typescript-v0.1.24
3 hours ago

Highlights

See the complete change list below.

Breaking Changes

  • fix(managed-agent)!: simplify Web Shell controls and retire cwd submissions (#15616) by @doudouOUC

Complete Change List

Features

  • feat(managed): add session permission rules and Auto approval (#15448) by @doudouOUC
  • feat(core): add an experimental shared agent loop and run headless on it (#15369) by @qqqys
  • Adds X-DashScope-Source-Config to matching QwenCloud and Qianwen AI Platform requests to identify site and client, without changing authentication or retries. (#15041) by @yiliang114
  • Resumed OpenTUI sessions now retain recorded text, images, tool results, and prompt identities, while rewind restores transcript, request, and draft. (#15384) by @chiga0
  • OpenTUI now captures complete checkpoints at edit approvals and restores them safely, preserving conversation metadata and blocking stale or cancelled owners. (#15389) by @chiga0
  • Adds automation.scanner-threads to run managed automation scanner rows on a dedicated pool and leases rows from claim time. (#15442) by @yiliang114
  • Adds Continue analysis with current parameters so Generated UI users can review and send frozen parameters to the original session. (#15333) by @qqqys
  • Adds an opt-in external-scratch Runtime provider that lets an operator-run HTTP service place Session workers while preserving attestation and recovery. (#15261) by @yiliang114
  • Adds a prompt argument hint for /verify-pr so users can see the PR number and supported flags such as --publish and --watch. (#15463) by @wenshao
  • Adds a durable queue for messages sent during a Managed Turn, allowing queued text and file references to be delivered, edited, withdrawn, or resumed safely. (#15449) by @doudouOUC
  • Adds /autofix-pr status to list all watches in a clone and lets users resume a watch in a later session. (#15510) by @wenshao
  • Adds a Git URL source to the Web Shell Add-workspace dialog so users can clone a repository and open it as a workspace in the browser. (#15361) by @wenshao
  • Enables image and PDF delivery for managed runtime providers with a 768 KiB base64 media limit and a 896 KiB tool-result limit. (#13606) by @water-in-stone
  • feat(managed-agent): give the Hosted Harness its Broker through the environment (#15244) by @wenshao
  • Adds an operator endpoint to register immutable, idempotent EXTERNAL Workspace storage ownership with provider identity and tenant alias. (#15516) by @yiliang114
  • UserPromptSubmit hooks no longer re-append byte-identical additionalContext within a session, avoiding duplicate context and keeping transcripts accurate. (#14129) by @yiliang114
  • Mods can now observe turn.start and turn.complete events in headless and terminal runs, and use $.turn.abort to end a running turn. (#15443) by @qqqys
  • Web Shell Settings now lets you list, add, and remove extra workspace directories, applying changes to live sessions and informing the model of new roots. (#15393) by @wenshao
  • feat(autofix-pr): run the helpers through a tool, and let a confirmed watch's fixes run unattended (#15548) by @wenshao
  • feat(managed-agent): let the bootstrap set the service account and MySQL up (#15543) by @wenshao
  • feat(managed-agent): add pinned extension package management (#15490) by @doudouOUC
  • feat(managed-agent): support Workspace file uploads (#15586) by @doudouOUC
  • feat(core): Add durable terminal identity lookup (#15566) by @doudouOUC
  • When experimental.unifiedAgentLoop is enabled, fresh ACP user prompts run their model round on the shared agent loop while ACP keeps its own tool-step handling. (#15509) by @qqqys
  • The Mod runtime adds ui.render, $.ui.resolve, and $.ui.invalidate support, enabling render-site hooks and terminal element resolution before hosts draw UI. (#15591) by @qqqys
  • feat(web-shell): add plain-text and Markdown reply copying (#15345) by @ytahdn
  • feat(cli): connect OpenTUI voice input to the shared pipeline (#15617) by @chiga0
  • feat(ci): canary-split the PR review model by PR number (#15538) by @yiliang114
  • feat(daemon): add cached workspace artifact queries and batch removal (#15594) by @BZ-D
  • feat(managed-agent): add native snapshots and HTTP recovery (#15569) by @doudouOUC
  • feat(cli): admit Managed Runtime boot-v2 with external storage and publication surface in container mode (#15522) by @yiliang114
  • feat(tools): let an explicitly configured search backend name its host (#15638) by @yiliang114
  • feat(cli): align OpenTUI foreground shell controls with Ink (#15642) by @chiga0
  • feat(acp): run the tool batches of fresh prompts on the shared agent loop (#15627) by @qqqys
  • feat(serve): allow secondary sessions to cd within their workspace (#15323) by @rockybot2026
  • feat(mods): draw the band above the prompt in the Ink terminal (#15619) by @qqqys
  • feat(autofix-pr): run an unattended watch's fix agent in the background (#15578) by @wenshao
  • feat(core): add local managed journal snapshot recovery (#15626) by @doudouOUC
  • feat(verify-pr): add a local preflight and a verdict check (#15614) by @wenshao
  • feat(web-shell): show /autofix-pr watches and stop them from the Web Shell (#15668) by @wenshao
  • feat(mods): compile JSX in .tsx and .jsx Mod modules (#15624) by @qqqys
  • feat(cli): bind the PR named by a /verify-pr prompt (#15625) by @wenshao
  • feat(cli): complete OpenTUI extension discovery and source management (#15671) by @chiga0
  • feat(managed-agent): add the external-workspace provisioning prerequisite (#15512) (#15654) by @yiliang114
  • feat(web-shell): nest derived sessions under their parent in the sidebar (#15714) by @wenshao
  • feat(web-shell): name new sessions from the first prompt (#15689) by @wenshao
  • feat(managed-agent): check Harness compatibility, leftover workers and a live service in preflight (#15564) by @wenshao
  • feat(web-shell): stream BTW answers with reconnect and scroll following (#15709) by @ytahdn
  • feat(cli): run only the tests related to the diff in review build-test (#15547) by @wenshao

Bug Fixes

  • fix(cli): harden serve token resolution against project env injection (#15228) by @yiliang114
  • fix(cli): align OpenTUI cancellation and retry with Ink (#15283) by @chiga0
  • test(managed-agent): assert web_fetch in the Hosted workspace gate fixture (#15451) by @yiliang114
  • fix(vscode): leave edit mode after a refused edit (#15439) by @yiliang114
  • fix(rewind): resolve legacy turns by source identity (#13737) by @yiliang114
  • Retires registered Linux zombie workers before startup waits, preventing a 30-second delay and returning a prompt terminal conflict instead. (#15459) by @doudouOUC
  • Preserves arrival order of direct-mode stream-json startup messages so pipelined client requests execute and return results in the intended order. (#15378) by @yiliang114
  • Restores managed-agent module and CLI build lanes by correcting the schema inventory column total after new permission-rule columns were added. (#15455) by @yiliang114
  • Makes the team-lead Hosted MySQL integration boot retry when the harness loses its reserved port, reducing flaky test timeouts. (#15224) by @qwen-code-dev-bot
  • CLI checkpoint restores now preserve ownership, Read permissions, and prompt history so cold resume and later rewind behave consistently. (#15386) by @chiga0
  • Eligible npm sessions using OpenTUI now run on private Bun 1.4.4 while preserving Node for npm subprocesses and existing encrypted settings. (#15387) by @chiga0
  • The main CI failure reporter now files issues even when a newer main run is still pending, adding a provisional note instead of dropping the failure. (#15471) by @yiliang114
  • Web Shell permission-rule declarations are now self-contained so package publishing no longer fails on unresolvable core-module imports. (#15501) by @yiliang114
  • CLI preserves OpenTUI clipboard source attribution and collapsed large pastes during draft recovery, queue restoration, cancellation, and recall. (#15396) by @chiga0
  • Hosted MySQL test isolation preserves the original table-truncation error when foreign-key restore also fails. (#15505) by @yiliang114
  • CLI cost estimates no longer double-count reasoning tokens for OpenAI Chat Completions, OpenAI Responses, and Qwen OAuth usage. (#15464) by @yiliang114
  • Release automation limits release-note summary requests to three concurrent waves, keeps result order, and refreshes release PRs from main before automated approvals. (#15500) by @yiliang114
  • Managed Web Shell prevents duplicate message composers and keeps drafts stable during Session polling or permission-rule rerenders. (#15496) by @doudouOUC
  • On Linux, Web Shell no longer shows the native directory Browse button when the X11 display is unreachable. (#15434) by @yiliang114
  • Raises timeout budgets for the standalone Node/Bun regression suite on the release pool and cleans up outdated exemptions. (#15102) by @qwen-code-dev-bot
  • Refuses to start pull-request autofix watch from a checkout that cannot run it and reports the required working directory. (#15506) by @wenshao
  • Simplifies Web Shell status display when loading phrases are hidden and improves status text contrast. (#15423) by @deggs7
  • Keeps incremental lint history fetching lightweight and surfaces fallback as a CI warning and step summary. (#15511) by @yiliang114
  • Gives eligible main push SHAs separate CI concurrency groups so independent main validations are not displaced by newer pending runs. (#15508) by @yiliang114
  • Authenticates managed-runtime OSS preflight checks so release publishing can verify existing artifacts and avoid failed uploads. (#15504) by @yiliang114
  • Runs the self-hosted SDK Java test suite before taking the host lock to reduce timeouts and lock contention in CI. (#15254) by @qwen-code-dev-bot
  • Prevents the main CI failure tracker from filing issues for post-merge PR reruns that do not reflect the merged tree. (#15250) by @qwen-code-dev-bot
  • Hides unavailable Managed background tools so Background Shell and Monitor appear only when the session can run them. (#15497) by @doudouOUC
  • Fixes a managed-agent shutdown error caused by lifecycle renewal scheduling. (#15231) by @qwen-code-dev-bot
  • Unblocks independent same-tenant resident workspaces blocked by an unreclaimed binding and fixes hosted file tool admission. (#15457) by @doudouOUC
  • In Web Shell standalone sessions, Language: UI is now a user setting, so changing it no longer fails with workspace-scope errors. (#15521) by @wenshao
  • Failed queued automatic memory extraction now logs a debug warning instead of causing an unhandled rejection. (#15338) by @wenshao
  • Credential-free release preparation jobs now run on shared ECS runners in the official repository, with existing fallbacks preserved. (#15517) by @yiliang114
  • Headless CLI retries now show a retry classification on stderr, making transport failures and restart reasons easier to diagnose. (#15515) by @yiliang114
  • In Web Shell, /autofix-pr watches now persist as durable tasks, so they survive idle session reclamation and appear in Scheduled tasks. (#15523) by @wenshao
  • Deletes a turn's memory catalog snapshot record when the turn is removed, preventing orphaned snapshots while preserving catalog continuity. (#15540) by @yiliang114
  • Fixes ARM64 CI lane pricing so self-hosted lanes get correct ceilings: lint 45 to 90 minutes and no-AK integration 30 to 60 minutes. (#15529) by @yiliang114
  • Hosted sessions now persist Todo and project committed task lists, showing them in Managed WebShell so later turns use the latest state. (#15155) by @yiliang114
  • Incremental lint CI now deepens history until the merge base is provable, reducing unnecessary full-repository scans on long-lived pull requests. (#15525) by @yiliang114
  • Incremental Prettier checks now group files by the nearest configuration directory, so formatting rules and ignores apply correctly across touched paths. (#15531) by @yiliang114
  • Kubernetes Harness pool now passes qwen serve the managed runtime broker URL and token environment pair, with clearer errors for missing, invalid, or non-HTTPS Broker URLs. (#15394) by @wenshao
  • The tui-parity Check TUI impact gate now runs on the persistent ECS pool for trusted PRs, while untrusted fork PRs stay on GitHub-hosted runners. (#15561) by @yiliang114
  • UserPromptSubmit hook context is no longer duplicated on the next turn after automatic compaction, and compression checkpoints are protected from later rescue mutations. (#15575) by @yiliang114
  • The Mod runtime now targets Claude Code 2.1.310, accepts tool.check answers with setting fields, and reports that version from $.session.version(). (#15560) by @qqqys
  • UserPromptSubmit hook context remains deduplicated after memory catalog snapshots or added message parts, preventing repeated hook context copies in CLI requests. (#15556) by @yiliang114
  • fix(ci): resolve the pool's Maven dependencies through a domestic mirror (#15610) by @yiliang114
  • fix(ci): stop failing the Maven bootstrap on a rate-limited pool egress (#15539) by @yiliang114
  • fix(managed-agent): retry read-only attestation after EOF (#15608) by @doudouOUC
  • fix(ci): resolve libfaketime for the host architecture (#15609) by @yiliang114
  • fix(ci): bound setup-java on the pool and fall back to the tool cache (#15605) by @yiliang114
  • fix(web-shell): match cancellation duration to turn summary (#15615) by @ytahdn
  • fix(web-shell): hide turn navigation without sufficient gutters (#15604) by @ytahdn
  • fix(core): stop warning about a placeholder in the attribution header (#15636) by @yiliang114
  • fix(ci): resolve the pool's Maven dependencies from the intranet mirror (#15641) by @yiliang114
  • fix: preserve interleaved reasoning in TUI and Chat replay (#15621) by @DragonnZhang
  • fix(cli): preserve previews and verify installed OpenTUI distribution (#15655) by @chiga0
  • fix(ci): Isolate Managed runtime release test classes (#15676) by @doudouOUC
  • fix(ci): deepen until the lint scope's own acceptance holds (#15644) by @yiliang114
  • fix(release): extend standalone runtime download retries (#15673) by @qwen-code-dev-bot
  • fix(ci): preserve setup-java JDKs during pool fallback (#15623) by @yiliang114
  • fix(ci): keep the sdk-java cache write-back on a failed suite (#15555) by @wenshao
  • fix(serve): Fix Hosted local state and foreground Shell validation (#15670) by @doudouOUC
  • fix(release): close the failure issue once a re-run passes (#15711) by @yiliang114
  • fix(ci): refresh the stale ci.yml workflow-size baseline (#15717) by @wenshao
  • fix(web-shell): keep session rename responsive (#15688) by @wenshao
  • fix(cli): preserve OpenTUI extension update state (#15716) by @chiga0
  • fix(ci): Preserve canonical artifacts across job retries (#15713) by @doudouOUC

Performance

  • Runs web-shell and standalone tests concurrently with the main CLI test suite to shorten required Linux CI time. (#15438) by @wenshao
  • Keeps unchanged legacy memory catalog snapshots stable in history to improve DashScope cache reuse, resume, and retry behavior. (#15246) by @yiliang114

Documentation

  • Updates scheduled-task gate examples so copied first-run commands include required repository and PR options. (#15452) by @sxl-lucky7
  • docs(design): external Hosted Workspace profile (phase 2) (#15520) by @yiliang114
  • docs(managed): describe gate scanner capacity under the row pool (#15571) by @wenshao
  • docs: clarify usage statistics across authentication methods (#15554) by @sxl-lucky7
  • docs(qwencloud): document the forced attribution header and pin the admission split (#15633) by @yiliang114

Internal Changes

  • test(cli): cover remaining Managed Workspace activation refusals (#15460) by @doudouOUC
  • Corrects the managed-agent CSI inventory column count so test suites pass after permission-rule columns were added. (#15469) by @yiliang114
  • test(ci): pin the disk-pressure collector revision and FULL_PAYLOAD run bodies (#15475) by @yiliang114
  • Adds an integration test verifying the removeScratchDir retry budget removes busy scratch directories without logging cleanup warnings. (#15488) by @yiliang114
  • Tests now capture expected disk-full log output so real CI disk-full failures are easier to distinguish from deliberate test errors. (#8549) by @EthDing
  • Managed Agent tests now wait for a dead worker to become unusable before checking lease identity reuse or reconciling its loss. (#15503) by @yiliang114
  • SDK Java CI retains Surefire and Failsafe failure reports and preserves original SQL causes in channel ownership race tests. (#14910) by @Aling33
  • Adds CI regression coverage to keep JUnit report paths where CI collects them. (#15502) by @barry166
  • Applies the slow-host policy to hosted approval test waits so slow runners get longer approval-test timeouts. (#15183) by @qwen-code-dev-bot
  • Adjusts hosted approval test waits based on runner load policies to improve CI reliability on slower hosts. (#15101) by @qwen-code-dev-bot
  • Adds automated checks for memory recovery and hard-rescue catalog accounting to prevent regressions. (#15535) by @yiliang114
  • Adds automated checks for managed-agent row pool fan-out and corrects design documentation on shutdown and task limits. (#15528) by @yiliang114
  • Adds a repeatable Harness Kubernetes qualification workflow for deploying, verifying, and exercising shared pools. (#15519) by @doudouOUC
  • test(cli): pin the lifecycle-protocol refusal on the load route (#15536) by @yiliang114
  • Adds tests verifying the lint --setup guard installs only required linters and installs nothing when no lane is selected. (#15533) by @yiliang114
  • Consolidates catalog visibility rules so curated history reads consistently hide catalog snapshots when legacy memory is suppressed. (#15534) by @yiliang114
  • Centralizes QwenCloud MaaS host list usage for telemetry classification and DashScope admission to keep host handling consistent. (#15532) by @yiliang114
  • Hosted harness tests now use longer adaptive wait budgets for interrupted-model checks, reducing flaky timeouts without changing asserted behavior. (#15551) by @yiliang114
  • test(managed-agent): align S1 acceptance fixtures with runtime contracts (#15585) by @doudouOUC
  • Managed Agent workspace upload admission tests now use valid binary upload parameters and upload-status queries, and expect precise not-found errors for unknown uploads. (#15588) by @doudouOUC
  • test(runtime-broker): build the extension-profile fixture paths portably (#15598) by @yiliang114
  • test(cli): budget the skill-recovery poll through the settle policy (#15589) by @yiliang114
  • test(lint): pin the .gitignore grouping arm and the batch stride (#15640) by @yiliang114
  • Pin unknown sed long options (#15223) by @waybarrios
  • ci: run every suite but CLI and core in the side test lane (#15570) by @wenshao
  • test(cli): read xn-- hosts by the running URL parser in the Broker URL fixture (#15544) by @wenshao
  • test(integration): widen the ready-prompt budget on GitHub-hosted macOS x64 (#15692) by @yiliang114
  • chore(goal): remove an unused evidence helper and stale /goal hook comments (#15693) by @qqqys
  • test(web-shell): raise the 200-record history-viewport smoke budget to 300s (#15656) by @yiliang114
  • refactor(managed-agent): close the scanner row-pool residues (#15527) (#15632) by @yiliang114
  • test(managed-agent): initialize the snapshot pool connection synchronously (#15715) by @doudouOUC
  • test(cli): close the deferred review Suggestions from #15625 (#15710) by @wenshao

New Contributors

Full Changelog: v0.26.1...v0.26.2

Don't miss a new qwen-code release

NewReleases is sending notifications on new releases.