Неделя Qwen Code: телефон перехватывает сессии компьютера по QR-коду, Goal больше не обрывается на 50 ходах, экосистема плагинов открыла Agent Plugins и плагины Qoder
На этой неделе Qwen Code выпустил пять стабильных версий — с v0.21.7 по v0.21.11, принято более 220 PR. Десктоп-приложение обновилось до v0.2.1.
Телефон теперь управляет Qwen Code на компьютере. Local Control показывает QR-код: отсканируйте его телефоном в той же сети — и перехватите сессию, которая выполняется на компьютере.
Длинные задачи теперь доходят до конца. Goal больше не обрывается на 50 ходах — он сжимает доказательства в архив и продолжает работу. В Review появились правила ревью под конкретный репозиторий.
Экосистема плагинов открыта. Пакеты Agent Plugins v1 и плагины Qoder устанавливаются как есть, без конвертации. Web Shell умеет устанавливать расширения из архивов.
Несколько AI работают в команде. На прошлой неделе субагенты получили управление правами, на этой /coordinate пошёл дальше — он ведёт целую команду: исследователи по умолчанию только читают, код меняет только один, результаты сами уходят лидеру.
✨ Новые возможности
Local Control: телефон по QR-коду перехватывает сессии компьютера
На прошлой неделе официально вышло десктоп-приложение Qwen Code, на этой у него появился новый сценарий: включите Local Control на компьютере — на экране появится QR-код. Отсканируйте его телефоном и перехватите сессию, которая выполняется на компьютере. На телефоне открывается та же самая сессия: продолжайте диалог, подтверждайте действия. Одно ограничение: телефон и компьютер должны быть в одной локальной сети, удалённый доступ через интернет пока не поддерживается; корпоративные локальные сети тоже работают.
Работает и в терминале, и в десктоп-приложении: в терминале выполните qwen serve --local-control, в десктоп-приложении выберите в меню Control → Local Control…. Каждое включение создаёт новый токен сопряжения; пока функция включена, компьютер не засыпает, а текущая сессия работает как раньше. Выключили функцию или закрыли окно управления — соединение сразу разрывается, токен сразу перестаёт действовать.
Что это даёт:
- Отсканировали — и работаете: на телефон ничего не нужно скачивать и настраивать
- Отошли от компьютера — на телефоне видно, на каком этапе задача и что ждёт вашего подтверждения
- Закрыли окно управления — соединение сразу разорвано
Подробнее в PR #8727 , #8866 , #8806 , #8800

Goal: лимит в 50 ходов убрали, длинные задачи доходят до конца
В режиме длинных задач Goal на этой неделе два важных обновления.
Фиксированный лимит в 50 ходов убрали. Раньше Goal останавливался на 50 ходах независимо от того, выполнена задача или нет, а после возобновления счётчик ходов сбрасывался. Теперь Goal движется самой задачей: задача не выполнена, вы не ставили паузу и не очищали — он продолжает работать, а ходы накапливаются между паузой и возобновлением.
У длинных задач появился архив доказательств. Когда собранные Goal доказательства приближаются к лимиту, runtime ставит автопродолжение на паузу: отдельный валидатор без доступа к инструментам сжимает накопленные доказательства в набор кратких выводов, проверяет источник каждой цитаты, сохраняет в архив — и работа продолжается. Архив переживает даже неожиданное завершение процесса. Если проверка при сжатии не проходит, Goal останавливается и ждёт вас — не рвётся вперёд с ошибками.
Goal теперь не только в терминале. Goal в Web Shell работает на том же runtime, что и терминал: создание, редактирование, пауза, возобновление, очистка — всё на месте. Сторонние инструменты, подключённые через ACP, тоже могут вызывать те же возможности Goal на уровне протокола.
Подробнее в PR #8421 , #8465 , #8732
Экосистема плагинов: Agent Plugins v1 и плагины Qoder устанавливаются как есть
Раньше, чтобы установить стороннее расширение, его приходилось конвертировать в формат Qwen Code. На этой неделе оба стандартных формата плагинов работают как есть:
Agent Plugins v1. Это открытый формат плагинов, и Qwen Code на этой неделе его поддержал: пакеты, соответствующие стандарту plugin.json, устанавливаются в Qwen Code как есть — после установки их можно обновлять, включать и выключать, а skill и MCP-серверы внутри доступны сразу.
Плагины Qoder. Устанавливаются из пяти источников: локальный каталог, архив, Git-репозиторий, URL архива, npm-пакет. Команды, агенты, skill и MCP-серверы из пакета автоматически конвертируются в расширения Qwen Code; если в корне пакета есть system-prompt.md, он автоматически загружается как контекст.
Менеджер расширений Web Shell умеет устанавливать расширения из локальных архивов .zip / .tar.gz.
Подробнее в PR #8834 , #8661 , #8621

