Qwen Code Hebdo : l'app desktop Qwen Code officiellement lancée, Session Workflow affiche l'exécution des tâches en un coup d'œil, les sous-Agents reçoivent des permissions sur mesure
Cette semaine, Qwen Code sort cinq versions stables — de v0.21.2 à v0.21.6 — avec plus de 300 PR fusionnés. Et une grosse annonce : l’app desktop Qwen Code v0.1.0 est officiellement lancée.
L’app desktop est là ! La semaine dernière, le Web Shell recevait une grosse mise à jour. Cette semaine, il devient une application desktop à part entière : Qwen Code desktop v0.1.0 est lancé, avec des installateurs natifs pour macOS, Windows et Linux, en téléchargement direct sur GitHub Releases.
L’exécution des tâches devient visible. La nouvelle vue Session Workflow transforme le plan et la progression en un diagramme : nombre d’étapes, étape en cours, étape en attente, sous-tâche déléguée à quelle IA — tout est là. L’IA vous montre le diagramme avant de démarrer, et elle ne commence qu’avec votre accord.
Le terminal et le contrôle des permissions se complètent. Les images générées par l’IA s’affichent directement dans le terminal — plus besoin d’ouvrir le fichier soi-même. Les sous-Agents reçoivent désormais des permissions adaptées à leur tâche : une tâche en lecture seule n’obtient que la lecture, et les combinaisons de permissions courantes se gardent en modèles réutilisables. La compression des longues sessions peut utiliser un modèle dédié moins cher, pour un coût mieux maîtrisé.
✨ Nouvelles fonctionnalités
Qwen Code desktop officiellement lancé : une app native sur les trois grands systèmes d’exploitation
Jusqu’ici, l’expérience desktop de Qwen Code était éparpillée entre deux endroits : l’app desktop Electron et le Web Shell dans le navigateur. Cette semaine, les deux fusionnent : Qwen Code desktop v0.1.0 est officiellement lancé, avec l’interface du Web Shell après sa grosse mise à jour de la semaine dernière. Les installateurs pour macOS, Windows et Linux sont en ligne, en téléchargement direct sur GitHub Releases .
Les utilisateurs macOS déjà sur la version Electron n’ont pas de migration manuelle à faire : la nouvelle version inclut un assistant de migration unique, et les mises à jour suivantes suivent automatiquement.
Ce que cela vous permet de faire :
- L’app desktop Qwen Code a les mêmes capacités que la version terminal
- Une expérience cohérente sur les trois grands systèmes d’exploitation
- Vérification automatique des mises à jour — pas de réinstallation manuelle pour les versions suivantes
Voir les PR #8132 , #8392 , #8511 , #8518

Session Workflow : le plan, les sous-tâches et la progression dans un seul diagramme
Une fois une tâche complexe lancée, savoir où en est le plan et ce que fait chaque sous-tâche voulait dire éplucher l’historique de la conversation pour tout reconstituer soi-même.
La nouvelle vue Session Workflow dessine tout cela en un diagramme : chaque étape du plan devient une boîte, les flèches montrent l’ordre, et l’état de chaque étape — en cours ou bloquée — s’affiche en temps réel. Les sous-tâches déléguées par l’IA sont aussi accrochées au diagramme ; un clic montre ce qu’elles ont fait concrètement. Avant de démarrer, l’IA vous montre le diagramme : vous validez, elle commence ; vous refusez, elle repart planifier. Une fois la tâche terminée, le diagramme reste consultable — chaque étape garde la trace de qui l’a faite et de ce qui a été fait.
La fonctionnalité est désactivée par défaut : passez experimental.sessionWorkflow à true dans settings pour l’activer. Deux bonus une fois activée : quand une sous-tâche attend votre validation — exécuter une commande, modifier un fichier — la demande remonte directement dans l’interface principale, pas besoin d’aller la chercher dans la sous-tâche ; et les très longues tâches peuvent partir en arrière-plan pendant que la conversation principale continue autre chose, avec une notification à la fin.
Ce que cela vous permet de faire :
- Suivre d’un coup d’œil la progression d’une tâche complexe — une étape bloquée se voit sur le diagramme
- Valider le plan avant le démarrage, pour travailler plus sereinement
- Envoyer les longues tâches en arrière-plan et continuer autre chose dans la conversation principale
Voir les PR #7580 , #8391 , #8240 , #8303

