Aller au contenu
DiffwrightBêta

nouveautés

Version 0.16.0

  • 28 nouveautés
  • 22 améliorations
  • 19 corrections

Nouveautés28

  • Connexion à GitHub ou GitLab depuis l’assistant : l’étape Connexion propose Azure DevOps, GitHub et GitLab sous forme de cartes pilotables aux flèches et à ↵, avec l’aide de création de token propre à chaque plateforme et un récapitulatif adapté ; GitHub et GitLab restent en bêta.

  • Panneaux repliés plus lisibles : les nombres des bandeaux repliés (Fichiers, Review) s'écrivent à la verticale, en vert, et ne débordent plus ; le bandeau Review affiche « Review », puis « 20/389 fichiers revus », « 15 en attente » et « 7 fils ouverts » en clair, sans pastille ni jauge.

  • Aide des raccourcis (⌘/) filtrable et contextuelle : un champ « Filtrer les raccourcis » (focalisé à l'ouverture, insensible à la casse et aux accents, cherche dans le libellé et les touches) ; Échap vide le filtre puis ferme. Le groupe de l'espace courant passe en tête (Pull requests, Code, Accueil). Le focus reste dans le dialogue et revient au déclencheur à la fermeture. Dans l'îlot, la ligne de l'espace où l'on se trouve est grisée (« Vous y êtes ») et n'est plus présélectionnée : ↵ ouvre la première ligne utile.

  • Plus de doublon du brouillon de review : le bandeau « N commentaires en attente dans votre review » n'apparaît que lorsque le panneau de review est replié ; panneau ouvert, un seul « Terminer ma review… » reste visible et le diff regagne la hauteur du bandeau.

  • Mises en page étroites corrigées : dans Infos, la branche cible reste lisible en entier (c'est la branche source qui est raccourcie) ; dans Équipe, le bandeau de chiffres passe de 6 à 3 puis 2 colonnes sans case vide ; dans la vue Flux, les fichiers qui n'ont pas pu être chargés sont listés dans un encadré, chacun ouvrant le fichier en vue Fichier.

  • Colonne Fichiers étroite : le nom du fichier n'est plus tronqué par les signaux : sous ~330 px de colonne, la pastille IA, le compteur de fils, le risque et la barre +/− se regroupent en un seul compteur de 22 px (détail au survol et dans le nom accessible), pour que le nom garde plus de 60 % de la rangée à 270 px. Rendu inchangé à largeur confortable.

  • Barre de titre : la barre de recherche se range de nouveau à droite quand une PR est ouverte ou dans le Code, pour laisser la place au titre (une version intermédiaire l'avait centrée partout par erreur). Dans une PR, la puce de branche rétrécit avant le titre et disparaît sous 1100 px (la branche reste dans Infos). La pastille de relecteurs se lit « 1 relecteur sur 2 a approuvé » / « 2 relecteurs sur 3 ont approuvé », et la fraîcheur (« à l'instant ») porte une infobulle et un nom accessible.

  • Risque jamais « faible » sur une analyse partielle : quand Diffwright n’a mesuré qu’une partie des fichiers, la carte Risque affiche « Risque : au moins moyen/élevé » ou « Risque incomplet » au lieu de « Risque faible », comme l’anneau de l’en-tête.

  • Changer de PR en pleine publication ne mélange plus les PR : un commentaire publié juste avant de passer à une autre PR n'apparaît plus dans celle-ci (il reste bien publié et réapparaît dans sa PR), et les coches « revu » affichées sont toujours celles de la PR ouverte.

  • Quitter l’app arrête l’IA en cours : fermer Diffwright pendant une review ou une conversation avec claude ou codex arrête aussi ce programme, qui ne reste plus actif en arrière-plan à consommer votre quota ; la fermeture reste instantanée quand rien ne tourne.

  • Ollama : plus de prompt coupé en silence : une review (ou toute autre demande) envoyée à Ollama réserve désormais une fenêtre de contexte adaptée à sa taille, dans la limite de ce que supporte le modèle ; si le contenu ne peut pas tenir, Diffwright n'envoie rien et vous l'explique clairement au lieu de produire une analyse faite sur un texte tronqué.

  • Saisie de commentaire fiable : « @alice » tapé vite puis Entrée n'insère plus un autre utilisateur (Entrée/Tab ignorées tant que la recherche n'est pas à jour) ; changer d'onglet ou de PR juste après avoir tapé ne perd plus le brouillon (sauvegarde vidée au démontage). Un brouillon reste local.

  • Libellés plus justes : la liste de PR vide nomme d'abord l'onglet actif et ne cite le filtre « favoris » que s'il masque vraiment des dépôts ; un signal « bloquée par la CI » (comme le silence, la PR ancienne et le conflit) n'affiche plus sa durée deux fois ; « revue » devient « review » partout ; retirer un work item lié se fait par un bouton « × » et « Retirer le lien », sans évoquer une suppression.

  • Chat : « Arrêter » marche dès l'envoi : l'annulation est enregistrée avant toute attente, y compris la détection du moteur (Ollama / CLI) quand le réglage IA est implicite ; arrêter pendant cette détection interrompt la question sans lancer de processus, et aucune entrée d'annulation ne reste après la fin.

  • Coche « revu » qui ne saute plus : un fichier que vous venez de cocher (ou décocher) ne se décoche/recoche plus tout seul à cause d'une lecture du portail partie juste avant votre clic (Azure DevOps comme GitHub) ; l'écriture vers le portail reste déclenchée par votre seul clic, sans nouvel essai.

  • Accueil : les mêmes nombres partout : un même libellé n'affiche plus deux valeurs. Sous « Ma file », les puces « à relire » et « réponses attendues » reprennent exactement les nombres du sous-titre, le titre est la somme des pastilles du sous-titre, le groupe « À relire » compte aussi la PR de « Commencer par » et le compteur de la boîte de réception ne compte plus les PR « Autres » ; sous « Tout le projet », les puces comptent tout le projet.

  • Réglages illisibles, enfin expliqués : si le fichier de réglages est corrompu, Diffwright le met de côté sans rien supprimer, repart des réglages par défaut et vous le dit dans un message discret, avec l'emplacement de la sauvegarde et un bouton « Restaurer la sauvegarde ». Une copie de sauvegarde du dernier état valide est désormais gardée à chaque enregistrement.

  • Pré-analyse des PR à relire : pendant que vous travaillez, Diffwright lit en arrière-plan les fichiers des PR qui vous attendent pour que chacune s'ouvre sans attente, le cache sur disque se relit bien plus vite, et les barres +/− d'une PR déjà vue s'affichent aussitôt ; une petite jauge dans la liste indique où en est chaque PR, rien n'est écrit sur la plateforme, et Réglages permet de la couper ou de limiter l'espace disque utilisé.

  • Recherche dans les commentaires, sans ouvrir la PR : la recherche ⌘K trouve le texte de tous les commentaires et réponses des Pull Requests de votre index (actives, ou fermées depuis moins de 90 jours), même celles que vous n'avez jamais ouvertes, dans un groupe « Commentaires » dès trois lettres ; « de : moi » ne garde que les vôtres.

  • Impact sans bouton : l'onglet Impact n'a plus de grande carte « Analyser l'impact ». Diffwright repère tout seul, à partir des fichiers déjà lus sur ce poste, les symboles supprimés ou dont la signature a changé, et cherche leurs usages sans rien télécharger dès qu'un index des symboles du dépôt existe (même ancien) ; le premier téléchargement de la branche reste un clic explicite, « Actualiser l'index » est dans le menu ⋯, et l'onglet dit clairement quand la vérification est partielle au lieu d'annoncer « rien à vérifier ».

  • « Nouvelle itération » et « modifié depuis votre review » : la pré-analyse signale une PR poussée depuis votre dernière relecture, et la liste des fichiers marque ceux qui ont changé depuis votre review ; un clic sur la pastille de l'en-tête de la colonne Fichiers n'affiche que ceux-là.

  • Apprentissage local du risque : le score de risque s'ajuste d'après vos propres reviews, sur ce poste seulement ; Réglages › Pull requests permet de le couper, et « Supprimer l'apprentissage » efface ce qu'il a appris.

  • Ordre de review suggéré en étapes nommées : la liste des fichiers découpe la PR en étapes équilibrées, nommées par domaine et rôle (« Order · accès aux données »), avec une durée indicative en fourchette ; une même modification répétée sur de nombreux fichiers se lit une fois et se parcourt pour le reste, et les renommages purs ainsi que les motifs ressemblant à un secret sont signalés. Cet ordre, ses noms et ses durées restent en place sous vos yeux, et un ordre plus précis attend votre clic sur « Appliquer ».

  • Estimation de temps en fourchette : une relecture affiche une durée en fourchette (par exemple « ≈ 20 – 30 min ») d'après la taille et la nature des changements, avec le nombre de fichiers dont la taille est inconnue ; une PR trop grande pour une seule séance affiche « Trop grande pour une seule session · À découper » au lieu d'un chiffre. Le réglage « Adapter les estimations de temps à ma vitesse de lecture (local) », activé par défaut, affine ces fourchettes d'après le temps que vous passez réellement sur les fichiers, sur ce poste seulement.

  • Risque de la PR expliqué : l'avatar de l'auteur, dans l'en-tête de la PR, est entouré d'un anneau de risque dont le score sur 100 s'affiche en pastille (vert faible, ambre moyen, rouge élevé) ; un clic, Entrée ou ⌘K « Expliquer le risque de la PR » ouvre l'onglet Impact, où « Ce qui pèse » liste les signaux relevés (chemins sensibles, gros diff, complexité ajoutée, fichier central, test manquant, secrets potentiels…) avec les fichiers concernés, cliquables ; tant que l'analyse n'a pas couvert tous les fichiers, l'anneau reste en pointillés et dit « au moins moyen » ou « incomplet », et le niveau ne peut que monter ; quand le risque arrive après un calcul visible de la PR, l'anneau se remplit jusqu'à son score en 0,7 s, et un risque déjà connu s'affiche tel quel.

  • Recherche par le sens, 100 % locale : dans la recherche ⌘K, les Pull Requests, les commentaires et ce que la description ou la discussion d’une PR dit sont désormais classés ENSEMBLE par pertinence dans un seul groupe « Résultats » (plus de PR d’abord, de commentaires ensuite), même si vous n’employez pas les mêmes mots ou une autre langue ; chaque ligne porte sa « température » (trois barres : très pertinent, pertinent, peu sûr), ce qui l’a fait remonter (Titre, Commentaire, Description, Sens) et, quand c’est utile, l’extrait trouvé avec vos mots surlignés. Le bouton « Sens seul » réduit la liste à ce que le sens trouve ; les filtres (auteur, dépôt, statut, date) s’appliquent.

  • Pull Requests similaires pendant une review : l’onglet Infos d’une PR propose, en dernière carte, les PR les plus proches (« Très proche », « Proche ») pour retrouver un précédent ou un doublon ; un clic l’ouvre.

  • Réglages › Recherche sémantique : activer ou couper la fonction, voir l’avancement de l’indexation et la mettre en pause, choisir les dépôts et la fenêtre d’historique (de 6 mois à 5 ans), voir la place occupée sur le disque et purger un dépôt ou tout l’index.

Améliorations22

  • Pas de favori sans choix : avec un seul projet ou un seul dépôt, l’assistant ne propose plus de favori, l’étoile disparaît du sélecteur de projet et de la colonne Projets de l’espace Dépôts, et les libellés (projet, organisation, groupe) suivent la plateforme du compte.

  • Premier affichage instantané des listes : la liste des PR, la liste des fichiers et les colonnes de l'espace Code (branches, arborescence) n'ont plus la montée en cascade des lignes au premier affichage du lancement (animation de défilement, différente entre dossiers et fichiers) ; les listes déjà en mémoire s'affichent telles quelles.

  • Cartes arrondies sur tous les espaces : Pull requests, Code, Dépôts et Équipe affichent leurs colonnes comme des cartes arrondies séparées par de fines gouttières sur un fond plus sombre, façon Rider ou VS Code (l'Accueil reste une seule carte) ; les colonnes repliées deviennent de fines bandes qui restent visibles, pour qu'aucun trou n'apparaisse, et la carte qui a le focus se détache.

  • Barre d'activité plus étroite : la colonne de gauche passe de 62 à 44 px, icônes seules (comme la barre de Rider) ; le nom de l'espace reste dans l'infobulle et pour les lecteurs d'écran.

  • Recherche de PR sans faux résultats : un mot de quatre lettres ou plus n’est plus « retrouvé » dans un long titre dont les lettres sont simplement éparpillées (« écrire des tests » remontait des PR sans aucun rapport) ; les fautes de frappe restent tolérées.

  • La recherche lit la description des PR : un mot présent dans la description d’une Pull Request la fait remonter dans la recherche ⌘K, avec ou sans recherche par le sens (après la prochaine lecture de la PR par l’index ; le titre passe toujours devant).

  • Recherche simplifiée : plus de bouton « Sens seul », « Partout » ni « Tri » : la recherche ⌘K cherche dans tous les projets (Réglages › Synchronisation › « Chercher dans tous les projets » pour la limiter à vos favoris) et décide elle-même de l’ordre : pertinence quand vous tapez du texte, signaux (à relire, récentes) quand vous n’avez que des filtres.

  • Plus de rangée vide sous le champ de recherche : l’étoile d’enregistrement de recherche disparaît et la rangée ne s’affiche que s’il y a des filtres ; l’état de l’index devient une petite icône sans texte en bas de la recherche, visible seulement s’il est anormal (en cours, en échec, en retard), le détail dans l’infobulle.

  • Cliquer sur une personne ouvre l’espace Équipe : le résultat « personne » de la recherche ne pose plus de filtre, il ouvre l’activité de cette personne dans l’espace Équipe (portée : tous les dépôts du projet actif ; les autres projets ne sont pas encore couverts).

  • La recherche épouse son contenu : la fenêtre ⌘K se resserre quand il y a peu ou pas de résultats (plus de grand vide), sans bouger pendant la frappe, et son chargement montre des rangées fantômes à la forme des vrais résultats.

  • Avatars dans les commentaires de la recherche : chaque commentaire trouvé affiche la photo de son auteur (initiales quand elle n’est pas connue).

  • Recherche par le sens sans rien installer, même hors ligne : elle remplace l’ancienne version qui exigeait Ollama ; le modèle est livré avec Diffwright, l’indexation se fait en arrière-plan à faible priorité, tout reste sur votre ordinateur et rien n’est écrit sur la plateforme.

  • Recherche de commentaires pour GitHub et GitLab : les commentaires des PR GitHub et des MR GitLab que vous ouvrez, ou dont vous recevez la notification, rejoignent l'index local, et apparaissent dans le groupe « Commentaires » de l'îlot comme ceux d'Azure DevOps ; rien n'est écrit sur la plateforme.

  • Recherche qui se tient à jour toute seule : l'index se rafraîchit de lui-même quand vous ouvrez la recherche, et une fois de plus quand le groupe « Commentaires » ne trouve rien ; les boutons « Actualiser l'index » et « Réessayer » de la barre d'état disparaissent, et la barre dit seulement si l'index est à jour ou quand il est en retard.

  • Réglage des commentaires des PR non ouvertes : Réglages › Synchronisation › « Indexer les commentaires des PR non ouvertes », activé par défaut, permet de couper cette lecture de fond ; elle reste en lecture seule et n'écrit jamais rien sur la plateforme.

  • Finitions : « Expliquer le risque de la PR » apparaît dans la liste des raccourcis (réglable dans Réglages, sans touche par défaut), les messages « aucun résultat » et « index vide » de l’Îlot et de l’onglet Impact disent quoi faire ensuite, et l’espace Équipe parle de « Fils » au lieu de « Discussions ».

  • Onglet Impact réordonné : la carte Risque ouvre l'onglet, suivie de « Usages hors de la PR » (ex-« Consommateurs hors de la PR ») puis des collisions ; les chiffres superflus disparaissent, et le sous-titre compte les fichiers à relire. Quand « Ce qui pèse » arrive après coup, « Usages » ne se décale plus.

  • Une réindentation ne fait plus monter le risque : un fichier dont seule la mise en forme change (indentation, espaces en fin de ligne, lignes vides, JSON recomposé à l'identique) est classé faible et ne compte plus dans le score ; « Ce qui pèse » le signale à part avec le nombre de fichiers concernés, et la liste des fichiers indique combien de lignes sont réellement modifiées. Un fichier sensible reste en risque moyen.

  • Gros fichiers de tests et nouveaux fichiers : un fichier de tests volumineux, ou un fichier tout juste ajouté, ne fait plus passer seul la PR en risque élevé ; il reste au plus moyen, et « Ce qui pèse » le signale. Les fichiers sensibles ne sont jamais plafonnés.

  • Ligne de PR plus lisible : dans la liste des Pull requests, les titres restent lisibles et rien n'est coupé ; les signaux se résument en icônes compactes, et le détail de chaque PR s'ouvre dans le popover « Signaux de la PR ».

  • Disponibilité de l'IA vérifiée en arrière-plan : le contrôle du moteur IA (claude, Codex, Ollama) se fait désormais peu après le lancement, puis discrètement au retour dans l'app quand il a expiré ; ouvrir l'onglet IA d'une PR ne déclenche plus d'attente. Aucun appel aux moteurs par clé API.

  • Séparateurs prévisibles : un séparateur ne change que la colonne qu'il borde, les colonnes voisines s'ajustent autour ; glisser ne replie ni ne rouvre aucune colonne, et un double-clic sur un séparateur remet sa colonne à sa largeur par défaut.

Corrections19

  • Erreurs d’Ollama dans votre langue : serveur injoignable, modèle non installé, réponse illisible ou tronquée s’affichent désormais en anglais en interface anglaise, et en français avec le vouvoiement en interface française.

  • Le titre « Actions » est visible à l’ouverture de la recherche : la liste n’est plus déjà défilée, la première ligne ne masque plus le titre de son groupe.

  • L’index de recherche se tient à jour tout seul, sans dépendre de l’interface : la lecture de fond pouvait être arrêtée par erreur après un rechargement de l’interface ou un changement d’état de la fenêtre (l’indicateur affichait « Index d’il y a 57 min » sans plus avancer) ; c’est désormais l’application elle-même qui la démarre et la tient à jour, projets favoris et réglage « Chercher dans tous les projets » compris.

  • Icônes de fichier sans fond noir : README, changelog, log, diff, document, paramètres… s'affichaient avec un carré noir derrière l'icône (le « sans remplissage » de la racine du SVG se perdait à la génération) ; le générateur le conserve désormais sur 29 icônes.

  • Plus de « Vérification… » dans la carte Review IA : le contrôle de disponibilité du moteur tourne en arrière-plan sans rien afficher ; seul un moteur réellement absent ou non connecté est signalé.

  • Compteurs de la liste des PR fidèles au filtre « favoris » : le total de l'en-tête et les onglets Tous / À relire / Miennes ne comptent plus que les PR des dépôts favoris quand l'étoile est active (ils comptaient tout le projet).

  • Les PR à relire masquées par « favoris » sont signalées : sous l’onglet « À relire », une ligne « N à relire hors favoris » (avec « Afficher tous les dépôts ») explique l’écart avec la pastille de la barre d’activité, qui compte tout le projet.

  • Liens externes et étiquettes plus sûrs : les liens des work items et des builds ne s'ouvrent plus que s'ils sont en http ou https, et un échec de création ou de pose d'étiquette affiche désormais un message au lieu d'échouer en silence (le texte saisi est conservé).

  • Nombres et pluriels dans la langue de l'interface : « 1,5 k », « 2,5 Mo », « 1,2 s », « 1/2 (50 %) » en français (« 1.5k », « 2.5 MB », « 1.2s », « 1/2 (50%) » en anglais), « 1 commit » / « 1 ligne » au singulier dans les graphiques de l'équipe, et le message d'échec des réglages de recherche sémantique suit la même règle de ponctuation.

  • Étiquettes et collisions de la bonne PR : quand deux dépôts ont chacun une PR portant le même numéro, l'étiquette posée sur l'une n'apparaît plus sur l'autre, le « × » retire bien l'étiquette de la PR concernée, et ouvrir une collision ouvre la PR du bon dépôt. Vos étiquettes existantes sont conservées.

  • Work items liés : un élément supprimé ne fait plus tout disparaître : si l'un des work items d'une PR a été supprimé ou n'est pas accessible, les autres s'affichent normalement ; au-delà de 200 work items, ils sont récupérés par lots.

  • Commentaire Azure DevOps jamais publié sur la mauvaise ligne : si l'auteur a poussé de nouveaux commits depuis l'affichage du diff, « Publier » est refusé avec un message qui demande de recharger le diff, au lieu de poser le fil sur une autre ligne ; votre texte et votre brouillon sont conservés, et rien n'est renvoyé sans votre clic. Même garde sur GitHub et GitLab, qui lisait jusque-là la tête rafraîchie en arrière-plan plutôt que celle du diff affiché.

  • Publication de review : une étape réussie n'est plus republiée : si la synthèse partait puis que le vote échouait, un nouvel essai recréait la synthèse en double. Elle est désormais décochée, signalée « déjà publiée » et jamais renvoyée, même après fermeture et réouverture du dialogue ; seul le vote est retenté, sur votre clic. Même garantie pour « Terminer le test », dont le compteur n'annonce plus un verdict déjà publié.

  • Séparateurs de panneaux fluides sur macOS : faire glisser la séparation entre deux colonnes ne saccade plus sur Mac, y compris sur un très gros fichier.

  • Commentaires de tous les fils retrouvés : sur Azure DevOps, la recherche ne trouvait que les commentaires du premier fil de chaque Pull Request ; les autres fils et leurs réponses sont désormais indexés, et ceux de vos PR déjà indexées se rattrapent en arrière-plan.

  • Pré-analyse fiable : une PR n'est plus annoncée « prête » quand son plan de revue a été retiré du cache pour faire de la place ; elle se prépare de nouveau. Retirer un compte arrête aussitôt toute pré-analyse en arrière-plan pour ce compte.

  • Longues listes Azure DevOps complètes : une organisation de plus de 100 projets les affiche tous, et le fichier supprimé d'une PR de plus de 100 fichiers retrouve son chemin ; au-delà d'une limite de pages, Diffwright le dit au lieu d'afficher une liste tronquée.

  • La liste des PR ne se referme plus toute seule : elle ne se replie que lorsque la fenêtre est réduite, jamais pendant un glissement ; agrandir ou réduire une colonne ne touche plus les autres.

  • Liste des fichiers sans clignotement : sur Mac, la liste des fichiers d'une Pull Request pouvait être remplacée une demi-seconde par un squelette de chargement juste après s'être affichée ; elle reste désormais en place.

Télécharger cette version