Review: правила ревью под репозиторий, большие PR больше не таймаутятся
Review на этой неделе обновился в двух направлениях.
Правила ревью настраиваются под репозиторий. Положите в репозиторий файл .qwen/review-context.json: какие модули есть в репозитории, на какие связанные пути смотреть при изменении определённого пути, какие тесты запускать — /review использует эти правила при составлении плана ревью. При ревью PR файл читается из базовой версии проверяемой ветки — ветка не может поменять собственные правила ревью.
Быстрее и стабильнее. Весь процесс ревью ускорился: изменения больше 3000 строк больше не падают по таймауту, мелкие изменения в несколько десятков строк получают результат быстрее, на финальный отчёт теперь всегда остаётся время — работа не уходит в пустоту без итогового слова. /review submit после выполнения сразу печатает ссылку на ревью.
Подробнее в PR #8401 , #8654 , #8658 , #8642 , #8773 , #8791 , #8774 , #8770

/coordinate: несколько AI делят работу — исследователи только читают, меняет один, итоги подводятся автоматически
На прошлой неделе мы сделали управление правами субагентов — «ключи под задачу». На этой пошли дальше: /coordinate теперь по-настоящему ведёт команду AI с разделением труда. Раньше /coordinate просто описывал командный процесс в промпте, и действительно ли напарники «только смотрят и не меняют», зависело от сознательности модели. Теперь это обеспечивает runtime:
- Исследователи по умолчанию только читают: отправленные на разведку напарники могут только смотреть репозиторий, обмениваться сообщениями и обновлять список задач — попытки изменить файлы или выполнить команду блокируются на уровне исполнения
- Код меняет только один: лидер создаёт Git worktree и отправляет туда единственного писателя — основной checkout остаётся нетронутым
- Результаты приходят сами: напарник закончил работу — выводы автоматически уходят лидеру, не нужно ждать отдельного сообщения, лидер не простаивает
Функция пока экспериментальная: чтобы пользоваться, установите переменную окружения QWEN_CODE_ENABLE_AGENT_TEAM в 1 — это включает Agent Team.
Что это даёт:
- Сложный вопрос несколько AI разбирают параллельно — быстрее, чем один агент копается в коде
- Исследователи — только чтение, руки только у одного, права под контролем
- Изменения попадают в отдельный worktree — основная ветка чиста
Подробнее в PR #8804