display_image : les images générées par l’IA s’affichent directement dans le terminal
Avant, quand l’IA générait une image, elle vous laissait un chemin de fichier — à vous de l’ouvrir. Désormais, l’image s’affiche directement dans le terminal, visible dès la génération terminée. La couverture de ce numéro a été choisie exactement comme ça : l’IA génère quelques candidates, toutes affichées dans le terminal, et la comparaison se fait directement, sans ouvrir les fichiers une par une. Si le terminal ne supporte pas l’affichage d’images, il vous le dit clairement.
Ce que cela vous permet de faire :
- Une image générée par l’IA se voit aussitôt terminée, sans ouvrir de fichier
- Les graphiques dessinés à partir de données ou les captures d’une page web construite s’affichent aussi directement
- Demander à l’IA de sortir des maquettes ou des captures déjà présentes dans le repo pour les regarder ensemble
Voir le PR #8217

Permissions des sous-Agents : des clés selon la tâche, sans interférence entre tâches parallèles
Quand vous confiez une grosse tâche à Qwen Code, il délègue parfois à quelques « clones » (sous-Agents) qui travaillent en parallèle — l’un lit le code, l’autre lance les tests. Avant, chaque clone avait les mêmes capacités complètes que l’original : lire des fichiers, les modifier, exécuter des commandes. Vous vouliez juste « lire le code et rédiger un résumé », mais il pouvait très bien modifier des fichiers au passage — pas rassurant.
Désormais, les permissions se règlent par tâche :
- Des clés selon la tâche : au moment de déléguer, vous pouvez limiter les outils disponibles — une phrase suffit, par exemple « cette tâche est en lecture seule », et la délégation part avec cette contrainte ; toute tentative de modification est refusée sur-le-champ
- Modèles de permissions : les combinaisons de permissions courantes se gardent en modèles, dans le répertoire
.qwen/fork-profiles/du projet ; la fois suivante, un paramètre suffit pour les réutiliser — plus besoin de tout reconfigurer - Instructions confidentielles : une faille corrigée — avant, quand plusieurs clones travaillaient en parallèle, ils pouvaient voir les instructions des autres ; désormais chacun ne voit que les siennes et reste concentré sur sa tâche
Ce que cela vous permet de faire :
- Une tâche en lecture seule n’obtient que la lecture — impossible de modifier des fichiers au passage
- Les combinaisons de permissions courantes deviennent des modèles, réutilisables en une ligne
- Les clones en parallèle travaillent chacun de leur côté, sans interférence
Voir les PR #8066 , #8148 , #8344
Coût de compression : un modèle moins cher peut s’en charger
Quand une longue session déclenchait la compression automatique, seul le modèle principal pouvait relire tout le contexte — cher et lent.
Trois améliorations cette semaine. D’abord, /model --compaction permet de dédier un modèle à la compression : un modèle moins cher s’occupe de « résumer la longue conversation », pendant que la conversation principale garde le bon modèle — la qualité ne bouge pas. Ensuite, quand la compression utilise le modèle principal, elle réutilise le contenu déjà mis en cache : réponse plus rapide, historique avec images compris. Enfin, avec les modèles de la famille Claude, passez generationConfig.cacheRetention à "1h" : la rétention du cache passe de 5 minutes par défaut à 1 heure, et les sessions très espacées ne gaspillent plus leur cache à chaque fois.
Ce que cela vous permet de faire :
- Confier la compression à un modèle moins cher pour des longues sessions plus économiques
- Le modèle principal réutilise le cache pendant la compression — réponse plus rapide
- Les sessions peu fréquentes ne paient plus l’expiration du cache à chaque reprise
Voir les PR #7818 , #8339 , #8419 , #8048

