Release notes
Qwen Code v0.26.9
Highlights
See the complete change list below.
Breaking Changes
No known breaking changes.
Skill installation and activation
Skill ZIP uploads, daemon APIs, TypeScript SDK support, bulk activation, and recovery protections make installing and managing Skills more reliable.
- Adds PUT /skills/activation and setUserSkillsActivation to enable or disable 1-100 user Skills in one request, with saved preferences and propagation status. (#16186)
- Prepares Skill installation for larger archives by adding disk-based ZIP handling and recovery-backup protection to the installer. (#16421)
- Adds daemon API routes for installing large Skill ZIPs by upload or host file path and querying installation receipts after failures. (#16422)
- Adds TypeScript SDK support for installing Skill ZIPs from File, Blob, bytes, or host path, with attempt IDs and receipt lookup. (#16423)
- WebShell can now upload Skill ZIP archives from the Skills page, show daemon limits, and check uncertain installation results. (#16424)
Web Shell sessions and composer
Web Shell session titles, Add menu polish, draft preservation, batch deletion, and listSessions pagination fixes improve everyday session management.
- Keeps Web Shell sidebar session titles visible when a transcript is rebuilt, preventing session names from disappearing. (#16299)
- Polishes the Web Shell composer Add menu with consistent icons, labels, descriptions, spacing, and improved accessibility for actions and Plan state. (#16181)

- WebShell now preserves unsent drafts when ArrowUp or ArrowDown moves through wrapped prompt lines before history navigation. (#14909)
- web-shell: batch session deletions at the route limit (#14637)

- listSessions pagination no longer skips sessions when multiple session files share the same modification time. (#16024)
Managed agents and sessions
Managed agent automation, durable questions, activation renewals, writer recovery, and history caching improve hosted session reliability and speed.
- managed-agent: support durable structured user questions (#16433)
- managed-agent: enable automation by default (#16448)
- Managed agent activation renewals now locate the activation lease more efficiently, reducing renewal lookup overhead. (#16336)
- Improves managed-agent performance by removing tenant guard locks from native journal snapshot publication. (#16410)
- Managed Session history rebuilds now cache message bodies per process, reducing repeated reads and improving performance for hosted turns. (#16337)
- HTTP Managed Session writer recovery now keeps a live in-flight renewal grant instead of unnecessarily re-acquiring the writer. (#16287)
GitHub PR automation
Sandboxed /verify can read PR review threads, /autofix-pr refusals expose machine-readable codes, and GitHub inbound recovery retries failed reads.
- The sandboxed /verify round can now see PR review threads, including resolved and outdated threads, so reviewer findings are available during verification. (#16300)
- /autofix-pr helper refusals now include a machine-readable refused code and next step on stderr, making failures easier to handle. (#16238)
- GitHub inbound recovery now retries after a failed read instead of stopping, so recovered tasks run once the task store becomes readable. (#16402)
Model and provider support
Image input fixes for Llama, LLaVA, Pixtral, Mistral Small, and Qwen VL models plus OCI Generative AI documentation broaden provider coverage.
- Enables image input for Llama 3.2 Vision, Llama 4, LLaVA, Pixtral, and Mistral Small 3.1 and 3.2 models. (#16311)
- core: accept images for Qwen VL models under their Ollama names (#16309)
- providers: document OCI Generative AI under OpenAI-compatible providers (#16345)
Channels and messaging
QQ proactive delivery and richer Channel event timeline recording improve active group messaging, delivery tracking, and scan health visibility.
- Enables QQ proactive delivery so loop messages, webhook tasks, background responses, and daemon sends can be sent as active group messages. (#15635)
- Channel event timeline now records private bound-session deliveries, undelivered events, and scan health outcomes. (#16237)
CLI and terminal status
Interactive CLI reports working, blocked, done, or error status via OSC 7501, while experimental.unifiedAgentLoop helps Ink TUI finish tool batches.
- The interactive CLI now reports working, blocked, done, or error status to terminals using OSC 7501 with app=qwen-code. (#16407)
- With experimental.unifiedAgentLoop enabled, Ink TUI turns await their shared tool batch so tool continuations complete within the turn. (#16385)
Daemon, runtime, and account recovery
Faster SSH registration and MCP startup, reduced tool-execution locking, bounded daemon replay memory, and subscription recovery improve platform stability.
- SSH registration settlement and Session worktree preparation are less serialized, allowing more concurrent Runtime work and faster workspace preparation. (#16386)
- Loads MCP client Google auth providers on demand to reduce startup load while keeping configured server behavior unchanged. (#16242)
- Improves ordinary session tool execution performance by reducing unnecessary locking during admission and dispatch. (#16415)
- Daemon command and skill replay now limits snapshot memory with an 8 MiB per-session ring, configurable via --event-ring-max-bytes. (#16413)
- subscription: isolate activation and restore sign-in recovery (#16453)
Other Changes
- Internal test coverage for renewal recovery and writer seal handling was hardened without changing production behavior. (#14482)
- Consolidates Web Shell sidebar test scaffolding onto a shared sidebarHarness without changing user-visible behavior. (#16016)
…