Экосистема Channel: одно одобрение на всю группу, карточки с вариантами в Feishu
Одно одобрение — и вся группа может пользоваться. Раньше режим сопряжения был персональным: подключаете группу — и каждого участника нужно одобрять отдельно. Теперь сопряжение работает по группам: одобрите группу один раз по её ID — пользоваться могут все участники; личные чаты по-прежнему одобряются по человеку. Одобрение группы можно отозвать отдельно, списки каждого workspace управляются отдельно.
В Feishu появились карточки с вариантами. AI в работе иногда задаёт вопросы с выбором — например, «какой из двух вариантов берём». Раньше в Feishu такие вопросы показывались просто текстом: видно, но ответить нельзя, задача стоит. Теперь вопрос превращается в карточку с вариантами: выбрали, отправили — задача продолжается. Люди и группы в сессиях Feishu больше не показываются непонятными ID — вместо них настоящие имена.
Карточки статуса DingTalk стали лучше. Раньше, когда AI работал в DingTalk, вывод разлетался на несколько карточек. Теперь на всю задачу одна карточка: с самого начала виден статус выполнения, вывод обновляется на карточке в реальном времени, а когда работа закончена, финальный ответ заменяет процесс целиком. При упоминании человека в финальной карточке только один @. Когда в группе DingTalk упоминают бота и заодно кого-то ещё, AI понимает, кого именно упомянули.
Сессии Channel теперь видны в Web Shell. Сессии из DingTalk, Feishu и WeCom показываются в боковой панели Web Shell, сгруппированные по платформам, рядом с обычными задачами. Для каждого Channel настраивается гранулярность разделения сессий: по пользователю, по теме, по чату — или одна общая сессия на весь канал.
Подробнее в PR #8440 , #8578 , #8569 , #8565 , #8639 , #8457