Écosystème Channel : GitLab arrive, cartes interactives DingTalk, gestion du pairing
La semaine dernière, le GitHub Channel arrivait. Cette semaine, l’écosystème Channel continue de s’élargir.
GitLab est là. Les todos GitLab et les commentaires @bot deviennent des messages entrants ; vous configurez quelles actions sont confiées à l’IA, et ce qui a déjà été traité ne l’est pas deux fois. Voir le PR #7862
DingTalk a ses cartes interactives. Le Channel DingTalk supporte les cartes interactives : l’état de l’IA se met à jour sur la carte en temps réel, et quand votre saisie est nécessaire, une question structurée apparaît — plus besoin de lire un long bloc de texte. Les autres plateformes ne changent pas. Voir le PR #6930

La liste de ceux qui peuvent utiliser l’IA se consulte et se révoque. En connectant une plateforme de chat, on peut activer le mode pairing pour la sécurité : un inconnu qui @ le bot pour la première fois doit d’abord être approuvé par vous. Mais avant, une fois approuvé, aucune liste visible, aucune révocation possible — une mauvaise approbation, ou quelqu’un qui quitte l’équipe, et il continuait d’utiliser votre IA. Désormais, l’éditeur de Channel montre qui est approuvé, permet de révoquer quelqu’un individuellement, et chaque workspace garde sa propre liste. Voir les PR #8045 , #8081
Les Channels GitHub/GitLab se configurent sans mettre les mains dans les fichiers. Avant, connecter GitHub/GitLab à l’IA voulait dire ouvrir settings.json et écrire à la main : identifiants, périmètres, personnes autorisées — un symbole de travers et rien ne marchait. Désormais, le Web Shell a une interface de gestion dédiée : tout se remplit dans des formulaires et se choisit à l’écran, enregistrer suffit, sans toucher au fichier de configuration. Voir le PR #8310
Le GitHub Channel peaufiné. Si gh est déjà connecté en local, le GitHub Channel réutilise directement cette session — pas besoin de créer un token séparé. Les réponses sont aussi plus disciplinées : au plus un commentaire final par événement ; pendant le traitement de l’IA, le commentaire d’origine porte un emoji 👀 temporaire, retiré automatiquement à la fin. Une tâche interrompue peut reprendre après redémarrage. Voir les PR #8461 , #8033 , #8061 , #8306

