npm @qwen-code/qwen-code 0.18.4-preview.0
Release v0.18.4-preview.0

latest release: 0.18.4
3 hours ago

What's Changed

  • chore(release): v0.18.3 by @qwen-code-ci-bot in #5255
  • fix(core): Track supported sed edits in file history by @doudouOUC in #5141
  • fix(vscode-ide-companion): create independent McpServer per IDE session by @huww98 in #5264
  • fix(core): read BMP height as signed int32 for top-down bitmaps by @he-yufeng in #5227
  • docs: add CLI subcommands section with qwen sessions list by @DragonnZhang in #5254
  • feat(serve): make ACP permission timeout configurable by @doudouOUC in #5260
  • fix(cli): Preserve mid-turn image messages by @doudouOUC in #5183
  • docs: fix SSE ring size errors and add /workflows command by @DragonnZhang in #5205
  • fix(core): detect dat files by content by @tt-a1i in #5256
  • fix(model): remember selected provider when multiple share a model id (#5173) by @doudouOUC in #5179
  • docs: Revamp README for clarity and focus by @pomelo-nwu in #5257
  • feat(i18n): localize tool display names in TUI and web-shell badges by @wenshao in #5220
  • fix(daemon): centralize mid-turn event constant + recover timed-out drains by @wenshao in #5266
  • fix(core): keep DeepSeek presets text-only by @tt-a1i in #5268
  • fix(cli): drop AgentView cleanup setState that can trip React #185 (#5199) by @wenshao in #5286
  • fix(core): read WebP VP8X canvas height from the correct byte offset by @he-yufeng in #5194
  • fix(cli): support Ctrl+P/N in completions by @tt-a1i in #5259
  • feat(serve): add daemon idle detection to GET /health?deep=true by @jifeng in #4934
  • fix(core): never let telemetry file exporters crash the process by @DragonnZhang in #5246
  • fix(cli): correct context filename settings schema by @tt-a1i in #5269
  • feat(hooks): pass original API call ID (toolCallId) to hook system by @shiloong in #4918
  • fix(core): per-turn tool-call circuit breaker — always-on cap + opt-in loop heuristics (#5234) by @wenshao in #5279
  • fix(desktop): handle git branch badge edge cases by @tt-a1i in #5247
  • feat(core,cli): Workflow tool token budget + per-run UI surfacing (P5) by @LaZzyMan in #5231
  • feat(extensions): add i18n support for extension displayName and description by @callmeYe in #5289
  • feat(loop): wire prompt-only /loop to self-paced wakeups by @qqqys in #5197
  • fix(cli): correct sandbox settings schema by @tt-a1i in #5272
  • test(cli): enable load config model selection coverage by @tt-a1i in #5274
  • docs(cli): document tmux scroll workaround by @tt-a1i in #5248
  • test(cli): cover selection list scroll up by @tt-a1i in #5276
  • fix(weixin): show allowed image directories by @tt-a1i in #5296
  • fix(cli): reject malformed OSC rgb colors by @tt-a1i in #5307
  • test(cli): enable table foreground reset coverage by @tt-a1i in #5278
  • test(core): enable agent headless termination coverage by @tt-a1i in #5282
  • fix(web-shell): summarize grep_search results by @tt-a1i in #5294
  • fix(core): read short VP8L WebP dimensions by @tt-a1i in #5292
  • fix(core): track attached stdout fd redirects by @tt-a1i in #5317
  • fix(dingtalk): split oversized markdown lines by @tt-a1i in #5299
  • fix(cli): preserve multiline shell history by @tt-a1i in #5335
  • fix(cli): validate GitHub remote hosts by @tt-a1i in #5327
  • test(cli): enable command search long suggestion coverage by @tt-a1i in #5283
  • fix(core): preserve migrated command description strings by @tt-a1i in #5321
  • fix(cli): enforce stdin byte limit by @tt-a1i in #5331
  • fix(core): respect home path boundary when tildeifying by @tt-a1i in #5333
  • fix(cli): truncate session picker text by display width by @tt-a1i in #5338
  • fix(core): support GIF image token metadata by @tt-a1i in #5340
  • fix(cli): handle session search graphemes by @tt-a1i in #5342
  • fix(cli): normalize english output language by @tt-a1i in #5346
  • fix(core): parse OAuth resource metadata params by @tt-a1i in #5344
  • fix(core): handle stale worktree session markers by @tt-a1i in #5229
  • feat(loop): add second-resolution session wakeup engine by @qqqys in #5182
  • fix(core): ignore duplicate provider tool-call ids by @YingchaoX in #5038
  • fix(cli): show thinking in full transcript mode by @tt-a1i in #5354
  • feat(desktop): compile macOS 26+ Liquid Glass Assets.car in brand-create by @pomelo-nwu in #5284
  • fix(cli): return fresh empty mcp json results by @tt-a1i in #5349
  • fix(weixin): normalize markdown image syntax by @tt-a1i in #5297
  • fix(core): skip sleep inhibitor in headless ssh by @tt-a1i in #5295
  • fix(cli): reject malformed terminal sequences by @tt-a1i in #5305
  • fix(cli): expand windows-style tilde paths by @tt-a1i in #5298
  • fix(core): validate oauth expires_in values by @tt-a1i in #5356
  • fix(core): reject malformed cron numeric fields by @tt-a1i in #5352
  • fix(cli): parse sandbox image registry ports by @tt-a1i in #5325
  • fix(cli): preserve empty MCP prompt args by @tt-a1i in #5323
  • fix(core): reject invalid cron task entries by @tt-a1i in #5309
  • fix(cli): avoid agent composer unmount reset by @tt-a1i in #5302
  • fix(cli): validate channel service pidfile by @tt-a1i in #5300
  • fix(core): preserve invalid schema length strings by @tt-a1i in #5312
  • fix(weixin): confirm the WEBP signature, not just the RIFF prefix by @he-yufeng in #5285
  • feat(channel): add QQ Bot (QQ机器人) channel adapter by @Eric-GoodBoy-Tech in #5202
  • fix(cli): reject malformed ACP timeout strings by @tt-a1i in #5315
  • fix(cli): import extension channels via file urls by @tt-a1i in #5301
  • fix(cli): bound streaming thought render buffers by @kkhomej33-netizen in #5314
  • feat(core): auto-reveal exit_plan_mode tool when entering plan mode by @aspnmy in #5311
  • fix(cli): window title shows session name instead of model activity status by @ZijianZhang989 in #5288
  • fix(core): keep qwen3.6-flash and kimi-k2.6 presets text-only by @he-yufeng in #5328
  • feat(skills): add desktop-pet skill for creating pixel-art companions by @xxlaura in #4808
  • fix(cli): render a sub-minute duration that rounds to 60s as "1m" by @he-yufeng in #5287
  • fix: Expand Windows ~\ home paths and hide phantom (session) entries in the desktop session list by @mvanhorn in #5253
  • feat(stats): expose token usage for cost visibility by @shenyankm in #4564
  • fix(plan-gate): isolate gate agent AbortSignal from parent signal chain by @CubeLander in #5185
  • fix(core): honor output language in side queries by @Jerry2003826 in #4519
  • fix(cli): avoid stale git branch watcher setup by @tt-a1i in #5271
  • fix(desktop): detect WebP and AVI in RIFF magic-byte sniffing by @he-yufeng in #5336
  • fix(input): restore IME cursor positioning reverted in #4779 by @BenGuanRan in #4993
  • fix(cli): close @path completion dropdown on Enter accept by @Alex-ai-future in #4841
  • fix(core): fall back to encrypted-file storage for extension secrets when keychain is unavailable by @DragonnZhang in #5221
  • fix(core): support whitespace in session metadata fields by @tt-a1i in #5353
  • fix(core): prevent OOM in auto-memory extraction during /quit (#5147) by @ZijianZhang989 in #5181
  • refactor(tools): rename TodoWrite tool display name to TodoList by @wenshao in #5319
  • fix(core): expire tokens at buffer boundary by @tt-a1i in #5360
  • fix(cli): validate restore checkpoints before mutation by @tt-a1i in #5358
  • fix(core): honor ripgrep builtin setting at runtime by @tt-a1i in #5362
  • fix(core): create token file on first save by @tt-a1i in #5367
  • fix(cli): preserve workspace trust state for extensions by @tt-a1i in #5369
  • fix(cli): Stop after cancelled permissions by @doudouOUC in #5258
  • fix(core): resolve tilde paths before search permission checks by @tt-a1i in #5378
  • fix(cli): respect sandbox path boundaries by @tt-a1i in #5375
  • fix(cli): update acp cancel test flag by @tt-a1i in #5384
  • fix(core): avoid reconnecting on MCP tool errors by @tt-a1i in #5382
  • fix(core): accept uppercase web fetch schemes by @tt-a1i in #5391
  • fix(cli): preserve equals in mcp env values by @tt-a1i in #5377
  • feat(cli): show follow-up suggestion in input placeholder by @MikeWang0316tw in #5145
  • fix(core): avoid glob prefix cache reuse by @tt-a1i in #5364
  • fix(core): validate grep result limits by @tt-a1i in #5389
  • fix(core): parse grep results with colon paths by @tt-a1i in #5372
  • feat(config): add settings file change detection via chokidar watcher… by @water-in-stone in #4933
  • fix(acp): scrub simple env for spawned children by @tt-a1i in #5395
  • fix(core): pass --no-ask-password to systemd-inhibit to prevent TUI corruption by @OrbitZore in #5318
  • fix(cli): parse sandbox mounts with windows drives by @tt-a1i in #5388
  • fix(core): add GLM-5.2 to Z.AI preset by @tt-a1i in #5397
  • fix(openai): add string tool result compatibility mode by @tt-a1i in #5399
  • fix(cli): clarify cumulative statusline token labels by @tt-a1i in #5400
  • feat(cli): show optional response token rate by @tt-a1i in #5401
  • fix(cli): reduce retained interactive tool output memory by @kkhomej33-netizen in #4971
  • fix(cli): calculate response rate from phase token delta by @tt-a1i in #5402
  • fix(cli): clarify unavailable model configuration hint by @tt-a1i in #5403
  • feat(cli): serve the Web Shell UI from qwen serve by @wenshao in #5392
  • fix(cli): gate cron scheduler startup on config initialization (#5022) by @qwen-code-ci-bot in #5230
  • fix(core): keep estimated token split summing to total by @he-yufeng in #5420
  • fix(core): share memory filename config state by @tt-a1i in #5419
  • fix(channel): scope qqbot session backup path by @tt-a1i in #5417
  • fix(channel): track qqbot close reconnect timer by @tt-a1i in #5416
  • fix(auth): preserve custom provider models on install by @tt-a1i in #5404
  • fix(core): target microcompaction cache disarms by @tt-a1i in #5407
  • fix(channel): keep qqbot token refresh retrying by @tt-a1i in #5414
  • fix(cli): keep keypress handlers current by @tt-a1i in #5421
  • refactor(serve): unify session title/displayName into single displayName field by @chiga0 in #5002
  • feat(cli): add persistent history collapse on resume with refined commands by @Gove2004 in #4085
  • fix(cli): narrow settings enum schemas by @tt-a1i in #5418
  • fix(channel): bound qqbot gateway reconnect retries by @tt-a1i in #5415
  • fix(core): block broad shell self-kill commands by @tt-a1i in #5409
  • fix(cli): preserve trustedFolders comments on save by @Zoean-z in #4746
  • fix(hooks): remove the dead updatedMCPToolOutput field (#5422) by @ken-jo in #5423
  • feat(web-shell): add extension management by @ytahdn in #5398
  • fix(cli): accept uppercase URL schemes in mcp add transport detection by @he-yufeng in #5426
  • fix(extensions): accept uppercase URL schemes when parsing install sources by @he-yufeng in #5429
  • fix(core): provide escape path when plan gate is unavailable by @Alex-ai-future in #5430
  • feat(extensions): interactive multi-tab /extensions manager (Installed / Discover / Sources) by @BZ-D in #4850
  • fix(cli): stabilize extension list spacing by @yiliang114 in #5445
  • fix(weixin): handle uppercase CDN upload schemes by @tt-a1i in #5439

New Contributors

Full Changelog: v0.18.3...v0.18.4-preview.0

Don't miss a new qwen-code release

NewReleases is sending notifications on new releases.