📊 Больше новых возможностей
Сжатие стало дешевле и быстрее. Когда диалог слишком длинный, Qwen Code сжимает его в короткую версию — но само сжатие отправляло весь длинный диалог модели ещё раз. Теперь контент, который модель уже обработала в основном диалоге, при сжатии переиспользуется, а не обрабатывается с нуля. Поддерживаются OpenAI-совместимые сервисы, Gemini и Vertex AI. Если переиспользовать не получается, автоматически включается прежний способ. Подробнее в PR #8418 , #8425
Управление глубиной размышлений Qwen 3.8 пришло в Web Shell и ACP. В меню моделей Web Shell можно прямо включать и выключать Thinking и выбирать уровень усилий low/medium/xhigh (пока поддерживается qwen3.8-max). ACP-клиенты (например, JetBrains) получили стандартные варианты глубины размышлений — шесть уровней от Default до Max. Подробнее в PR #8974 , #8526
Workflows можно ставить на паузу и возобновлять. Динамические workflows поддерживают кооперативные паузу и возобновление: в фоновых задачах — клавиша p, в терминале — /workflows p <runId>. Пауза не прерывает выполняющиеся подзадачи: новые задачи больше не выдаются, готовые результаты придерживаются, после возобновления работа продолжается с того же места. Подробнее в PR #8320
Появился пакетный интерфейс включения и выключения skill. daemon предоставляет пакетный интерфейс: до 100 skill включается или выключается за один раз — инструментам управления, подключённым к Qwen Code, больше не нужно слать запросы по одному. Подробнее в PR #8664
Логи OpenAI API очищаются автоматически. Если включён model.enableOpenAILogging, логи запросов автоматически удаляются по истечении срока — по умолчанию 7 дней, настраивается через model.openAILogRetentionDays. Подробнее в PR #8862 , #8893
Внешний корпус умеет писать в Mem0. Интеграция внешнего корпуса может записывать одобренный контент обратно в Mem0 как память — включается явно в конфигурации. Подробнее в PR #8507
Для голосовой транскрипции можно указать доверенный шлюз. Новая настройка security.allowedInsecureVoiceBaseUrls: управляемые развёртывания могут направлять голосовую транскрипцию на указанный HTTP- или внутренний ASR-сервис. Подробнее в PR #8350
/doctor memory показывает долю результатов инструментов. Новая статистика: сколько результатов инструментов держит текущая сессия, сколько всего символов, какой самый крупный. Если больше 30 тысяч символов — предложит выполнить /compress. Подробнее в PR #8875
👏 Улучшения опыта
Изображения, которые модель возвращает напрямую, тоже показываются. На прошлой неделе в терминале научились показываться изображения, сохранённые в файлы. На этой добавились изображения, которые модель возвращает прямо в ответе, и изображения в результатах инструментов — всё рендерится вместе с текстом в порядке вывода. Подробнее в PR #8305
В Web Shell изображения отправляются перетаскиванием. Перетащите PNG, JPEG, GIF, WebP или BMP прямо в поле ввода — несколько изображений сохраняют порядок, можно отправить и только изображения, без текста. Подробнее в PR #8696
Клик по изображению открывает его целиком. Кликните по загруженному или вставленному изображению — в правой панели откроется вкладка предпросмотра, при наведении появляется кнопка скачивания. Подробнее в PR #8930
Правая панель раскрывается на весь экран одним кликом. Панели артефактов, субагентов, diff и другие разворачиваются на весь экран одной кнопкой. Подробнее в PR #8614
Заполнение контекста видно с одного взгляда. Рядом с полем ввода появилось кольцо прогресса: сколько занято окно контекста. При 60% и 80% оно меняет цвет на предупреждающий, при наведении видны точные цифры, по клику открывается панель /context. Подробнее в PR #8794
Статус субагентов стал понятнее. Когда работают параллельные субагенты, блок статуса постоянно висит внизу диалога: во время работы он раскрывается сам, после завершения сворачивается. Строку любого субагента можно раскрыть в любой момент — тип и метрики видны сразу. Подробнее в PR #8559 , #8780
Одно нажатие Esc — и всё остановилось. Раньше, когда в очереди были сообщения, приходилось жать Esc трижды, чтобы AI прекратил вывод. Теперь первое же нажатие отменяет текущую работу. Подробнее в PR #8353
Выделение мышью стало удобнее. В терминале: дважды кликните по слову и, удерживая, тяните — выделение расширяется по словам; трижды кликните по строке и тяните — выделение расширяется по строкам. Подробнее в PR #8739
Статус задачи виден в заголовке окна. Когда AI выводит ответ или ждёт подтверждения, перед заголовком окна или вкладки терминала появляются символы ◐ и ✳ — в мультиплексорах вроде tmux сразу видно, в каком окне что происходит. Подробнее в PR #8970
Категории автодополнения переключаются стрелками. Переключение категорий автодополнения @ переехало с Ctrl+Tab на стрелки влево и вправо. Подробнее в PR #8576
Копирование в Wayland и ссылки в китайском тексте. В Linux на Wayland копирование текста теперь предпочитает wl-copy; простые ссылки в китайском тексте больше не захватывают идущие следом полноширинные знаки препинания. Подробнее в PR #8481 , #8755
Стриминг стал плавнее. Парсинг Markdown во время стриминга теперь идёт с фиксированным интервалом — длинные ответы не подвисают; внутренний вывод hook больше не примешивается к отображению диалога. Подробнее в PR #7904 , #7948
Статус в узких окнах. В узком терминале имена слэш-команд больше не обрезаются; когда стриминг мешает показать очередь, в строке статуса постоянно висит бейдж «N queued». Подробнее в PR #8657 , #8667
Вызовы инструментов ACP выполняются параллельно. Вызовы инструментов, которые раздаёт ACP-агент, теперь выполняются параллельно в пределах настроенного лимита — раньше они шли по очереди. Подробнее в PR #8631
Десктоп-версия скачивается быстрее. Раньше установщики десктоп-приложения скачивались с GitHub — в Китае это медленно и нестабильно. Теперь копия лежит на Alibaba Cloud OSS: при проверке обновлений скачивание идёт сначала оттуда, а на GitHub возвращается только если не получилось. Подробнее в PR #8976
Мелочи десктоп-версии. При первом запуске автоматически создаётся workspace по умолчанию — открыли и работаете, выбирать каталог не нужно. На macOS закрытие главного окна теперь прячет его — клик по Dock возвращает обратно. При неудачном автообновлении показывается конкретная причина. Если в напоминании об обновлении провайдера выбрать «позже», следующее появится через 24 часа. Подробнее в PR #8814 , #8802 , #8807 , #8829
Ошибки переключения сессий говорят, что именно мешает. Если сессию не удаётся переключить из-за работающих фоновых задач, в ошибке видны их ID и статус. Подробнее в PR #8742
🔧 Важные исправления
| Исправление | Что это даёт | PR |
|---|---|---|
| Каталог, явно помеченный недоверенным, больше не «отбеливается» | Если родительский каталог доверенный, помеченный недоверенным подкаталог всё равно обрабатывается как недоверенный — его конфиги и переменные окружения не загружаются | #8628 |
| Доверие к .env проекта оценивается отдельно | Если доверенный проект лежит внутри недоверенного родительского каталога, секреты из родительского .env больше не подтягиваются | #8706 |
| Внешние программы из конфига Git теперь требуют подтверждения | Если в репозитории настроен diff.external или core.fsmonitor с запуском внешней программы, даже «read-only» git diff / git status сначала спросит вас | #8645 |
| Утечка переменных окружения прикрыта | Переменные окружения недоверенного workspace больше не просачиваются в дочерние процессы сессии через унаследованные переменные | #8763 |
| Конфликт параметров Qwen 3.8 | Конфликт двух параметров размышлений DashScope Qwen 3.8 больше не роняет запрос | #8525 |
| Псевдонимы моделей Claude и лимиты token | Модели Claude с точкой в младшей версии теперь распознаются правильно, лимит token для Opus 5 дополнен | #8585 |
| Сбой запуска десктоп-приложения на Windows | Пути на Windows со специальными префиксами больше не мешают запуску десктоп-приложения | #8619 , #8936 |
| Ответ после обрыва связи приходит целиком | Когда сессия возобновляется после обрыва сети, уже доставленное содержимое больше не теряется | #8624 |
| Отложенные инструменты MCP больше не теряются | Инструменты MCP с отложенной загрузкой восстанавливаются вместе с сессией | #8475 |
qwen mcp list больше не зависает | Если SSE-эндпоинт не отвечает, команда выходит по таймауту, а не висит бесконечно | #8555 |
| Убитые команды показываются как ошибки | Shell-команды, завершённые сигналом, честно показываются как ошибка, а не как успешное выполнение | #8501 |
| AutoFix больше не получает ложный таймаут | Долгие headless-задачи autofix стримят прогресс и больше не прерываются ошибочно по таймауту | #8895 |
| Повторяющиеся сбои инструментов в сессии ACP | Если инструменты в интерактивной ACP-сессии падают раз за разом, исполнение ставится на паузу — бесконечные сбои прекращаются | #8469 |
| Sandbox-рантаймы сначала проверяются | Перед выбором sandbox-рантайма проверяется его доступность; если доступного рантайма нет, ошибка объясняет это понятно | #7734 |
| Своя отмена больше не выглядит ошибкой | Запросы, которые вы отменили сами, больше не показывают ложную ошибку API | #8399 |
👥 Участники
| Участник | Вклад | Ссылки на PR |
|---|---|---|
| @wenshao | Контекстный манифест репозитория для Review и оптимизация по всей линии, полноэкранные панели и кольцо заполнения контекста в Web Shell, вывод ссылки /review, именование sandbox-контейнеров | #8401 , #8658 , #8614 , #8794 , #8770 |
| @yiliang114 | Разделение труда нескольких AI в /coordinate, сопряжение Local Control, workspace по умолчанию и OSS-зеркало десктоп-приложения, серия исправлений путей и поведения окон на Windows | #8804 , #8727 , #8814 , #8976 , #8619 |
| @doudouOUC | Набор исправлений стабильности сессий daemon и Web Shell: транзакционное переключение, гонки при обновлении, нехватка ресурсов; плюс очистка логов OpenAI и запись в Mem0 | #8882 , #8939 , #8862 , #8507 |
| @zjunothing | Варианты глубины размышлений ACP, восстановление инструментов MCP и обновление метаданных, границы доверия .env, копирование в Wayland, усиление телеметрии | #8526 , #8475 , #8706 , #8481 , #8616 |
| @qqqys | Удаление лимита 50 ходов в Goal и архив доказательств, сопряжение по группам, объединение карточек статуса DingTalk, пауза и возобновление workflows | #8421 , #8465 , #8440 , #8565 , #8320 |
| @ytahdn | Предпросмотр изображений в Web Shell, отклик панели субагентов, стабильная прокрутка длинных диалогов, подсчёт изменённых строк в больших файлах | #8930 , #8915 , #8914 , #8924 |
| @carffuca | Обратная связь параллельных субагентов и построчное взаимодействие в Web Shell, сохранение имён команд в узком терминале, управление карточками вопросов с клавиатуры | #8559 , #8780 , #8657 , #8876 |
| @DragonnZhang | Общий кэш сжатия для OpenAI/Gemini/Vertex, исправление конфликта параметров Qwen 3.8, выделение текста в футере режима VP | #8418 , #8425 , #8525 , #8329 |
| @callmeYe | Agent Plugins v1, плагины Qoder, установка расширений из архивов, пакетное включение и выключение skill, управление размышлениями Qwen 3.8 в Web Shell | #8834 , #8661 , #8621 , #8664 , #8974 |
| @qwen-code-dev-bot | Выделение слов двойным кликом с перетаскиванием, символы статуса в заголовке окна, бейдж очереди, пауза между напоминаниями об обновлении провайдера, пример конфигурации WebSearch | #8739 , #8970 , #8667 , #8829 , #8665 |
| @BenGuanRan | Карточки с вариантами и отображаемые имена контактов в Feishu, определение упоминаний и настройка интерактивных карточек в DingTalk | #8578 , #8569 , #8639 , #8517 |
| @LaZzyMan | Подпись Live Host и OSS-зеркало, переключение категорий автодополнения @ стрелками | #8579 , #8674 , #8917 , #8576 |
| @chiga0 | Эхо команды возобновления, освобождение места при сворачивании блоков размышлений, исправление мерцания при изменении размера окна | #8455 , #8570 , #8831 |
| 🆕 @daleselaji-dev | 🎉 Первый вклад: приоритет явного недоверия, ошибки убитых команд, таймаут MCP SSE | #8628 , #8501 , #8555 |
| @harjothkhara | Обнаружение sandbox-рантаймов, полное восстановление ответов после обрыва связи, распознавание отмены в OpenAI SDK | #7734 , #8624 , #8399 |
| @ZijianZhang989 | Статистика результатов инструментов в /doctor memory, мгновенное обновление контекста после записи памяти | #8875 , #8640 , #8809 |
| @BZ-D | Вид Channels в боковой панели Web Shell, исправление аутентификации при обновлении сессии | #8457 , #8445 |
| @C0d3N1nja97342 | Одно нажатие Esc отменяет текущую работу | #8353 |
| @ComplexSimply | Регрессионные тесты стабильности выбора модели | #8879 |
| @destire-mio | Разделение контекста hook и отображения диалога | #7948 |
| @dreamWB | Исправление раскладки поля ввода на мобильных | #8601 |
| 🆕 @dss1222 | 🎉 Первый вклад: корейский язык в языковой панели README | #8836 |
| 🆕 @Maddock-MDF | 🎉 Первый вклад: bailian-cli в разделе экосистемы документации | #8710 |
| @netbrah | Разбор псевдонимов Claude и лимит token Opus 5 | #8585 |
| @PratikWayase | Ограничение частоты парсинга Markdown при стриминге | #7904 |
| 🆕 @rbalachandar | 🎉 Первый вклад: исправление тестов нормализации путей на macOS | #8759 |
| 🆕 @rockybot2026 | 🎉 Первый вклад: настройка доверенного ASR-шлюза | #8350 |
| 🆕 @tlysanhuo | 🎉 Первый вклад: inline-рендеринг изображений в терминале | #8305 |
| @water-in-stone | Прикрепление изображений перетаскиванием в Web Shell | #8696 |
| @xianjianlf2 | Корректное закрытие файлового кэша при исчерпании inode | #8290 |
Обновление: выполните npm i @qwen-code/qwen-code@latest -g для обновления до последней версии.
Если у вас есть вопросы или предложения, пишите в GitHub Issues !