📊 Autres nouvelles fonctionnalités
Auto Recall : recherche automatique de contexte. La semaine dernière, la recherche de corpus externe était « l’IA consulte à la demande ». Cette semaine, Auto Recall est « une recherche automatique à chaque question » : les résultats sont joints à l’IA comme référence, et les informations sensibles courantes sont filtrées automatiquement. Mutuellement exclusif avec le mode à la demande, déployé par l’administrateur. Voir le PR #7877
Seuil de préchargement des outils. Nouveau réglage tools.toolSearch.threshold : quand il y a peu d’outils, tous sont déclarés dès le démarrage de la session — plus de recherche à la demande en cours de route, réponse plus rapide ; 0 pour revenir au comportement précédent. Voir le PR #7922
/autofix supporte le workspace local. Avant, /autofix ne tournait que dans GitHub Actions. Désormais, lancé directement, il examine et corrige les changements locaux : détecte les problèmes, applique des corrections minimales, lance les vérifications, puis revérifie, jusqu’à ce que tout soit propre ou qu’il soit confirmé que ce n’est pas réparable. Avant de lancer, il précise que les vérifications tournent dans un sandbox et vous demande de confirmer que vous faites confiance au repo. Voir le PR #8121
Vue structurée des résultats de revue dans le Web Shell. Après un /review, les résultats ont une vue dédiée dans le Web Shell : nombre de problèmes, où, comment corriger, avec quelles preuves — tout est là, filtrable par sévérité, avec le rapport complet accessible. Voir le PR #8402
Le reasoning effort de Qwen 3.8 prend effet. Avec les modèles de la famille qwen3.8-max, les cinq niveaux de /effort contrôlent réellement la profondeur de réflexion du modèle — plus un seul niveau actif. Voir le PR #8472
Goal v3 arrive dans le CLI. La commande /goal et le mode interactif utilisent désormais le même runtime : cartes d’état et commandes de cycle de vie sont alignées des deux côtés, l’expérience est cohérente. Voir les PR #8005 , #8324
Masquage des niveaux de skills. Nouveau réglage skills.disabledLevels : masque des niveaux entiers de skills selon leur origine — pratique quand il y a trop de skills et que ça devient le chaos. Voir le PR #8057
Cycle de vie des skills générés automatiquement. Les skills générés automatiquement, par /learn notamment, ont désormais un suivi d’utilisation : inutilisés pendant 30 jours, marqués expirés ; à 90 jours, archivés automatiquement — plus d’accumulation sans fin. Voir le PR #7846
memory.agentMaxTurns. Un réglage unique pour la limite de tours de l’Agent de mémoire ; 0 pour illimité. Voir le PR #8171
/summary supporte un chemin personnalisé. /summary accepte désormais un paramètre de chemin pour enregistrer le résumé du projet où vous voulez ; le répertoire parent est créé automatiquement. Voir le PR #8116
Capacité et état du daemon. La limite de sessions par workspace passe de 20 à 32 — plusieurs sessions en parallèle sans toucher la limite ; /daemon/status montre l’usage mémoire et la marge restante ; la limite de sous-sessions concurrentes est aussi configurable. Voir les PR #8235 , #8245 , #8341
Extension Chrome en alpha. L’alpha de l’extension Chrome complète son parcours d’installation, son diagnostic d’exécution et sa validation automatisée dans un environnement Chrome réel. Voir le PR #6739
👏 Améliorations de l’expérience
Consulter l’état pendant le streaming. Pendant que le modèle répond encore, les commandes en lecture seule comme /status, /settings, /help s’exécutent immédiatement — pas besoin d’attendre la fin du tour ; dans le Web Shell, /stats, /about, /context sont aussi exécutables en cours de tour, alors qu’avant ces commandes étaient avalées en silence. Voir les PR #8130 , #8496
Les longues sorties d’outils ne sont plus tronquées. Les sorties de commandes et les longues réflexions étaient coupées d’office au-delà de 500 caractères ; désormais elles sont repliées par défaut, avec une vue complète dépliable, et le texte intégral est visible aussi dans les sessions exportées. Voir le PR #8251
Le tour reste ouvert quand un Agent en arrière-plan tourne. Avant, dès que l’IA principale était libre, le Web Shell marquait le tour comme terminé et le repliait — même si un sous-Agent en arrière-plan tournait encore et que des mises à jour arrivaient ensuite, l’état sautait sans arrêt. Désormais, tant qu’un sous-Agent est actif, le tour reste ouvert. Voir le PR #8413
Les blocs Thinking ne tremblent plus, le transcript passe en ligne. La hauteur des blocs de réflexion en streaming est stable — plus de sauts ; le calque plein écran de transcription est remplacé par un toggle en ligne sur Ctrl+O. Voir le PR #8077
Raccourcis clavier en plus. Sur macOS, Option+V permet aussi de coller une image du presse-papiers ; le changement de catégorie de la complétion @ utilise Ctrl+Tab / Ctrl+Shift+Tab, pour éviter les conflits avec les raccourcis natifs du terminal. Voir les PR #8120 , #8074
Recherche plus rapide et plus fiable. La recherche de fichiers est plus rapide ; quand elle échoue, elle retente automatiquement — plus de « aucun résultat » alors que la recherche n’était pas terminée. Voir les PR #8253 , #7888
Détails des tableaux et des boîtes de dialogue. Fermer la boîte de dialogue d’une cellule de tableau Markdown amélioré ne fait plus sauter la page ; un coup de molette à l’ouverture d’une boîte de dialogue ne fait plus défiler l’arrière-plan par accident. Voir les PR #8407 , #8089
Ctrl+Shift+C rend la copie. Avant, Ctrl+Shift+C déclenchait la sortie ou l’effacement de l’écran ; le raccourci retrouve désormais son rôle de copie du terminal. Voir le PR #8011
Menu des détails de session. Dans les mises en page étroites, le menu des détails de session ne déborde plus, et une action « copier l’ID complet de la session » accessible au clavier a été ajoutée. Voir le PR #8127
🔧 Corrections importantes
| Correction | Impact pour vous | PR |
|---|---|---|
| Conflit de paramètres DashScope Qwen 3.8 | qwen3.8-max ne renvoie plus d’erreur pour conflit de paramètres ; le mode « sans réflexion » fonctionne vraiment | #8488 , #8536 |
| Problèmes de requêtes Claude 4.6+/5.x | Les erreurs de requête et le contenu de réflexion invisible des nouveaux modèles Claude sont corrigés | #8040 , #8164 , #8163 , #8165 , #8166 |
| Retry infini du mode Goal | Quand le mode Goal ne trouve plus de preuves, il s’arrête et vous attend — plus de relance automatique infinie | #8430 |
| Sécurité de rejeu à la déconnexion MCP | Après une coupure MCP, les opérations qui ne doivent pas être rejouées ne sont pas relancées automatiquement — pas d’effets secondaires | #8387 |
| Collage de configuration sensible sur Windows | Coller une API key ou une configuration sensible dans le terminal Windows n’est plus ignoré | #8342 |
| Détection des fins de ligne | Les fichiers au format de fin de ligne Windows ne sont plus modifiés en silence | #8383 |
| Reprise des longues réponses après coupure | Une longue réponse interrompue par le réseau peut reprendre — pas besoin de tout recommencer | #7896 |
| Dépassement de limite des caractères chinois/japonais/coréen | Les sorties en chinois, japonais et coréen ne dépassent plus la limite par accident, ce qui provoquait une erreur API | #7963 |
| Sélection de texte dans Firefox | La sélection dans les messages du Web Shell retrouve son surlignage visible dans Firefox | #8417 |
| Les liens de la conversation ouvrent le navigateur | Avant, cliquer sur un lien dans la conversation ne faisait rien ; un clic suffit désormais pour ouvrir le navigateur | #8198 |
| Erreurs de crash visibles | Avant, certains crashs n’affichaient aucun message ; désormais l’erreur apparaît dans le terminal, pratique pour signaler le problème | #8088 |
| send_message compatible Anthropic | L’outil d’envoi de messages entre Agents fonctionne à nouveau avec les modèles Anthropic | #7989 |
| Fichier de verrouillage du daemon défectueux | Le daemon ne plante plus quand le fichier de verrouillage est défectueux | #8442 |
👥 Contributeurs
| Contributeur | Contributions | PR de référence |
|---|---|---|
| @wenshao | Renforcement complet de /review et /verify, vue de revue Web Shell, contrôle des tours d’autofix, relèvement de la limite de sessions, réutilisation de la session GitHub Channel, correction des paramètres Qwen 3.8 | #8215 , #8402 , #8461 , #8488 |
| @yiliang114 | Packaging et publication de l’app desktop, migration depuis l’ancienne version, vue et interrupteur Session Workflow, support local de /autofix, resserrement des réponses GitHub Channel, extension Chrome alpha | #8132 , #8392 , #7580 , #8121 , #8033 |
| @qqqys | Goal v3 complet (avec correction du retry infini), gestion des approbations de pairing Channel, remontée des approbations de sous-tâches et exécution en arrière-plan | #8005 , #8045 , #8240 , #8430 |
| @doudouOUC | Recherche automatique Auto Recall, lecture paginée des gros fichiers, sécurité de rejeu à la déconnexion MCP, correction de la détection des fins de ligne, optimisation du cache | #7877 , #8002 , #8387 , #8464 |
| @ytahdn | Multiples améliorations du Web Shell (panneau de tâches, thèmes, contrôles de tableau, pagination de l’historique, téléchargement des artefacts, saisie mobile) | #7929 , #8098 , #8234 , #8230 |
| @qwen-code-dev-bot | Restauration du clic sur les liens et du menu contextuel, collage d’image Option+V, bascule de complétion Ctrl+Tab, renforcement des scripts de publication | #8198 , #8120 , #8074 , #8037 |
| @DragonnZhang | Affichage d’images dans le terminal display_image, réutilisation du cache de compression, exécution des commandes en lecture seule pendant le streaming, effort Qwen 3.8, seuil de préchargement des outils | #8217 , #8339 , #8130 , #8472 |
| @chiga0 | Une série de corrections de l’expérience terminal (curseur, raccourcis, changement de fenêtre, hauteur des blocs Thinking), erreurs de crash visibles | #8077 , #8088 , #8032 , #8125 |
| @chinesepowered | Distinction d’affichage des listes de répertoires, taille des blocs de code Feishu, affichage des unités mémoire et autres détails | #7868 , #7850 , #7871 , #7864 |
| @netbrah | Rétention du cache Anthropic à 1 heure, corrections de requêtes Claude, compatibilité send_message | #8048 , #8040 , #8164 , #7989 |
| @destire-mio | Liste blanche d’outils et modèles de permissions pour sous-Agents, vue repliée des longues sorties | #8066 , #8148 , #7714 , #8251 |
| @OrbitZore | Adaptateur GitLab Channel, gestion par interface des Channels GitHub/GitLab | #7862 , #8119 , #8310 |
| @LaZzyMan | Correction du flux de publication signée macOS | #8574 , #8564 |
| @xurik | Renforcement des hooks (interrupteur réseau privé, événement de suppression de session, champ d’origine de session) | #7968 , #8059 , #8155 |
| @zhangxy-zju | Graphiques en streaming du Web Shell, masquage des niveaux de skills | #7916 , #8057 |
| @water-in-stone | Retry des échecs de recherche et distinction des résultats | #7888 , #8304 |
| @ZijianZhang989 | Skill repo-hygiene et processus de vérification hebdomadaire, base runtime d’Agent View | #7908 , #7799 |
| @carffuca | Tour maintenu ouvert quand un Agent en arrière-plan tourne, correction du défilement des boîtes de dialogue de tableau | #8413 , #8407 |
| @Aleks-0 | Modèle dédié à la compression /model —compaction | #7818 |
| @BenGuanRan | Cartes interactives DingTalk | #6930 |
| @harjothkhara | Correction de l’isolation des instructions des sous-Agents | #8344 |
| @samuelhsin | Slots d’actions personnalisables dans l’en-tête de l’écran divisé | #7808 |
| @dreamWB | Correction du débordement du menu des détails de session, copie de l’ID de session | #8127 |
| @dexhunter | Accélération de la recherche de fichiers | #8253 |
| @kagura-agent | Correction du défilement accidentel des boîtes de dialogue | #8089 |
| @han-dreamer | Erreurs transitoires du polling des tâches en arrière-plan rendues silencieuses | #7923 |
| @ComplexSimply | Retry du streaming pendant la phase de réflexion pure | #7938 |
| @zjunothing | Guidage des erreurs de configuration de la liste blanche GitHub Channel | #8055 |
| @zjgzx1988 | Marquage de l’origine du contexte des hooks | #7956 |
| @C0d3N1nja97342 | Surlignage de sélection de texte Firefox | #8417 |
| @Eric-GoodBoy-Tech | Affichage de l’expéditeur des messages de groupe QQ Bot | #8233 |
| @DennisYu07 | Pipeline CI indépendante pour SWE-bench | #7656 |
| @PratikWayase | Tests de régression de la pagination de l’historique de session | #7907 |
| 🆕 @tomatotomata | 🎉 Première contribution : réglage de la limite de tours de l’Agent de mémoire | #8171 |
| 🆕 @LHMQ878 | 🎉 Première contribution : reprise des longues réponses après coupure | #7896 |
| 🆕 @xianjianlf2 | 🎉 Première contribution : filtrage des notifications GitHub Channel | #8031 |
| 🆕 @zambalee | 🎉 Première contribution : correction du dépassement de limite des sorties chinois/japonais/coréen | #7963 |
| 🆕 @babyblueviper1 | 🎉 Première contribution : exemple de service de décision externe pour le hook PreToolUse | #8202 |
| 🆕 @Wchoi189 | 🎉 Première contribution : correction du démarrage depuis un répertoire en lien symbolique | #8309 |
Mise à jour : exécutez npm i @qwen-code/qwen-code@latest -g pour passer à la dernière version.
Si vous avez des questions ou des suggestions, n’hésitez pas à nous les faire part sur GitHub Issues !