Repository navigation
Releases: guillaume-gagnaire/escouade
Release list
Escouade v1.7.6
Ajouts
- Statistiques d'usage anonymes, seulement si tu les acceptes : au premier lancement (et au premier après cette mise à jour), Escouade demande « Aider à améliorer Escouade ? ». Avec ton accord, elle envoie quelles fonctionnalités servent (agents créés, messages, tickets, git, terminaux, éditeur, intégrations…), avec sa version et celle du système, sous un identifiant tiré au hasard ; jamais tes projets, ton code, tes conversations ni ton nom. Elles partent vers un serveur d'Escouade hébergé en France (Aptabase, open source). Réglages › À propos › « Statistiques d'usage anonymes » les arrête à tout moment : l'identifiant est alors effacé. Le détail est sur escouade.dev/privacy.
Escouade v1.7.5
Ajouts
- Sous Windows, Escouade fait tourner un Claude Code installé dans WSL (#3). Réglages › Claude Code accepte son chemin sous les formes
~/.local/bin/claude,/home/<utilisateur>/.local/bin/claudeou\\wsl.localhost\<distribution>\home\<utilisateur>\.local\bin\claude. Champ vide, celui de la distribution est trouvé seul quand Windows n'a pas declaude. Escouade le lance parwsl.exedans le dossier de l'agent, avec ses arguments, ses variables et ses fichiers traduits pour Linux. Il lit ses sessions, sa connexion et son quota dans le dossier personnel Linux, et rend les worktrees lisibles par le git de la distribution. Les outils MCP d'Escouade et le suivi en direct de la vue Claude Code demandent le réseau miroir de WSL. Une session ne passe pas d'un compte Windows à un compte WSL. - Sous le chemin de Claude Code, une ligne dit où est le
claudede ce chemin : « Trouvé : … », « Trouvé dans WSL (Ubuntu) : … », ou les formes de chemin acceptées quand il est introuvable. Elle prévient aussi quand le réseau de WSL est en NAT. - Réglages › Projets › Git : « Dossier des worktrees », pour ranger les worktrees des agents ailleurs que dans
.claude/worktreesdu projet : un dossier voisin du dépôt (../app-worktrees), un.worktreesà l'intérieur, un dossier sous ton dossier personnel (~/worktrees/app) ou un chemin complet. Les worktrees des tickets et le worktree temporaire d'une validation y vont aussi ; ceux déjà créés restent où ils sont. Un dossier partagé par plusieurs dépôts marche : un nom déjà pris passe au suivant, et un dossier hors du projet est surveillé pour les compteurs git. Sont refusés le dossier du projet, un dossier qui le contient (..), un dossier dans.gitet un dossier de fichiers suivis par git (src), dont les nouveaux fichiers sortiraient des commits. Un dossier dans le dépôt est tenu hors degit status, gardé par l'éditeur (ni création, ni renommage, ni suppression dedans) et laissé hors de « Rechercher dans les fichiers ». L'éditeur montre le chemin de chaque worktree depuis le projet (../app-worktrees/login). (#4) - Réglages › Projets › Git : « Préfixe des branches des agents » (
escouade/par défaut) et « Préfixe des branches des tickets » (ticket/par défaut), pour suivre la convention de nommage d'un dépôt : ce sont les noms qui partent sur le dépôt distant avec une PR. Vide, une branche prend le nom de l'agent ou la clé du ticket seuls. Un préfixe qui ne donnerait pas de nom de branche valide est refusé à la frappe. (#4)
Modifications
- Sous Windows, fermer un terminal (ou son projet, ou quitter Escouade) arrête aussi les programmes en ligne de commande qu'il a lancés à part, comme un serveur de développement démarré par
Start-Process, qui restaient avant en tâche de fond. Les programmes qui ont une fenêtre (navigateur, éditeur) restent ouverts, avec les processus qu'ils ont eux-mêmes lancés. La connexion à un compte Claude ne referme plus le navigateur qu'elle a ouvert.
Corrections
- Le chemin de Claude Code accepte
~(le dossier personnel), sous Windows, macOS et Linux. Sous Windows, il peut omettre.exeou.cmd. Avant,~/.local/bin/clauden'était jamais trouvé. - Enregistrer un autre chemin de Claude Code met à jour « Claude Code introuvable — aucun ticket ne démarre » du Kanban sans redémarrer l'app.
- Un agent restauré dont le dossier du worktree a été repris entre-temps par un autre worktree n'y travaille plus : le sien est recréé à côté (
-2), et sa conversation le dit. Un nouveau worktree ne prend plus jamais le dossier d'un agent archivé, même disparu pour l'instant. - Le worktree d'un agent d'un projet rangé dans un sous-dossier de son dépôt est désormais tenu hors de
git statusdu dépôt (la ligne d'exclusion visait.claude/worktreesà la racine du dépôt, pas celui du projet). - Un agent dont le premier message est une commande ou un skill (/impeccable…, /clear) est maintenant renommé : d'après les arguments du skill, sinon d'après le premier message ordinaire qui suit. Avant, il gardait son nom agent-N.
- Sous Linux, une image collée dans le champ du message (capture d'écran, « Copier l'image » d'un navigateur) y est jointe, comme sous Windows et macOS. Avant, le collage ne faisait rien : le moteur web de Linux (WebKitGTK) ne donne pas l'image à la page, Escouade la lit maintenant dans le presse-papiers du système.
- Le serveur MCP garde son port quand il s'arrête et repart aussitôt (un réglage changé, l'interrupteur « Les agents peuvent utiliser Escouade » d'un projet) au lieu d'en tirer un autre : il n'est plus re-déclaré dans chaque compte Claude à chaque fois, et l'attente du port ne fige plus la fenêtre.
- Une erreur de git (un
git statusqui échoue, un dépôt illisible) est dite comme telle dans l'aperçu et la proposition de commit, au lieu d'un « Plus rien à commiter ». Un agent n'est dit nommé qu'une fois sa branche renommée : un commit proposé entre-temps ne tombe plus sur un dépôt à moitié renommé. - Git ne reste plus bloqué sans fin, surtout sous macOS, où un processus lancé au même moment pouvait tenir les tubes de git ouverts : une lecture (statut, log, diff…) est arrêtée au bout de 2 minutes, un commit ou une fusion qui lance des hooks garde jusqu'à 30 minutes, et le message dit quelle commande a été interrompue et après combien de temps. Sous macOS et Linux, Claude et les lancements de test n'héritent plus des fichiers ouverts d'Escouade.
- Supprimer un agent attend que ses processus soient morts, et le git en cours d'Escouade, avant d'effacer son worktree, et dit ce qui bloque (un processus encore là, un dossier tenu) au lieu d'une erreur du système (« os error 32 »). Un agent supprimé ne peut plus être relancé dans son worktree.
- « Préparer le lancement » et la reprise automatique (« continue » à la fin de la limite d'usage) ne donnent plus leur nom à un agent : il est nommé d'après ce que tu lui demandes, pas d'après un texte d'Escouade. Deux agents nommés au même instant ne reçoivent plus le même nom.
Escouade v1.7.4
Modifications
- Réglages › Comptes Claude : Principal peut lui aussi être « Réservé aux projets » que tu coches, comme les autres comptes. Un projet que plus aucun compte actif ne sert (tous réservés à d'autres projets, ou désactivés) ne démarre plus rien : un nouvel agent y est refusé avec la marche à suivre, son Kanban affiche « Aucun compte Claude pour ce projet — aucun ticket ne démarre », le choix du compte dans le compositeur dit « Automatique (aucun compte) », et l'onglet Comptes Claude nomme ces projets sous la liste. Avant, un tel projet partait en silence sur Principal, même désactivé.
- Un projet ajouté avec « Créer un premier agent » alors qu'aucun compte ne le sert est ajouté quand même, sans cet agent, et une notification dit pourquoi (avant, l'ajout semblait échouer et un nouvel essai ajoutait le projet une seconde fois). Un projet fermé sort des « Réservé aux projets » de chaque compte.
- Le message de commit proposé pour un commit direct sur le dossier du projet est demandé à un compte de ce projet.
Escouade v1.7.3
Ajouts
-
Intégration Linear, à côté de Jira, Trello et GitHub Issues : Réglages › Intégrations › Linear › « Connecter… » avec une clé d'API personnelle, puis une équipe liée à chaque projet. « Importer des tickets » liste ses issues ouvertes (filtres « Mes issues » et par état, recherche par identifiant comme
ENG-42ou par titre, page suivante), avec leurs critères d'acceptation tirés de la description ; l'import automatique par étiquette marche aussi. Quand le ticket avance, l'issue change d'état (« In Progress », puis « In Review » par défaut) et reçoit les commentaires choisis. -
Escouade existe pour Linux (x86-64) : une
AppImage, que la mise à jour intégrée remplace comme sous Windows et macOS, et un.debpour Debian et Ubuntu, sur toute distribution d'une glibc 2.35 ou plus récente (Ubuntu 22.04, Debian 12, Fedora 36…). Les jetons des intégrations (Jira, Trello, GitHub) y restent dans le fichier des intégrations, faute de trousseau pris en charge. -
« Vue Claude Code » : un bouton dans l'en-tête d'un agent le fait tourner dans l'interface de Claude Code elle-même, dans un terminal, à la place de la conversation d'Escouade, et « Vue Escouade » l'y ramène. La session continue d'une vue à l'autre. Tout ce que propose l'interface de Claude Code y est : commandes
/, raccourcis, dialogues,/model, Maj+Tab. -
Escouade suit toujours un agent en vue Claude Code : la pastille et la notification quand il attend une autorisation ou une réponse, puis quand il termine ; sa conversation, sa recherche (
Ctrl+K), son bandeau « Plan », ses statistiques et son coût, estimé aux tarifs publics (l'interface ne donne pas le coût de chaque tour). -
Un message envoyé par le serveur MCP à un agent en vue Claude Code est tapé dans son interface ; une interruption depuis Escouade y devient Échap.
-
Réglages › Claude Code : « Ouvrir les nouveaux agents dans l'interface de Claude Code ». Les agents de ticket restent toujours dans la vue d'Escouade, que leur tableau pilote.
-
Réglages › Comptes Claude : un compte autre que Principal peut être « Réservé aux projets » que tu coches (ceux d'un client, par exemple). Les autres projets n'y partent plus jamais : ni en « Automatique », ni comme « Compte préféré », ni au choix du compte dans le compositeur, ni par « Reprendre sur… » ou la reprise automatique d'un agent de ticket. Le pilote auto d'un projet attend ses propres comptes quand ils sont tous au seuil. Sans projet coché, un compte sert à tous, comme avant ; Principal reste toujours celui de tous les projets.
Escouade v1.7.2
Modifications
- Nouveau logo : une tuile teal, le chevron
>de Claude Code et l'étincelle à la place du curseur. Il remplace les trois fenêtres empilées dans l'icône de l'app (barre des tâches, menu Démarrer, raccourcis, Dock, Finder, installeur), dans la barre de titre et dans la zone de notification, où la pastille ambre d'un agent qui attend se pose toujours dans son coin. - Le site de présentation change d'allure : la vraie fenêtre de l'app en grand dès le premier écran, une démonstration où tu réponds toi-même à la question d'un agent, les fonctionnalités en grille de captures, et une section « Feuille de route » qui annonce la 1.8 (Codex, Copilot CLI et OpenCode à côté de Claude Code). La vidéo et ses images montrent le nouveau logo.
Escouade v1.7.1
Modifications
- Toutes les infobulles de l'app ont désormais l'allure de celle du quota (fond sombre de l'app, bordure, ombre) au lieu de celle du système, blanche sous Windows. C'est le cas des ressources (mémoire et CPU, une ligne par agent), du coût estimé, de la branche, et des boutons de la barre de titre, de la barre latérale, du Kanban, de l'éditeur et des réglages.
- Elles s'affichent plus vite : après 400 ms de survol, puis tout de suite quand le pointeur passe d'un élément à son voisin. Elles se placent au-dessus de l'élément sans jamais sortir de la fenêtre.
- Elles s'affichent aussi au clavier : un bouton qui reçoit le focus par Tab ou une flèche montre la sienne.
- Échap, un clic ou un défilement les retirent. Avec le focus sur l'élément, Échap ne ferme rien d'autre : ni une fenêtre, ni le tour de l'agent.
- Un texte coupé par des points de suspension ne montre son texte entier en infobulle que s'il est vraiment coupé.
- Lecteurs d'écran : un bouton qui n'affiche qu'un symbole (⚙, ×, ⌕, +…) est désormais nommé par son infobulle (« Réglages (Ctrl+,) » plutôt que « ⚙ »).
Escouade v1.7.0
Ajouts
Escouade en anglais et en français
- Réglages › Application (nouvel onglet, en tête) : « Langue de l'interface » propose « Système (Français) » (par défaut), « English » et « Français ». Par défaut, Escouade parle la langue de ton système : le français s'il est en français, l'anglais sinon (pour une installation neuve : des réglages d'avant la 1.7 gardent l'interface, et les textes de Claude, en français jusqu'à ce que tu choisisses). Le changement s'applique dès « Enregistrer », sans redémarrer : la fenêtre, le menu de l'icône de la barre des tâches (« Afficher », « Quitter ») et son infobulle suivent, et sous macOS le menu de l'app aussi, avec les mots de macOS (ce que macOS y ajoute de lui-même suit la langue du système). L'installeur Windows parle lui aussi anglais ou français, selon le système.
- Tout est traduit : conversation, éditeur, Kanban, statistiques, vue d'ensemble, barre latérale et barre d'état, git et ses fenêtres, lancements, terminaux, réglages, mises à jour, confirmations et messages. Ce que l'app écrit elle-même aussi : erreurs, notices de la conversation, ce que fait l'agent (« Lit src/a.ts » / « Reading src/a.ts »), raison d'un ticket bloqué, ce que dit le Kanban quand aucun ticket ne démarre, issue d'une validation, notifications du système (« Autoriser Bash : npm test ? » / « Allow Bash: npm test? ») et étapes des statistiques. En anglais, la colonne « À tester » s'appelle « To review ».
- Les nombres, montants, pourcentages, durées, dates, heures et tailles s'écrivent à la façon de la langue (« 0,10 $ » / « $0.10 », « 42 % » / « 42% », « 4j 12h » / « 4d 12h »), les pluriels suivent sa règle (« 0 fichier » en français, où 0 et 1 sont au singulier ; « 0 files » en anglais, où seul 1 l'est) et les touches des raccourcis s'écrivent comme sur son clavier (« Ctrl+Maj+Entrée » / « Ctrl+Shift+Enter »).
- Réglages › Application › « Langue des textes rédigés par Claude » (« Comme l'interface » par défaut, « English », « Français ») : la langue de tout ce qu'Escouade dit aux agents et fait écrire à Claude, car beaucoup d'équipes commitent en anglais avec une interface en français. Elle porte sur le protocole d'un ticket et ses messages (boucles, relance du bilan, reprise, retour de test, tests en échec, merge et rebase de la branche cible), « Préparer le lancement », le message de commit d'un ticket et la description de sa pull request, le message proposé pour un commit direct, le nom donné à un agent, les propositions de « ✦ Remplir automatiquement » (noms des commandes compris), la consigne d'une copie d'agent, et les commentaires publiés dans Jira, Trello et GitHub (« Escouade : ESC-12 est prêt à tester. » / « Escouade: ESC-12 is ready to review. »).
- Le message de commit d'un ticket nomme sa langue : un ticket importé dans une autre langue ne la décide plus. Le message proposé pour un commit direct est écrit dans la langue choisie quand le réglage en nomme une ; avec « Comme l'interface », il imite toujours la langue des derniers commits du dépôt, comme avant.
- Un texte déjà écrit garde la langue dans laquelle il a été écrit : une notice de la conversation, la raison d'un ticket bloqué, l'issue d'une validation, les critères par défaut d'un ticket, le protocole donné à un agent quand il a été créé.
Le site et la vidéo en anglais
- Le site existe en deux langues : le français à la racine (
/escouade/, les liens existants restent bons) et l'anglais sous/escouade/en/. Chaque page a sa langue, son titre, sa description, ses balises de partage et ses lienshreflangvers l'autre version. - Un sélecteur « FR / EN » dans l'en-tête mène à l'autre version et garde ton choix. À ta première visite de la racine, un navigateur sans français est envoyé vers la version anglaise, sauf si tu as déjà choisi ou si l'adresse demande le français (
?lang=fr). Sans JavaScript, rien ne bouge. - La démonstration animée du haut de page parle la langue de la page. Une adresse inconnue affiche une page « Page introuvable » aux couleurs du site, dans la langue de l'adresse.
- La page anglaise montre ses propres captures d'écran et son affiche, avec l'app en anglais, aux mêmes instants que les françaises. Sa vidéo propose par défaut des sous-titres anglais, aux mêmes repères que les français : la voix reste française, et les sous-titres français restent disponibles.
Plusieurs comptes Claude
- Réglages › Comptes Claude (nouvel onglet, après « Claude Code ») : la liste de tes comptes, dans l'ordre où les nouveaux agents les essaient. Ton Claude Code habituel y devient le compte « Principal » (« Main » en anglais), créé au premier lancement de la 1.7 : il se lance exactement comme avant, sans
CLAUDE_CONFIG_DIR, et ta connexion n'est pas touchée (sous macOS non plus). Les agents d'avant sont dessus.- Chaque compte montre son nom (modifiable), son dossier, son exécutable (« Celui des réglages » par défaut, pour essayer une autre version de Claude Code), son état (« Connecté · ton@email », « Pas connecté », « Inactif »), un interrupteur « Actif » et des flèches pour l'ordre. Chaque changement est enregistré tout de suite.
- Un compte ne se supprime pas tant qu'un agent non archivé s'en sert (« Le compte sert encore à 2 agents. »), Principal jamais ; le dossier d'un compte supprimé reste sur le disque avec sa connexion et ses conversations, et il faut toujours au moins un compte actif.
- « Ajouter un compte… » crée un compte avec son propre dossier (
~/.escouade/claude/<nom>) et y reprend ce que tu choisis du dossier de Principal (settings.json,CLAUDE.md,skills,agents,commands,plugins,hooks,output-styles), lié (un changement vaut pour les deux comptes) ou copié. Sous Windows, les dossiers sont liés par une jonction et les fichiers copiés (un lien de fichier y demande des droits d'administrateur) ; sous macOS, les fichiers sont liés eux aussi. La connexion et.claude.jsonne sont jamais partagés, ni les conversations : chaque compte a les siens. - « Créer et se connecter » (ou « Se connecter… » / « Se reconnecter… » sur un compte) ouvre Claude Code pour ce compte dans un terminal de la fenêtre. Dès que la connexion est là, Escouade le dit (« Connecté au compte ton@email »), ferme le terminal et lit le quota du compte. Fermée avant, la fenêtre laisse le compte « Pas connecté ».
- Chaque agent retient son compte : il se lance avec le
claudeet le dossier de configuration de ce compte, y reprend sa session après un arrêt ou un redémarrage d'Escouade, et sa copie (« Dupliquer la conversation ») reste sur le même compte. Le nom proposé par Haiku et les messages de commit qu'il rédige passent par le compte de l'agent. - Le quota (fenêtre de 5 h et semaine) est suivi pour chaque compte, avec sa propre connexion, au plus une fois toutes les 5 minutes chacun. Un compte pas connecté le dit (« Pas connecté »), une connexion expirée aussi (« Connexion expirée : relance Claude Code pour ce compte. »).
- Un nouvel agent part sur le compte que tu demandes, sinon sur le « Compte préféré » de son projet, sinon sur le premier compte actif sous le seuil de « Pause au-delà du quota » (dans l'ordre de l'onglet) ; si tous l'ont passé, sur le premier compte actif. Les tickets du Kanban et « ✦ Remplir automatiquement » suivent les mêmes règles.
- Avec plusieurs comptes, une puce « Compte : Pro » à côté du modèle, dans le champ de saisie, choisit le compte d'un agent tant qu'il n'a rien reçu ; ensuite elle se lit sans se changer, la conversation étant rangée dans ce compte. Les réglages d'un projet ont un « Compte préféré » (« Automatique » par défaut).
- Quand le compte en cours passe le seuil, un toast le dit une fois : « Le compte Pro a atteint 95 % : les nouveaux agents partent sur Principal. »
- Le pilote auto ne se met en pause que quand plus aucun compte n'est utilisable pour le projet (en « Automatique », tous les comptes actifs ont passé le seuil ; avec un compte préféré, celui-là seul) et attend la plus proche remise à zéro. La bannière dit quels comptes ont passé le seuil (« Les comptes Principal et Pro ont passé le seuil. »). Un agent qui attend la remise à zéro de son compte, ou une limite d'usage sans reprise, ne retient plus que les tickets de ce compte.
- Avec plusieurs comptes, tout le groupe des quotas de la barre d'état est un bouton qui ouvre, au-dessus de la barre, le panneau « Quotas des comptes Claude » : chaque compte avec ses deux fenêtres (barre, pourcentage, remise à zéro) et ce qu'il a dépensé aujourd'hui, le compte en cours en tête et marqué « en cours », « au-delà du seuil de pause » pour un compte qui a passé « Pause au-delà du quota », un compte inactif, pas connecté ou à la connexion expirée grisé avec sa raison. « Aujourd'hui », dans la barre d'état, reste le total de tous les comptes.
- Statistiques : chaque tour et chaque prompt est enregistré avec le compte de l'agent à ce moment ; ceux d'avant la 1.7 comptent pour Principal. Avec plusieurs comptes, l'écran « Stats » propose « Tous les comptes » ou un compte, qui filtre la période, les chiffres du haut, le graphique, « Par projet », « Par modèle », « Par agent » et « Par ticket ». Une carte « Par compte » met les comptes côte à côte : tokens, coût, tours et agents sur la période.
- Quand un tour s'arrête sur la limite d'usage, la carte de fin de tour propose « Reprendre sur Pro » (un menu pour les autres comptes s'il y en a plusieurs) : l'agent repart sur le premier autre compte actif, connecté et sous « Pause au-delà du quota », avec sa conversation, et reçoit « continue » comme à la reprise automatique. Jamais deux process sur une même session : celui de l'agent est arrêté avant que la session ne soit copiée dans le dossier de l'autre compte.
- Si le tour de la reprise échoue sur le nouveau compte (connexion absente, erreur de l'API, Claude Code qui s'arrête avant de démarrer), la carte le dit (« La reprise sur Pro a échoué : … ») et propose « Revenir sur Principal » : la session...
Escouade v1.6.0
Ajouts
Éditeur : aller à une définition, et revenir
- Ctrl+clic (Cmd+clic sous macOS) ou F12 suit ce qui est sous la souris ou sous le curseur, souligné tant que la touche est enfoncée :
- un import relatif ou aliasé (
tsconfig.json/jsconfig.json,$lib) en JS, TS, Svelte et Vue, un@importou unurl()de feuille de style, unmod x;de Rust, un import Python, un lien relatif de Markdown ou de HTML, et dans n'importe quel fichier un chemin de l'arborescence, suivi ou non de:ligne:colonne; - un nom (variable, fonction, classe, type…), jusqu'à sa définition, sans serveur de langage : l'éditeur la cherche dans le fichier (JS/TS, Svelte, Vue, Rust, Python, Go), puis dans le fichier d'où le nom est importé, sinon dans les fichiers du même langage.
- un import relatif ou aliasé (
- Plusieurs définitions trouvées : une liste s'ouvre sous le mot (« chemin:ligne » et la ligne), à parcourir avec ↑ ↓ et Entrée. Aucune : « Aucune définition trouvée pour « X ». » ; un fichier absent : « Fichier introuvable : ».
- Alt+← et Alt+→ (⌃- et ⌃⇧- sous macOS, avec la touche Contrôle), ou les boutons « précédent » et « suivant » de la souris, te ramènent là où tu étais avant chaque saut, puis t'y renvoient. Ces touches ne valent que dans l'éditeur : dans un terminal ou le composer, elles restent au shell.
Éditeur : rechercher dans les fichiers, ouvrir un fichier par son nom
- La colonne de gauche a deux vues, « Fichiers » et « Rechercher dans les fichiers ». Ctrl+Maj+F (Cmd+Maj+F sous macOS) ouvre la recherche avec le texte sélectionné dans le code, s'il tient sur une ligne. Elle part dès que tu arrêtes de taper, dans les fichiers de la source affichée (le projet ou le worktree de l'agent), et repart quand tu changes de source. Trois options : « Respecter la casse », « Mot entier », « Expression régulière ».
- Les résultats sont groupés par fichier, chaque correspondance surlignée dans sa ligne. En bas : « N résultats dans M fichiers », « Résultats limités aux 2 000 premiers. » ou « Recherche arrêtée après 10 s : résultats partiels. ». Un clic ou Entrée ouvre le fichier à la ligne et à la colonne, et Alt+← te ramène où tu étais ; au clavier, ↓ depuis le champ, ↑ ↓ entre les résultats, → et ← pour déplier ou replier un fichier. La recherche est gardée quand tu fermes l'éditeur.
- Maj+F12 cherche le nom sous le curseur dans tous les fichiers de la source, en mot entier et en respectant la casse.
- Ctrl+P (Cmd+P sous macOS) ouvre « Ouvrir un fichier » : quelques lettres du nom ou du chemin, dans l'ordre, suffisent ;
nom:42ouvre le fichier à la ligne 42. Champ vide, tes derniers fichiers ouverts passent devant. La liste porte sur la source de l'éditeur s'il est ouvert, sinon sur le worktree de l'agent sélectionné, sinon sur le projet ; Alt+← revient à l'endroit que tu viens de quitter.
Éditeur : voir les changements, comparer avec le disque
- « Voir les changements », à droite de « N lignes modifiées vs main », montre dans le texte les lignes supprimées au-dessus de chaque bloc modifié, et tu peux continuer à écrire ; le bouton reste enfoncé tant que les changements sont affichés, et le même bouton les masque. « Annuler ce bloc » remet le bloc de la référence, sans enregistrer (Ctrl+Z le reprend). Pas de bouton pour un nouveau fichier. Même dans un gros fichier, chaque changement d'un lockfile a son bloc, et taper dans un long bloc réécrit reste instantané.
- Quand un fichier que tu modifies change sur le disque, « Comparer » montre bloc par bloc ce que le disque a de différent, sans toucher à ton texte (« Comparaison avec la version du disque. »). « Prendre ce bloc » copie un bloc du disque, puis « Garder ma version » enregistre le résultat ; « Recharger » prend la version du disque.
- Si l'agent écrit encore le fichier pendant la comparaison, le bandeau et un message te le disent (« Le fichier a encore changé sur le disque : la comparaison montre sa nouvelle version. »), aussi quand tu reviens sur son onglet, et « Garder ma version » attend une seconde : tu n'écrases jamais une version que tu n'as pas vue. Si le fichier est revenu entre-temps à la version que tu avais ouverte : « Rien n'a été enregistré : le fichier est revenu à la version que tu avais ouverte. ».
Éditeur : arborescence, onglets et colonne
- Clic droit sur un fichier ou un dossier › « Renommer… » (ou F2 sur la ligne) : le nom se modifie sur place, extension non sélectionnée ;
dossier/nom.tsle déplace dans un sous-dossier créé au besoin (refusé par le disque, il ne laisse pas de dossier vide derrière lui), et changer seulement la casse est permis pour un fichier ou un dossier que git ne suit pas (pour un fichier suivi, passe pargit mvdans un terminal : « git suit « App.ts » sous ce nom : pour n'en changer que la casse, passe par git mv dans un terminal. »). Les onglets du fichier, ou des fichiers du dossier, le suivent sans perdre tes modifications non enregistrées ni ton historique d'annulation ; Alt+← et Ctrl+P suivent aussi. Renommer un gros dossier ne retient pas le reste de l'app. Renommer un.envcopié en un nom que git n'ignore pas te prévient : il peut alors être commité. - « Supprimer » (ou Suppr sur la ligne, ⌘⌫ sous macOS) envoie le fichier ou le dossier à la corbeille du système, après confirmation (« Supprimer « nom » ? », « Le dossier et ses N fichiers partent dans la corbeille. »). Un fichier concerné qui a des modifications non enregistrées te demande d'abord « Enregistrer » ou « Ne pas enregistrer », et un fichier dans lequel tu tapes pendant la suppression garde son onglet et ton texte. Le dossier d'un autre projet du même dépôt, un dossier qui le contient et les worktrees des agents ne se renomment ni ne se suppriment.
- « Nouveau dossier… » au clic droit, et « Nouveau dossier » en tête de l'arborescence : le dossier créé s'affiche, même vide, jusqu'à ce que tu y crées un fichier.
- « Ouvrir un terminal ici » au clic droit ouvre un terminal dans ce dossier (celui du fichier, ou la racine depuis l'espace libre), dans la source affichée, nommé d'après le dossier.
- L'arborescence montre en grisé, avec l'infobulle « Ignoré par git », les fichiers ignorés qui correspondent aux « Fichiers copiés dans les worktrees » du projet (
.env*par défaut), à la racine du projet (ou de son sous-dossier dans le dépôt) comme dans les worktrees : tu peux les ouvrir, les modifier et les retrouver avec Ctrl+P. Aucun autre fichier ignoré n'apparaît (pas denode_modules), et ceux-là restent hors des commits. - La colonne Fichiers / Recherche se redimensionne en glissant la poignée entre elle et le code (de 160 px à la moitié de l'éditeur), ou au clavier : ← et → par 16 px, Début et Fin jusqu'aux bornes. Un double-clic sur la poignée revient à 240 px. La largeur vaut pour tous les projets.
- Quand deux onglets ouverts ont le même nom (
index.ts), chacun montre en gris le plus court dossier qui les distingue (« index.ts · editor », « index.ts · board ») ; l'infobulle de l'onglet donne toujours le chemin complet.
Conversations
- Tu réponds au clavier : Ctrl+Entrée (⌘Entrée sous macOS) autorise, Ctrl+Maj+Entrée (⇧⌘Entrée) autorise toujours quand Claude propose une règle ; Alt+1 … Alt+9 choisit l'option d'une question (coche ou décoche pour un choix multiple), et Ctrl+Entrée valide quand la réponse est complète. Les boutons affichent leur raccourci. Ces touches marchent dans la conversation et son champ de saisie, pas dans un terminal ni dans l'éditeur, et jamais avec AltGr ; avec plusieurs demandes en attente, elles répondent à la plus ancienne. Écrire un texte puis Entrée refuse toujours avec ce message, et Ctrl+J mène toujours au champ de saisie de l'agent qui attend. Une demande qui vient d'arriver, ou qui prend la place de celle que tu viens de régler, ignore ces touches une demi-seconde, Entrée dans le champ de saisie comprise : un message tapé à ce moment-là ne l'autorise ni ne la refuse sans que tu l'aies lue, et il reste dans le champ. Une demande que Claude Code refuserait par défaut ne s'autorise qu'avec le bouton « Autoriser ».
- « Rechercher dans les conversations » (Ctrl+K, Cmd+K sous macOS) cherche dans ce que toi et tes agents avez écrit, les commandes lancées, les fichiers lus ou modifiés et ce que les outils ont répondu, sans tenir compte de la casse ni des accents (« evenement » trouve « événement »). « Ce projet » ou « Tous les projets », avec ou sans les « Agents archivés » (inclus par défaut). Les résultats sont groupés par agent, avec son projet, la correspondance surlignée et la date ; 200 au plus. Dans un terminal sous Windows, Ctrl+K reste au shell.
- Ouvrir un résultat affiche l'agent et fait défiler sa conversation jusqu'au message, surligné 2 s, même s'il est plus ancien que ceux affichés ; un agent archivé s'ouvre en lecture.
- Le texte que tu as commencé à écrire pour un agent est gardé : tu le retrouves après un redémarrage, une mise à jour ou un rechargement de la fenêtre. Il est vidé à l'envoi et supprimé avec l'agent ; les fichiers joints ne sont pas gardés.
- Quand tu reviens sur un agent, la conversation est remise là où tu l'avais laissée, messages plus anciens affichés compris ; si tu étais en bas, elle reste en bas et suit les nouveaux messages.
Agents
- « Vue d'ensemble » : le bouton à gauche des onglets de projets, ou Ctrl+Maj+A (Cmd+Maj+A sous macOS), même depuis un terminal, remplace la fenêtre par la liste de tous tes agents, groupés par projet. En tête, « Attend ta réponse » rassemble ceux qui ont une question ou une autorisation en attente, dans tous les projets, le plus ancien d'abord.
- Chaque ligne montre le statut, le ticket (« ▸ DEM-1 · boucle 2/5 »), ce que fait l'agent (« Lit src/db.ts »), son modèle, le coût de sa session, son contexte utilisé (%) et depuis quand.
- Une autorisation en attente montre l'outil et sa commande, sur 4 lignes au plus, avec la description et la raison de la demande, et « Autoriser » et « Refuser » sur place. Ce que la vue ne peut pa...
Escouade v1.5.4
Modifications
- macOS : l'app est signée avec un certificat Apple Developer ID et notarisée par Apple. Au premier lancement, macOS ne la bloque plus : plus besoin de l'autoriser dans Réglages Système › Confidentialité et sécurité. Après cette mise à jour, macOS peut redemander une fois les autorisations déjà accordées à Escouade.
Escouade v1.5.3
Corrections
- macOS : les commandes de lancement lancées avec zsh lisent
~/.zshrc, comme un terminal, et prennent donc en compte les gestionnaires de versions qui s'y initialisent (rbenv, rvm, asdf, mise, nvm…). Un serveur Rails ne démarre plus avec le Ruby du système, sans bundler. Il en va de même pour les tests et pour la préparation et le démontage des worktrees.