✨ Devenez PM à l'ère de l'IA — parlez, l'IA construit → doAIPM.com
SoloMD

v4.13.0

L'éditeur où vivent les agents.

v4.0 est la release majeure agent-native author. Les agents sont passés d'« CLI externe appelé occasionnellement » à citoyens de première classe dans l'éditeur — présents en continu, travaillant à travers plusieurs vaults, visibilité complète, rejouables, réversibles. Tout ci-dessous est dans le core, pas besoin de plugins. L'installateur fait toujours ~15 Mo.

v4.13.0

4.13.0 — l’arborescence peut enfin être rangée.

  • Les fichiers et dossiers se déplacent par glisser-déposer. Déplacer une note dans un sous-dossier imposait de repasser par le Finder / l’Explorateur : l’arborescence savait renommer, pas déplacer. On fait maintenant glisser un élément sur un dossier ; au clavier et au doigt, « Déplacer vers… » dans le menu contextuel, avec filtre à la frappe et Entrée. Le déplacement est annulable, les onglets ouverts suivent (y compris ceux situés dans un dossier déplacé) et les liens relatifs sont réancrés : d’un niveau plus bas, _assets/img.png devient ../_assets/img.png. Trois personnes l’ont demandé. (#290, #267, #273)
  • Les fichiers masqués peuvent être affichés. .gitignore, .obsidian/ ou tout un coffre de notes commençant par un point étaient hors d’atteinte depuis l’application. Nouveau réglage, désactivé par défaut : peu de gens ont besoin de voir .git.
  • L’arborescence se filtre par type de fichier. La liste propose les extensions que le coffre contient réellement, avec leur nombre — pas une liste toute faite de vingt formats. En choisissant .txt, les dossiers dont l’arborescence ne contient aucun txt disparaissent aussi. Tant que le filtre est actif, un bandeau en haut de l’arbre nomme les types et les efface d’un clic. (#282)
  • L’éditeur et l’aperçu se distinguent en vue divisée. Côte à côte, les deux volets étaient la même surface et la division se lisait comme une seule colonne. Une fois activé, l’aperçu reçoit sa propre teinte, dérivée du thème courant — valable pour les huit. (#279)
  • Une fenêtre trop étroite ne rogne plus la barre d’outils en silence. Sur un écran 1366×768, la barre réclame 1532 px : 166 px — plusieurs boutons et le nom du document — se retrouvaient hors de la fenêtre. Elle défilait déjà horizontalement, mais rien ne le disait. Un « ⋯ » apparaît désormais en cas de débordement et déplie toute la barre sur deux ou trois lignes légendées. (#282)

v4.12.1

4.12.1 — du texte qui sortait de la page, et des menus hors d'atteinte.

  • Le texte collé ne sort plus de la page. Quand les espaces d'un document viennent de Word, d'une page web ou d'une conversation, ce sont souvent des espaces insécables plutôt que des espaces ordinaires — le fichier d'un des signalements en comptait 119 contre 23 vrais. Un paragraphe collé de cette façon ne forme, pour n'importe quel moteur de mise en page, qu'un seul mot insécable : il quittait donc la colonne, tout simplement. Défilement horizontal dans l'aperçu, texte coupé au bord du PDF exporté. Corrigé dans l'aperçu, l'export PDF, l'impression et l'export HTML. L'édition en direct n'a jamais été touchée, ce qui donnait justement l'impression d'un défaut de rendu. (#293)
  • Le plan occupe de nouveau toute la barre latérale. Si vous déplaciez le séparateur pendant que le plan partageait la barre avec un autre panneau, puis fermiez ce panneau, le plan restait figé à sa hauteur : une boîte de quatre lignes dans une barre trois fois plus haute, sans plus aucun séparateur à saisir, puisque les séparateurs n'existent qu'entre panneaux. Un panneau seul dans la barre la remplit désormais, celui du bas absorbe ce que les autres laissent, et le séparateur se montre au survol au lieu de rester une ligne invisible de quatre pixels. (#294)
  • L'AppImage s'installe dans les gestionnaires d'AppImage. Lancée directement, elle a toujours fonctionné, mais les outils qui la décompressent — AppManager, Gear Lever — la refusaient net : l'empaqueteur y avait inscrit un lien symbolique absolu vers le disque de la machine de compilation, un chemin qui n'existe sur l'ordinateur de personne d'autre. (#291)
  • GitLab et les dépôts git auto-hébergés ont enfin où saisir l'URL. Choisir « URL git HTTPS personnalisée » menait à un champ de jeton puis à un panneau vide : aucun champ, aucun bouton, alors que l'indication juste au-dessus demandait de coller un lien de clonage. Ces dépôts n'offrent aucune liste à parcourir : coller l'URL est la procédure — et c'était précisément ce qui manquait. La déconnexion leur manquait aussi.
  • Le menu barre oblique se parcourt au clavier. La flèche vers le bas amenait la sélection au neuvième élément et semblait s'y arrêter, et une liste faite défiler à la souris remontait aussitôt en haut : tout ce qui se trouvait sous le séparateur, tableaux blancs compris, restait inaccessible. La fenêtre était détruite et reconstruite à chaque frappe, ce qui remettait le défilement à zéro et court-circuitait le code chargé de garder la ligne sélectionnée visible.

v4.12.0

4.12.0 — replier, imprimer, annuler.

  • Replier un titre et tout ce qu'il contient. Cliquez sur la flèche dans la marge, ou utilisez les commandes de repli pour fermer une section, toutes les sections, ou tout ce qui se trouve sous un niveau donné. Le modèle est une analyse de texte brut plutôt qu'une fonction de CodeMirror, il fonctionne donc à l'identique dans l'éditeur en textarea qu'utilise Windows.
  • L'impression ne suit plus le thème de l'application. Un thème sombre s'imprimait sombre — de l'encre sur le papier, ou un PDF illisible. L'impression et le PDF utilisent désormais leur propre palette claire, avec une option sombre explicite si c'est bien ce que vous vouliez.
  • Supprimer un fichier laisse huit secondes pour annuler. La suppression est retenue plutôt que le fichier déplacé quelque part d'astucieux : il reste exactement là où il est jusqu'à la fin du délai. Tout ce qui exige un système de fichiers stabilisé — créer, renommer, changer d'espace de travail, fermer la fenêtre — exécute d'abord la suppression en attente.
  • Capture rapide, depuis n'importe où. Un raccourci système (⌘⌥M par défaut) ouvre une petite zone par-dessus ce que vous faites. Écrivez une ligne, appuyez sur Entrée, et elle arrive dans votre boîte de réception sans que SoloMD passe au premier plan.
  • Un panneau Tâches. Chaque - [ ] de l'espace de travail dans une seule liste. Les priorités et les échéances sont lues aussi bien depuis les emoji d'Obsidian Tasks (, 📅 2026-09-10) que depuis une écriture en ASCII pur (!!!, due:2026-09-10), de sorte qu'un coffre existant continue de fonctionner et que personne n'ait à chercher un sélecteur d'emoji en pleine phrase. Cliquez sur une tâche pour aller à sa ligne ; cochez-la pour écrire le fichier.
  • Importer Word, PDF, HTML et tableurs. Les convertisseurs étaient déjà dans l'application, sans aucun moyen d'y accéder. Il y a désormais une entrée de menu — et importer un nom déjà pris choisit le suivant disponible au lieu d'écraser, comparé sans tenir compte de la casse, parce que Windows et macOS ne s'accordent pas sur ce qui constitue une collision.
  • Modifier un tableau comme une grille. Ajoutez et retirez lignes et colonnes sans compter les barres verticales. Le texte CJK est aligné sur la largeur d'affichage, pour que la source Markdown reste alignée dans une police à chasse fixe au lieu de dériver d'une colonne par caractère chinois.
  • Modèles DOCX. Page de couverture, sommaire, en-tête courant, numéros de page — trois préréglages, ou défini par document avec un bloc docx: dans l'en-tête YAML.
  • Équations numérotées et renvois. \label sur une équation en bloc reçoit un numéro et une ancre ; \eqref devient un lien qui y mène.
  • Un dossier d'espace de travail supprimé ne ressemble plus à un coffre vide. Si le dossier disparaissait sous nos pieds, l'arborescence n'affichait rien sous son propre nom — impossible à distinguer d'avoir perdu tous les fichiers qu'il contenait. Elle indique désormais que le dossier est absent, et efface l'avertissement d'elle-même quand il revient.
  • Le menu contextuel de l'arborescence affichait des noms de clés. Quatre chaînes n'étaient définies dans aucune langue, le menu affichait donc explorer.copyGitUrl au lieu d'un libellé — dans les quatorze. Définies partout désormais.
  • Pour les agents : list_tasks dans le serveur MCP. Chaque case à cocher de l'espace de travail avec son fichier, sa ligne et son état, exactement ce qu'affiche le panneau Tâches — pour qu'un agent et le panneau ne puissent pas diverger sur la ligne à cocher.

v4.11.22

4.11.22 — des choses qui, en silence, ne faisaient rien.

  • Fichier → Nouvelle fenêtre n'ouvrait aucune fenêtre. L'entrée de menu déclenchait un événement que personne n'écoutait ; elle était donc inerte depuis le jour où le menu natif est arrivé — alors que la même action depuis la palette de commandes fonctionnait, ce qui la faisait passer pour « il ne se passe rien » plutôt que pour une erreur. Les deux suivent désormais le même chemin, et une fenêtre qui ne parvient pas à s'ouvrir le dit au lieu d'échouer en silence.
  • Un fichier texte s'ouvrait vide après une édition en direct. Sous Windows, passer d'un fichier Markdown en mode direct à un .txt affichait un éditeur vide pendant que les numéros de ligne continuaient de compter le texte absent. Le contenu n'a jamais été perdu — la gouttière et l'éditeur étaient remplis à des moments différents, et seule la gouttière l'emportait. Il fallait sortir et revenir ; maintenant il s'ouvre, tout simplement.
  • Les liens [[dossier/note]] créaient une seconde note vide. Un wikilien contenant un dossier n'était jamais résolu, et cliquer dessus créait donc un doublon à côté de la note visée. Les chemins de dossier, les alias de l'en-tête YAML et les fichiers créés depuis la dernière analyse sont désormais tous résolus. Merci à @jukejeew.
  • Linux : Fichier → Quitter, avec Ctrl+Q. Les gestionnaires de fenêtres en mosaïque masquent la barre de titre, ne laissant ni ✕ ni sortie évidente. Également de @jukejeew.
  • Fini le scintillement plein écran en déplaçant le séparateur, et un thème personnalisé qui le réintroduirait le signale désormais au chargement. Merci à @raopan2021.

v4.11.21

4.11.21 — la page des raccourcis que vous ne pouviez pas voir.

  • Réglages → Raccourcis s'ouvrait sur une page vide. La 4.11.20 a livré la réattribution avec sa page de réglages invisible : le panneau n'affiche qu'une catégorie à la fois via une liste blanche CSS, et la nouvelle catégorie Raccourcis n'y a jamais été ajoutée — la règle de masquage a donc attrapé le balisage et rien ne l'a ramené. Tout était là et fonctionnait ; vous ne pouviez simplement pas le voir. La liste blanche couvre désormais les sept catégories.
  • Des téléchargements que vous pouvez vérifier vous-même. Chaque version porte désormais un SHA256SUMS.txt couvrant tous ses fichiers, pour que vous puissiez vérifier que ce que vous avez téléchargé est bien ce que nous avons compilé.
  • À propos de l'avis d'« analyse » de Chrome sous Windows. Les versions Windows ne sont pas encore signées ; la protection renforcée de Chrome analyse donc chaque nouvelle version puis signale qu'aucun virus n'a été trouvé — c'est un succès, pas un avertissement. Par ailleurs, l'installateur x64 de la 4.11.20 a déclenché un faux positif de l'apprentissage automatique de Microsoft Defender, raison pour laquelle ce téléchargement est brièvement resté à la 4.11.19. Chaque version est désormais analysée avec Defender avant sa sortie, et l'installateur x64 de la 4.11.21 ressort propre — Windows x64 est donc de nouveau à jour.

v4.11.20

4.11.20 — les raccourcis vous appartiennent désormais.

  • Tous les raccourcis de l'application sont modifiables. Réglages → Raccourcis liste 37 actions regroupées par Fichier / Édition / Affichage / Navigation / Outils. Cliquez sur Modifier, appuyez sur la combinaison voulue, et elle s'applique immédiatement — sans redémarrage. Vous pouvez détacher entièrement une action (si vous voulez récupérer ⌘E ou ⌘D pour autre chose, prenez-les), en réinitialiser une seule, ou toutes les restaurer. Tenter de prendre une combinaison déjà détenue par une autre action est refusé en nommant l'action qui la détient, plutôt que de créer en silence deux propriétaires pour une même touche.
  • Modifier un raccourci le modifie partout. La combinaison que vous définissez est celle qu'annoncent les infobulles de la barre d'outils, celle qu'affiche le tableau des raccourcis de l'aide-mémoire Markdown, celle que liste la palette de commandes et — ce qui compte vraiment sous macOS — celle que détient la barre de menus native. Auparavant le menu possédait ⌘S au niveau du système d'exploitation, si bien que réattribuer Enregistrer aurait laissé ⌘S enregistrer aussi ; le menu est désormais reconstruit avec vos combinaisons, et une action détachée perd entièrement son accélérateur de menu.
  • Y compris le ⌘J propre à l'éditeur. La réécriture par IA vit dans le keymap de l'éditeur plutôt que dans celui de l'application, et elle est également réattribuable — la modification atteint un éditeur déjà ouvert, pas seulement le suivant. Les touches qui n'ont de sens qu'à l'intérieur d'une fenêtre surgissante (flèches, Tab, Entrée, Échap) restent fixes, tout comme celles que possède le système d'exploitation : annuler, couper, copier, coller.

v4.11.19

4.11.19 — le téléphone cesse d'être un bureau rétréci.

  • Une disposition conçue pour un téléphone. Mesuré sur un écran de 390px avant cette version : l'arborescence prenait 250px et la barre latérale droite 260 de plus — sur 390 — l'éditeur n'était donc qu'un filet, ou disparaissait ; la vue partagée laissait environ 195px à chaque volet ; la barre d'état passait à la ligne ; et la barre d'outils était un ruban de 29 icônes que l'on faisait défiler. Les volets latéraux sont désormais des tiroirs qui flottent au-dessus de l'éditeur et se ferment d'une touche à côté, si bien que l'éditeur dispose toujours de toute la largeur. Le partage empile les volets verticalement au lieu de les mettre côte à côte. La barre d'outils garde six commandes — arborescence, enregistrer, les trois modes d'affichage, recherche — et un « plus » qui déploie la barre en une feuille où chaque commande restante a une icône et un libellé ; rien n'est devenu inaccessible. La barre d'état conserve les compteurs qui bougent pendant que vous écrivez et abandonne les valeurs de référence du bureau. Les réglages cessent d'être une colonne de navigation de 160px à côté d'une colonne de 145px. Les tablettes restent délibérément intactes — la disposition suit la fenêtre d'affichage, pas le système d'exploitation, un iPad garde donc l'agencement de bureau, et une fenêtre de bureau rétrécie reçoit celui du téléphone.
  • Le gras se terminant par une ponctuation pleine chasse s'affiche enfin. **限制:**硬链接 ressortait en astérisques littéraux. Le ** fermant se trouve après un deux-points pleine chasse et avant un caractère han, et CommonMark dit qu'une séquence dans cette position ne peut pas fermer — une forme omniprésente dans l'écriture chinoise. SoloMD suit désormais l'amendement CJK de CommonMark, qui lit ces règles comme de la ponctuation non CJK. Les deux moteurs ont été corrigés : le moteur de rendu de l'aperçu et de l'export, et l'analyseur distinct derrière l'édition en direct, pour que les deux volets ne puissent pas diverger sur un même document. L'ASCII est inchangé.
  • Une formule $$ sur plusieurs lignes reste d'un seul tenant sous Windows. Un bloc utilisant \begin{aligned} était scindé en trois, la ligne centrale indentée étant rendue comme un bloc de code gris. Le découpeur de blocs de l'éditeur Windows connaissait les clôtures ``` mais pas $$, il entrait donc dans la formule ligne par ligne — et toute ligne indentée de quatre espaces, ce qui est courant dans aligned, devenait un bloc de code indenté à part entière.
  • L'export démarre dans le dossier du document. La boîte de dialogue d'enregistrement ne recevait qu'un nom de fichier ; le système réutilisait donc le dernier emplacement d'enregistrement — exportez une note depuis votre dossier de notes et la boîte pouvait encore s'ouvrir dans les téléchargements de la semaine passée.
  • La configuration initiale de l'IA propose tous les fournisseurs, et une URL de base. Elle listait quatre marques alors que les réglages en comptaient seize, et n'avait aucun champ d'adresse — quiconque utilisait un point de relais ou un serveur auto-hébergé devait donc sauter l'assistant. Elle affiche désormais la liste complète avec une URL de base modifiable, et les fournisseurs qui ne nécessitent pas de compte n'exigent plus de clé. Par ailleurs, la vérification n'échoue plus sur les points de terminaison qui ne servent pas de liste de modèles : une passerelle qui renvoie 404 sur /v1/models alors que le chat fonctionne parfaitement est désormais vérifiée par un chat d'un seul jeton. Une mauvaise clé échoue toujours, comme il se doit.
  • Le mode lecture utilise la police que vous avez choisie. Il déclarait sa propre pile de serifs et avalait le réglage entier — le commentaire du code prétendait même que vous pouviez le remplacer. Sur un téléphone, son bouton de sortie se posait en plus sur le premier titre ; il descend en bas à droite, là où un pouce l'atteint.
  • Le script d'installation macOS fonctionne de nouveau. curl -fsSL https://solomd.app/install.sh | bash échouait pour tous les utilisateurs macOS avec « Failed to mount DMG » — le script faisait taire précisément la sortie dont il tentait ensuite de lire le point de montage. Merci à la personne qui l'a signalé, dont le diagnostic était exact.
  • Les blocs de code ont un bouton de copie pendant l'édition. En mode direct, un bloc clôturé semble rendu — les lignes ``` sont masquées — mais le sélectionner à la main donnait toujours la source : les clôtures et, pour un bloc imbriqué dans une liste, les deux espaces d'indentation de liste devant chaque ligne. Collez cela dans un terminal et vous devez le nettoyer à la main. Chaque bloc de code porte désormais le même bouton de copie en un clic que le volet d'aperçu, et il copie ce que copierait un moteur de rendu : pas de clôtures, l'indentation du bloc retirée, celle du code conservée. Présent aux trois endroits où du code est affiché — l'éditeur en direct, le volet d'aperçu et l'éditeur de blocs Windows.
  • Ollama sur une autre machine est détecté. Si vous exécutiez Ollama sur un NAS ou un ordinateur à l'autre bout de la pièce et mettiez son adresse dans l'URL de base, Réglages → IA persistait à dire « non détecté » — la sonde ignorait ce champ et interrogeait toujours localhost, alors même que le chat parlait parfaitement à votre serveur. Elle suit désormais l'adresse que vous définissez, revérifie au fur et à mesure que vous la saisissez, indique exactement ce qu'elle a sondé, et lorsqu'une machine distante ne répond pas, elle dit quoi vérifier (un serveur distant a besoin de OLLAMA_HOST=0.0.0.0 et d'un port ouvert) au lieu de proposer d'installer Ollama sur votre portable.
  • Nouveau fournisseur : tout serveur compatible OpenAI que vous hébergez vous-mêmellama-server de llama.cpp, LM Studio, vLLM, LocalAI, une passerelle interne. Auparavant, la seule entrée consistait à emprunter l'emplacement d'un autre fournisseur, et cela ne marchait pas : une clé était obligatoire (les gens en inventaient donc une) et un simple hôte:port — exactement ce que ces serveurs affichent au démarrage — donnait un 404 parce que le préfixe /v1 était supposé déjà saisi. Désormais le champ de clé est facultatif, l'adresse est complétée pour vous, la liste des modèles est lue depuis le serveur, et s'il ne parvient pas à se connecter vous voyez la réponse du serveur lui-même (HTTP 404, connexion refusée) ainsi que ce qu'il faut vérifier. Utilisable aussi depuis les recipes : provider: openai-compat (ou llama-cpp / lmstudio / vllm).

v4.11.17

4.11.17 — les raccourcis avec Option, et un blocage que Linux n'a plus à subir.

  • Tous les raccourcis ⌘⌥ fonctionnent sous macOS. macOS transforme Option+lettre en un autre glyphe avant même que la frappe nous parvienne — Option+N arrive en « Dead », Option+P en « π », Option+C en « ç » — et nous comparions sur la lettre ; ⌘⌥N (nouveau fichier texte), ⌘⌥P (diaporama), ⌘⌥⇧P (imprimer en PDF), ⌘⌥B et ⌘⌥L ne s'étaient donc tout simplement jamais déclenchés sur un Mac. Ils comparent désormais sur la position physique de la touche. Tant qu'à faire, ⌘⌥C copie la sélection en Markdown — le seul format de copie que les gens collent vraiment ailleurs, et le seul sans raccourci.
  • Linux : SoloMD n'attend plus un service d'accessibilité qui ne répond pas. Quand le bus AT-SPI du bureau accepte un appel et n'y répond jamais, GTK et WebKit bloquent chacun l'interface pendant tout leur délai D-Bus — 25 s et 30 s — avant que la fenêtre puisse s'afficher ou accepter un clic. SoloMD interroge désormais ce bus lui-même, avec un budget de deux secondes, avant le démarrage de GTK : s'il répond, rien ne change et les lecteurs d'écran fonctionnent exactement comme avant ; s'il ne répond pas, nous démarrons sans accessibilité au lieu de l'attendre. Mesuré sur une machine au bus délibérément coincé, le délai entre le lancement et l'utilisabilité est passé de 51 s à 3 s.
    Ceci ne corrige pas les gels signalés sur Arch et Ubuntu (#253, #200). Ceux-là ne se rétablissent jamais d'eux-mêmes ; ce blocage-ci le faisait toujours, c'est donc autre chose, et cette enquête reste ouverte. Si vous en subissez un, les tickets sont l'endroit où suivre l'avancée.

v4.11.16

4.11.16 — le curseur reste où vous l'avez mis.

  • Le curseur ne saute plus pendant la frappe sous Windows. Si quoi que ce soit touchait le fichier ouvert depuis l'extérieur — un client cloud en synchronisation, un pull, un aller-retour d'enregistrement — SoloMD rechargeait le tampon et le curseur était projeté à l'autre bout du document. Parfois les lettres cessaient carrément d'entrer, parce que le même événement interrompait une composition IME en cours ou faisait perdre le focus à l'éditeur, moment où les frappes isolées étaient lues comme des raccourcis. Un correctif existait depuis la 4.11.1 mais ne couvrait que l'éditeur CodeMirror ; Windows utilise un champ de texte natif et ne l'a jamais reçu.
  • La synchronisation Gitee fonctionne. Elle ne pouvait pas s'authentifier du tout : nous envoyions le nom d'utilisateur d'authentification basique qu'exige GitHub, et Gitee le rejette catégoriquement — chaque tentative échouait donc, quelle que soit la validité du jeton. Vérifié de bout en bout contre un vrai dépôt Gitee. (#249)
  • L'agent peut réellement écrire quand vous l'y autorisez. « Autoriser l'agent à écrire dans le coffre » n'avait aucun effet — les outils d'écriture n'étaient jamais transmis au modèle, qui répondait donc n'en avoir aucun. Et les exécutions de recipes se terminaient sur leur branche sans jamais apparaître dans « En attente de revue », impossibles donc à accepter ou refuser. Les deux tracées par @jclg83. (#247, #248)
  • Correction orthographique dans votre langue. Le correcteur était figé sur l'anglais, ce qui soulignait chaque mot pour tous les autres. Choisissez un dictionnaire dans Réglages → Écriture, et déposez n'importe quelle paire Hunspell .aff + .dic dans le dossier qu'ouvre le bouton. (#246)
  • Conversion de casse. Maj+F3 fait passer la sélection — ou le mot sous le curseur — par minuscules / MAJUSCULES / Capitales, avec des commandes explicites dans la palette. Demandé sur Gitee.
  • Les guillemets typographiques sont désactivés pour de bon. Les rendre optionnels en 4.11.11 n'a changé que la valeur par défaut ; tous ceux qui les avaient déjà continuaient donc de voir un large espace après les apostrophes dans les polices CJK. Nettoyé une fois pour toutes, et cela reste désactivé sauf si vous le réactivez. (#251)

v4.11.15

4.11.15 — trois choses que Gitee nous disait depuis des semaines.

  • Les commandes slash ne faisaient rien sous Windows sauf en Édition en direct. Windows utilise un champ de texte simple plutôt que CodeMirror, parce que WebView2 perd des caractères pendant la saisie chinoise — et l'autocomplétion de remplacement n'avait jamais été raccordée qu'à l'éditeur de blocs de l'Édition en direct. En 仅编辑 et 分栏, la fenêtre surgissante n'apparaissait jamais, ne se parcourait pas et n'insérait rien. Et ce n'était pas seulement le menu slash : les wikiliens [[, les étiquettes # et les citations @ partagent le même déclencheur et étaient tout aussi morts. Les quatre fonctionnent désormais dans tous les modes, la fenêtre surgissante suivant la ligne de votre curseur. (Gitee IK6JCC)
  • Les deux exports PDF disent enfin ce qu'ils produisent vraiment. « Exporter en PDF » rastérise la page : le texte est une image — non sélectionnable, non consultable, et plusieurs fois plus lourde. L'export que les gens voulaient vraiment se trouvait juste en dessous sous un nom qui n'en donnait aucun indice. Ils sont désormais étiquetés — PDF (texte), vrai texte sélectionnable via l'impression système, listé en premier et recommandé ; PDF (image), rastérisé mais enregistré sans boîte de dialogue — dans la barre d'outils et la palette de commandes. (Gitee IK8QJQ)
  • Les exports Word / EPUB / ODT / LaTeX correspondent de nouveau à l'aperçu. Ces formats passent par Pandoc, à qui l'on remettait le fichier brut alors que l'aperçu recevait d'abord une passe de corrections indulgentes. Une sous-liste indentée de deux espaces s'imbriquait donc à l'écran et ressortait à plat dans un .docx. Pandoc voit désormais le même texte que vous. (Gitee IJXS8V)

v4.11.14

4.11.14 — l'écran vide qui avalait vos notes.

  • Une vue enregistrée qui n'existait plus pouvait vider tout l'éditeur, sans retour possible. Signalé sous Android comme « les notes ne s'ouvrent pas » — mais les notes s'ouvraient bien : la notification s'affichait, la barre d'état comptait les lignes, puis rien n'apparaissait. La zone de contenu n'affiche qu'une seule chose à la fois et l'éditeur passe en dernier ; une vue enregistrée marquée ouverte gardait donc sa place même après la disparition de la vue elle-même. Et comme le bouton ‹ retour du volet vivait dans le bloc même qui refusait de s'afficher sans vue, il ne restait rien à cliquer. Ouvrir d'autres fichiers n'aidait pas — chacun s'ouvrait dans un volet incapable de dessiner. Android le rencontrait le plus souvent, car un dossier choisi via le sélecteur système ne peut souvent pas lire le répertoire des vues, mais rien là-dedans n'était propre à Android. L'éditeur prend désormais la main dès qu'une vue cesse de se résoudre, et le bouton retour s'affiche toujours. (#245)
  • Le thème Aurora a été revu. Filets teintés aurore, intérieurs de panneaux translucides qui restent lisibles sur le dégradé, et fini le stroboscope plein écran en déplaçant le bord d'un panneau. Merci @raopan2021. (#244)
  • Le paquet Arch est de nouveau à jour. solomd-bin est publié sur l'AUR et l'empaquetage du dépôt (bloqué en 4.1.0) suit désormais les vraies versions. Merci @gonwe. (#241)

v4.11.13

4.11.13 — une vraie intégration Gitea, 11 nouveaux thèmes, et deux choses qui ne faisaient rien.

  • Gitea / Forgejo est désormais une cible de synchronisation à part entière. La 4.11.12 a rendu la synchronisation auto-hébergée atteignable ; celle-ci la rend réelle. Votre jeton Gitea vit dans sa propre entrée de trousseau, vous pouvez donc détenir un jeton GitHub et un jeton Gitea en même temps. L'URL de votre serveur est mémorisée et vérifiée avant que vous ne vous y engagiez. Et SoloMD peut désormais lister vos dépôts et créer le dépôt du coffre pour vous, au lieu de vous faire coller une URL de clonage. Contribué par @JumpingY, vérifié de bout en bout contre un vrai serveur Gitea. (#150)
  • 11 nouveaux thèmes communautaires. Aurora, Deep Blue, Deep Green, Deep Purple, Frost Blue, Graphite Gray, Ink Blue, Rose Pink, Soft UI, VSCode Modern et Warm Sand — par @raopan2021, dans Réglages → Parcourir les thèmes communautaires. Il y a aussi un bouton de rechargement à côté de votre fichier CSS personnalisé, pour modifier un thème dans votre éditeur et le voir appliqué sans redémarrer. (#239)
  • Rechercher dans le dossier était mort si vous aviez déjà masqué la barre latérale droite. Ctrl/Cmd+Maj+F, le bouton de la barre d'outils et Affichage → Rechercher dans le dossier ne faisaient exactement rien — et appuyer de nouveau le rebasculait en silence. Le panneau de recherche vit dans la barre latérale droite, et l'interrupteur principal de masquage de la barre l'emportait ; le panneau s'ouvrait donc là où rien ne pouvait le dessiner. Les quatre points d'entrée réaffichent désormais la barre latérale. (#209)
  • Maintenir Cmd sur un Mac ne redimensionne plus toute l'application par accident. Le zoom par défilement réagissait à n'importe quel événement de défilement ; un trackpad sous un doigt posé — avec Cmd maintenu pour ⌘S ou ⌘Tab, comme d'habitude — pouvait ainsi ramener toute l'interface à sa taille minimale. Un mouvement fortuit a désormais environ cinq fois moins de chances de zoomer, tandis que le zoom délibéré est inchangé, et un interrupteur dans Réglages → Bases permet de désactiver complètement le geste. (#215)

v4.11.12

4.11.12 — la synchronisation fonctionne sur votre propre serveur, et Android cesse de promettre ce qu'il ne peut pas faire.

  • La synchronisation auto-hébergée Gitea / Forgejo fonctionne vraiment. Le moteur de synchronisation n'a jamais été spécifique à GitHub — l'écran de configuration, si. Le sélecteur de fournisseur n'apparaissait qu'après l'enregistrement d'un jeton, et l'enregistrement validait chaque jeton auprès de github.com puis le supprimait en cas d'échec : un jeton auto-hébergé ne pouvait donc jamais survivre. Choisissez d'abord votre fournisseur, et nous n'interrogeons plus github.com sur des jetons qui ne lui appartiennent pas. Vérifié de bout en bout contre un vrai serveur Gitea. (#229)
  • Android n'affiche plus des réglages de synchronisation qu'il ne peut pas exécuter. La version Android n'embarque pas de moteur Git, mais l'application dessinait quand même tout le panneau Synchronisation et l'interface d'historique des versions — chaque bouton répondait par un cryptique Command not found, et avec le commit automatique activé vous obteniez une erreur à chaque enregistrement. Ces commandes ont disparu sous Android, remplacées par une explication simple. (#230)
  • Fini le dossier .solomd dans chaque dossier que vous ouvrez. Ouvrir un dossier juste pour lire une note y laissait un répertoire .solomd. Ce dossier sert à transmettre vos onglets ouverts d'un appareil à l'autre ; il n'est donc désormais écrit que dans des dossiers réellement synchronisés dans le cloud — rien n'est créé dans un dossier local ordinaire. (#236)
  • OpenCode Go rejoint la liste des fournisseurs d'IA. 24 modèles derrière un seul abonnement, contribué par @fengzhoujingshui. (#232, #235)
  • L'installateur Linux fonctionne sur ARM. install.sh ne récupérait que des paquets x86_64 ; les versions arm64 que nous publiions déjà étaient donc inaccessibles sur un Raspberry Pi ou une machine virtuelle ARM. Corrigé par @jysz. (#220)

v4.11.11

4.11.11 — les boutons de fenêtre de Windows refonctionnent, et Vim peut enregistrer.

  • Réduire et fermer refonctionnent sous Windows. Les boutons de fenêtre de la barre de titre unifiée étaient bloqués par une autorisation manquante — les clics ne faisaient rien et il fallait fermer depuis la barre des tâches. Corrigé et vérifié sur une vraie compilation Windows. Le menu Fichier a retrouvé son entrée Quitter, les menus déroulants ne se ferment plus quand vous faites défiler en dessous, et le mode lecture a désormais ses propres boutons réduire/fermer. (#221, #223)
  • Vim peut enregistrer et quitter. :w, :wq, :x et :q font désormais ce que vous attendez — acheminés par le vrai flux d'enregistrement et de modifications non enregistrées de SoloMD. Au passage, nous avons comblé une faille où un enregistrement déclenché juste après la frappe pouvait manquer les dernières touches. (#222)
  • Fini l'espace fantôme après une apostrophe. L'aperçu gardait ses guillemets typographiques activés par défaut, et certaines polices dessinaient l'apostrophe courbe en pleine chasse — ce qui se lisait comme un espace supplémentaire. Les guillemets s'affichent désormais exactement tels que vous les tapez ; les guillemets courbes sont un nouveau réglage optionnel. (#216)
  • Android : les applications de dictionnaire et de traduction réapparaissent. Sélectionner du texte propose désormais vos applications PROCESS_TEXT installées (dictionnaires hors ligne, traducteurs). (#224)

v4.11.10

4.11.10 — une barre de titre sous Windows, et trois correctifs demandés.

  • Windows reçoit une barre de titre unifiée. Trois rangées d'habillage se réduisent à une — boutons de fenêtre, onglets et barre d'outils partagent une seule rangée, comme dans l'application Mac. Snap Layouts fonctionne toujours sur le bouton d'agrandissement, et l'installateur MSI a reçu une identité visuelle correcte.
  • Tout sélectionner ne peut plus geler l'éditeur Windows. Ctrl+A dans l'éditeur de blocs est désormais géré par SoloMD lui-même au lieu de se battre avec la textarea native. (#189, #210)
  • Les blocs de code se renvoient à la ligne en Édition en direct, et les PDF cessent de les rogner. Le réglage « renvoyer à la ligne les lignes longues dans les blocs de code » s'applique désormais aussi pendant l'édition, et l'export PDF ne coupe plus les longues lignes de code. (#211)
  • Les listes imbriquées dans des listes numérotées gardent leur forme. Une sous-liste à puces sous une liste ordonnée ne s'aplatit plus sur un seul niveau. (#213)

v4.11.9

4.11.9 — un zoom qui garde sa visée, et quatre conforts demandés.

  • Le zoom ⌘+/⌘- ne casse plus le ciblage des clics sous macOS. Le zoom passe désormais par la webview système (comme celui de Safari), le curseur atterrit donc exactement sous le pointeur à n'importe quel niveau de zoom. (#192)
  • La barre latérale ne peut plus rester coincée masquée. Ouvrir le plan — ou n'importe quel volet — depuis le raccourci, les réglages ou la barre d'onglets ramène désormais aussi la barre latérale auto-masquée. (#207)
  • La palette de commandes parle votre langue. Les 85 commandes suivent Réglages → Langue dans 14 langues ; la recherche correspond au nom traduit comme au nom anglais. (#177)
  • Nouvelles options : un curseur plein (sans clignotement) (#193) et une police dédiée au code (#190). Copier des tableaux depuis l'aperçu conserve leurs bordures lors du collage dans un client de messagerie. (#189)

v4.11.8

4.11.8 — la vue partagée s'aligne, les positions tiennent.

  • La vue partagée reste de niveau. L'éditeur et l'aperçu se suivent désormais au pixel près à n'importe quelle position de défilement — les paragraphes renvoyés à la ligne, les images et les blocs HTML bruts n'écartent plus les deux volets, et les numéros de ligne restent collés à leurs lignes. (#203)
  • Votre position de défilement survit aux changements d'onglet. Sous Windows, sortir puis revenir ne remet plus la vue en haut — en mode Édition, Partagé et Édition en direct pareillement. (#169)
  • ==Surlignage== s'affiche en édition en direct. Même traitement que le gras et l'italique : mis en forme hors de la ligne du curseur, source brute quand vous l'éditez ; les blocs de code restent littéraux. Le mode machine à écrire centre désormais aussi la ligne du curseur dans l'éditeur Windows. (#199)
  • Les étiquettes de saut du plan au-delà de az sont corrigées. Les longs documents n'affichent plus de marqueurs aundefined. (#206)

v4.11.7

4.11.7 — un chemin d'installation Windows fiable.

  • MSI est désormais le seul canal installé sous Windows. SoloMD s'installe dans C:\Program Files\SoloMD ; le ZIP portable reste disponible sans installation.
  • Les anciennes installations par utilisateur migrent en toute sécurité. Au premier lancement depuis le chemin MSI, SoloMD vérifie et supprime l'installation NSIS retirée de %LOCALAPPDATA%\SoloMD, y compris ses raccourcis obsolètes et son épinglage à la barre des tâches.
  • Votre travail et vos réglages restent intacts. La migration ne supprime jamais %APPDATA%\app.solomd ni les documents utilisateur.

v4.11.6

4.11.6 — Windows garde la nouvelle icône après une mise à jour.

  • Les épinglages de la barre des tâches, les raccourcis et l'application en cours partagent désormais une identité stable. Windows ne revient plus à une icône ancienne ou vide en cache après une mise à jour.
  • Ceci est un correctif ciblé pour Windows. Les paquets macOS et Android sont régénérés pour des téléchargements cohérents ; leur comportement sur chaque plateforme est inchangé.

v4.11.5

4.11.5 — le HTML intégré fonctionne enfin en édition en direct.

  • Le HTML de bloc s'affiche là où vous écrivez. Les conteneurs comme <div>, <table> et <details> se replient désormais sur leur résultat rendu dès que le curseur quitte le bloc.
  • Le HTML en ligne se comporte comme la mise en forme Markdown. Des balises telles que <strong>, <sup>, <mark> et <kbd> appliquent leur sens visuel au lieu de rester une source encombrante.
  • La source est toujours à un clic. Ramener le curseur dans un fragment HTML révèle le balisage exact pour l'éditer.

v4.11.4

4.11.4 — la nouvelle marque atteint l'habillage de la fenêtre.

  • La barre de titre porte désormais la nouvelle marque Portal. L'ancien logotype textuel #MD a disparu de la barre d'outils de l'application.
  • La fenêtre À propos est assortie. Les deux surfaces affichent désormais un composant de marque partagé, pour que les futures mises à jour d'identité ne puissent plus diverger.
  • Les icônes de fichier macOS sont incluses et enregistrées. Le DMG universel signé et notarié associe les fichiers Markdown à la nouvelle icône de document Portal en papier chaud.

v4.11.3

4.11.3 — un nouveau visage, plus deux correctifs récents.

  • SoloMD a une nouvelle identité visuelle. La nouvelle icône orange # Portal est désormais livrée de façon cohérente sur macOS, Windows, Linux, iOS, Android, l'App Store et le site web.
  • Les fichiers Markdown se reconnaissent d'un coup d'œil. L'icône de document par défaut est une feuille de papier chaud avec un pli orange et la marque # Portal assortie.
  • Le mode Vim refonctionne sous Windows. Activer Vim bascule désormais immédiatement l'éditeur sur CodeMirror, tandis que l'éditeur Windows normal conserve son chemin textarea sûr pour l'IME.
  • Les blocs de code ont un bouton Copier. Chaque bloc clôturé rendu reçoit dans son coin supérieur droit une action de copie en un clic, épinglée et accessible.

v4.11.2

4.11.2 — quatre petits correctifs qui vous agaçaient.

  • Les blocs de code peuvent se renvoyer à la ligne. Un nouveau réglage replie souplement les longues lignes de code au lieu d'afficher une barre de défilement horizontale — et le PDF/l'impression replient désormais toujours, pour que le code large ne soit jamais coupé sur le papier.
  • Les onglets se souviennent d'où vous étiez. Revenir à un onglet ne remet plus la vue en haut lorsque vous aviez fait défiler sans cliquer ; les numéros de ligne restent en place aussi.
  • Les j/k de Vim respectent les tableaux. Les déplacements d'un pas atterrissent sur le bord d'un bloc replié (tableau, formule, Mermaid) et le déplient — comme les flèches — au lieu de le franchir d'un bond.
  • Noms de fichiers complets dans l'explorateur. Un nouveau réglage renvoie les longs noms à la ligne au lieu de les tronquer par des points de suspension au milieu.

v4.11.1

4.11.1 — le curseur reste où vous l'avez mis.

  • Saut du curseur avec l'IME chinois corrigé. Éditer au milieu d'un paragraphe puis commencer une composition pinyin juste après pouvait projeter le curseur en haut du document et y échouer des lettres à demi composées — une course de synchronisation antirebond qui remplaçait tout le document en pleine composition. La composition n'est désormais jamais interrompue, et les mises à jour externes laissent le curseur en place.
  • L'avis de mise à jour a cessé de voler votre navigateur. Détecter une nouvelle version affiche désormais une notification cliquable de 12 secondes ; rien ne s'ouvre à moins que vous ne cliquiez — et tous les liens liés aux mises à jour (notification, vérification dans les réglages, fenêtre À propos) mènent à solomd.app plutôt qu'à GitHub.
  • Catalogue des modèles d'IA actualisé pour les 14 fournisseurs (famille GPT-5.6, Grok 4.5, Claude Fable 5 / Opus 4.8, Gemini 3.6, GLM-5.2, Kimi K3 et d'autres ; points de terminaison DeepSeek v2 retirés).

v4.11

4.11 — les tableaux cassés se réparent tout seuls.

  • Les tableaux malformés s'affichent quand même. Les exports d'IA et les outils PDF-vers-Markdown produisent souvent une ligne de séparation qui ne correspond pas à l'en-tête (une cellule |---| en trop, une manquante, une vide) — et tout le tableau s'effondrait en silence en texte littéral | … |. SoloMD répare désormais la ligne de séparation à la volée, comme Typora et Obsidian, en conservant l'alignement de chaque colonne. Les exemples dans les blocs de code restent intacts.
  • Les sections numérotées peuvent devenir des titres (optionnel). Les rapports numérotent souvent les sections en texte brut — 6.2 Licences d'export — sans #. Un nouveau réglage (désactivé par défaut) promeut ces lignes en vrais titres selon leur profondeur : 6.2 → h2, 6.2.1 → h3. Les listes ordonnées, les phrases contenant des décimales et les nombres isolés ne sont jamais touchés.
  • L'export sans interface correspond à l'application. La CLI (solomd-export, nouveau drapeau --number-headings) et l'outil MCP export_note (nouvel argument number_headings) exécutent désormais exactement le même prétraitement Markdown que l'aperçu de l'application et l'export DOCX — un seul moteur, une sortie identique partout.

v4.10

4.10 — PlantUML + un curseur de largeur d'aperçu.

  • Diagrammes PlantUML (optionnel). Les clôtures ```plantuml s'affichent comme des diagrammes dans l'aperçu et en édition en direct, via un serveur PlantUML configurable. Désactivé par défaut — vos notes ne quittent jamais la machine à moins que vous ne l'activiez ; pointez-le vers un serveur auto-hébergé pour garder le rendu sur votre propre réseau.
  • La largeur de l'aperçu vous appartient. La largeur de la colonne d'aperçu et de lecture est désormais un curseur (480–1600px, contre 760px fixes auparavant). « Ajuster à la largeur » s'étire toujours jusqu'à la fenêtre.
  • Les tableaux ne piègent plus le curseur. En édition en direct, ↑/↓ franchissaient d'un bond les tableaux rendus — et pouvaient sauter des paragraphes entiers en dessous. Le curseur parcourt désormais chaque ligne, entre dans un tableau (ou un bloc de formule / Mermaid) pour en éditer la source, et le bloc se réaffiche quand vous en sortez.
  • Numéros de ligne des blocs de code, corrigés. Les blocs de code numérotés ne doublent plus leur interligne, les commentaires à la C /** */ n'avalent plus le reste du bloc dans la ligne 1, et l'éditeur WYSIWYG respecte désormais le même réglage de numéros de ligne que l'aperçu.
  • Les clics restent des clics (4.10.1). Cliquer juste après un changement d'onglet — pendant que les diagrammes et images s'affichaient encore — pouvait sélectionner plusieurs lignes au lieu de placer le curseur. Le curseur reste désormais là où vous avez appuyé, même si la mise en page bouge en plein clic.
  • Ouvrir les fichiers liés avec l'application par défaut (4.10.2). Un lien Markdown vers un PDF ou un fichier Office local ([rapport](./rapport.pdf)) s'ouvre désormais dans l'application par défaut de votre système au lieu d'être converti en Markdown. Nouveau réglage, activé par défaut ; les liens vers .md, texte et images s'ouvrent toujours dans SoloMD.

v4.9

4.9 — vrais dossiers Android + finitions de l'éditeur.

La série 4.9 permet à SoloMD d'ouvrir et de modifier vos vrais dossiers sous Android — pas une copie en bac à sable. Sous Android 11+ (y compris Magic OS de Honor / Huawei, où l'autorisation d'accès à tous les fichiers n'accorde rien), SoloMD utilise désormais le Storage Access Framework : choisissez un dossier une fois, puis lisez et écrivez les vrais fichiers .md sur place, réenregistrés via le fournisseur de contenu du système.

  • Coffre-dossier Android (SAF). Ouvrez un vrai dossier, modifiez les fichiers sur place, disposition mobile pleine largeur.
  • Enregistrer sous corrigé. Il écrivait des fichiers vides sous Android — le contenu arrive désormais dans le fichier que vous choisissez.
  • Rechercher (Ctrl/⌘+F) défile pendant la frappe. L'éditeur saute à la première correspondance au fur et à mesure, comme votre navigateur — fini le « rien trouvé » sur les longues notes.
  • Les flèches franchissent les blocs en édition en direct. ↑/↓/←/→ déplacent désormais le curseur entre paragraphes dans l'éditeur de blocs Windows — et depuis la 4.9.6 elles respectent les lignes renvoyées, si bien que ↑ dans un long paragraphe ne le franchit plus d'un bond.
  • Numéros de ligne sous Windows (4.9.6). Le réglage « afficher les numéros de ligne » fonctionne désormais dans l'éditeur Windows, avec une gouttière qui reste alignée en cas de renvoi à la ligne.
  • Exporter les diagrammes Mermaid en PNG (4.9.6). Cliquez sur un diagramme → Exporter en PNG ou Copier l'image, en résolution double avec un fond assorti au thème.
  • La boîte d'enregistrement reprend votre titre (4.9.6). Une note jamais enregistrée commençant par # Titre préremplit « Titre.md » — arrêtez de retaper des noms de fichiers.
  • Correction du lancement sous Linux. L'AppImage n'abandonne plus avec EGL_BAD_PARAMETER sur certaines configurations Intel / Mesa.

v4.7

4.7 — Windows reçoit un tout nouvel éditeur.

Windows uniquement. SoloMD sous Windows utilise désormais un éditeur de blocs entièrement reconstruit à la place de CodeMirror. Le contentEditable de WebView2 perdait le premier caractère de la saisie CJK / IME et doublait la ponctuation (pire avec Sogou) — un bogue impossible à corriger dans CodeMirror puisqu'il réside dans WebView2 lui-même. Le nouvel éditeur saisit chaque bloc via une <textarea> native sur le chemin IME du système d'exploitation ; les caractères perdus et la ponctuation doublée ont donc disparu.

Le nouvel éditeur Windows conserve une parité fonctionnelle complète : aperçu Markdown en direct, autocomplétion et commandes slash (/), modes focus et machine à écrire, continuation intelligente des listes, réécriture par IA (Ctrl+J), rechercher et remplacer dans le document (Ctrl+F), collage d'images depuis le presse-papiers, cases à cocher de tâches, annuler / rétablir, indentation par Tab, correction orthographique et renvoi à la ligne.

macOS, Linux, iOS et Android ne sont pas concernés — ils conservent l'éditeur CodeMirror existant. Également en 4.7 : la palette de commandes ne saute plus quand vous survolez la liste ou la faites défiler à la molette (#93).

v4.9

4.9 — Android ouvre votre vrai coffre.

Sous Android, le seul dossier librement lisible par SoloMD était un bac à sable sous /Android/data qu'aucun gestionnaire de fichiers n'atteint sur un téléphone non rooté — vous ne pouviez donc jamais pointer l'application vers votre vrai dossier de notes. La 4.9 ajoute l'accès à tous les fichiers : accordez-le une fois et Ouvrir un dossier vous laisse naviguer jusqu'à un vrai coffre n'importe où sur l'appareil (Documents, un dossier Syncthing / Dropbox, une carte SD) et modifier les fichiers sur place — sans copie dans le bac à sable. L'arborescence, la recherche, l'historique des versions et l'enregistrement fonctionnent tous sur vos vrais chemins (#148, #151).

Également en 4.9, une passe sur les bogues signalés. La fenêtre macOS se déplace de nouveau par sa barre de titre (#153) — l'appel de déplacement était silencieusement rejeté par une autorisation manquante depuis l'arrivée de la barre de titre unifiée ; le double-clic pour agrandir revient aussi. La boîte « Le fichier a changé sur le disque » n'interrompt plus la frappe sous Android (#148) — les enregistrements de l'application elle-même étaient pris pour des modifications externes parce qu'Android livre les événements de fichier avec plusieurs secondes de retard ; les changements sont désormais jugés à la date de modification du fichier. L'avis de mise à jour disponible ouvre maintenant la page de téléchargement de solomd.app (accessible en Chine continentale, avec le miroir Gitee) plutôt que GitHub (#154), et l'entrée de menu inopérante « Afficher dans le Finder » est masquée sur les téléphones.

4.8.11 — trois bogues signalés, corrigés. Android peut de nouveau ouvrir des fichiers (#148) : les fichiers transmis par un gestionnaire de fichiers, « Ouvrir avec » ou le sélecteur de l'application arrivent sous forme d'URI content:// qu'aucun appel système de fichiers ne peut lire — ils sont désormais importés dans le dossier SoloMD (en gardant le nom d'origine, ou en le tirant du premier titre du document) et s'ouvrent normalement, à l'image du flux de l'application Fichiers d'iOS. La synchronisation GitHub ne pousse plus vers main tout en tirant depuis master (#147) — un second appareil pouvait rester bloqué à jamais sans voir les envois du premier ; le pull normalise désormais la branche comme le fait le push, avec un repli pour les dépôts distants historiques en master seul. Et fermer un onglet renvoie à l'onglet voisin au lieu de sauter au premier de la liste (#149 — cause racine fournie par la personne qui l'a signalé, merci !).

4.8.10 — passe de confort. Ctrl+A sélectionne enfin tout le document dans l'éditeur en direct de Windows (il s'arrêtait au paragraphe courant), si bien que tout sélectionner → copier / supprimer / réécrire se comporte comme dans n'importe quel autre éditeur. Supprimer un fichier ou un dossier l'envoie désormais à la corbeille du système au lieu de l'effacer définitivement (#112), et des entrées isolées peuvent être retirées de la liste des fichiers récents. Un nouveau réglage « un seul saut de ligne = retour à la ligne » met d'accord l'aperçu, l'éditeur en direct de Windows et tous les exports (PDF, DOCX, Pandoc) sur le sens de la touche Entrée (#141). La taille et la famille de police s'appliquent désormais partout — blocs d'édition en direct, volet d'aperçu et mode lecture (#143). Changer d'onglet conserve votre curseur et votre position de défilement (#144), « ouvrir au démarrage en mode lecture » refonctionne avec la restauration d'onglets désactivée, les pages de réglages ne partagent plus une seule position de défilement, et le bouton de réécriture par IA de la barre d'outils fonctionne sous Windows (#126).

4.8.9 — l'ouverture de fichiers sous iOS, corrigée pour de bon. Ouvrir un fichier Markdown depuis l'application Fichiers, AirDrop ou une autre application n'échoue plus avec « No such file or directory » (#139) — la feuille de partage transmettait une URL file:// encodée en pourcentages qui n'était jamais décodée. Les fichiers récents survivent aux mises à jour (iOS déplace le conteneur de l'application à chaque mise à jour ; les chemins stockés sont réancrés automatiquement), Ouvrir un dossier ancre désormais l'espace de travail au dossier Documents de SoloMD, et la barre d'onglets défile d'un glissement. Également sur ordinateur : les aperçus SVG locaux restent visibles d'une fenêtre à l'autre (#142, merci @beihai23).

4.8.1 — correctifs. Rechercher et remplacer se retrouve de nouveau (une entrée dans la palette de commandes ; c'était toujours derrière Ctrl+F, #137). Cliquer sur un lien .md relatif dans un coffre WSL n'échoue plus avec « os error 3 » (#138). Un démarrage épinglé en mode lecture avec la restauration d'onglets désactivée n'ouvre plus une fenêtre vide (#128). L'icône d'application macOS est désormais un carré arrondi correct avec marge (#111). Et un jeton de synchronisation GitHub expiré ou révoqué vous invite maintenant à vous reconnecter au lieu de lever un 401 brut.

4.8.0hébergement d'images (图床). Collez, déposez ou choisissez une image et SoloMD peut désormais l'envoyer vers un hébergeur externe et insérer l'URL renvoyée — au lieu de seulement la copier dans un dossier local, comme Typora / MarkText. Cinq services : PicGo (serveur local), une commande personnalisée (PicGo-Core / uPic / n'importe quel script), SM.MS, compatible S3 (Aliyun OSS / Tencent COS / Cloudflare R2 / MinIO) et un dépôt GitHub + CDN. Plus « insérer une image depuis une URL » et une commande « envoyer toutes les images locales de cette note ». L'envoi automatique au collage se rabat sur une copie locale si l'hébergeur est injoignable. À configurer dans Réglages → Écriture.

4.7.4Retour arrière / Suppr sont de nouveau fiables dans l'éditeur Windows. Chaque paragraphe y est son propre champ de texte ; appuyer sur Retour arrière tout au début d'un bloc (ou sur Suppr tout à sa fin) heurtait donc le bord du champ et ne faisait rien — la suppression semblait aléatoire. Ces appuis aux frontières agissent désormais sur tout le document, joignant les paragraphes ou retirant la ligne vide comme dans un éditeur normal, le curseur et le focus suivant le mouvement.

4.7.3 — l'export PDF ne plante plus sur les thèmes ou contenus utilisant des fonctions de couleur CSS modernes (color(), oklch(), color-mix()), et un export échoué ne laisse plus la fenêtre figée ou zoomable (#115). De plus : la synchronisation du défilement en vue partagée refonctionne sous Windows — l'éditeur et l'aperçu avaient cessé de se suivre après la refonte de l'éditeur Windows en 4.7.

4.7.2 — l'arborescence reçoit une barre latérale redimensionnable (tirez le bord, 180–600 px), des icônes par type de fichier et une troncature par points de suspension au milieu pour les noms longs ; la barre de titre macOS ne chevauche plus la barre d'outils de l'application (#121). Plus un correctif d'export PDF : les paragraphes de texte et les éléments de liste ne sont plus coupés en deux aux sauts de page.

4.7.1 — l'aperçu en direct affiche désormais les listes à puces, les cases à cocher de tâches et les filets horizontaux (pas seulement les titres) sous macOS / Linux / iOS / Android ; le mode source est de nouveau vraiment brut (les titres ne sont plus agrandis quand l'aperçu en direct est désactivé). De plus : copier le chemin / le chemin relatif dans l'arborescence (#120) et un bouton fermer le dossier (#118), une colonne lisible via limiter la largeur de l'éditeur (#109), et le bouton d'ajustement à la largeur fonctionne désormais en mode lecture (#117).

v4.6

4.6 — la moitié graphe de connaissances, construite.

Une refonte complète du système de design et de la bibliothèque de composants Vue (surfaces neutres chaudes, accent orange #ff9f40) et une barre de titre macOS unifiée (les feux de circulation intégrés à la barre d'outils) — plus les sept fonctions structurelles qui étaient la seule chose qu'un éditeur de graphe de connaissances comme Tolaria faisait et que SoloMD ne faisait pas. Le tout sur le disque en simple .md / YAML. Aucun nouveau format de fichier.

Inspecteur de propriétés (⌘⇧I)

Un éditeur d'en-tête YAML dédié — sélecteurs de date, de relation, de statut et d'étiquettes — au lieu d'éditer le YAML à la main. Écrit directement dans l'en-tête de la note.

Barre latérale pilotée par les types

Les notes type:<Nom> deviennent des sections repliables à part entière de la barre latérale (les types comme lentilles), chacune avec son icône, sa couleur, son ordre et ses propriétés épinglées.

Relations typées

Champs d'en-tête belongs_to / related_to / has avec inverses automatiques — déclarez un côté, l'autre se résout tout seul.

Graphe de relations (« Voisinage »)

Un explorateur par note des relations sortantes et inverses — parcourez le graphe saut par saut depuis la note où vous vous trouvez.

Vues filtrées enregistrées

Des vues persistantes de la barre latérale stockées en .solomd/views/*.yml — filtrez par type, statut, date ou expression régulière, et elles restent d'un lancement à l'autre.

Flux boîte de réception

⌘E marque la note courante comme classée et passe automatiquement à la suivante — une vraie boucle « boîte à zéro » pour trier les notes capturées.

Tableaux blancs tldraw

Des tableaux adossés au Markdown via une clôture ```tldraw — durables dans le .md de la note, et compatibles avec le format de tableau sur disque de Tolaria.

Interface système de design + barre de titre unifiée

Une palette de surfaces neutres chaudes avec un accent orange #ff9f40, reconstruite sur une véritable bibliothèque de composants Vue, et une barre de titre macOS unifiée qui intègre les feux de circulation à la barre d'outils.

Cinq piliers

Chacun est dans le core, basculable dans les paramètres. Entièrement compatible avec vos notes existantes — pas de migration de DB, pas de nouveau format de fichier, pas de compte cloud forcé.

1 · Panneau Agent intégré

Panneau de première classe à droite, au même niveau qu'Outline / Backlinks / Tags / History. Chat-with-vault streamé via interface MCP intra-processus et stack AI 14-providers existant. Citations [[wikilink]] se résolvent en sauts de note réels ; chaque carte d'appel d'outil de l'agent se déplie dans le flux de conversation — vous voyez ce qui a été lu, ce qui a été écrit. Réponse trop longue ? Insérer et Copier déposent le paragraphe entier dans l'éditeur actuel — remplace la sélection si présente, sinon insère à la position du curseur. Historique d'exécution persiste comme markdown brut sous .solomd/agent-runs/, grep-able, git-trackable.

2 · Recipe Agent / exécution planifiée

Tâches d'agent déclaratives, fichiers YAML sous <workspace>/.solomd/agents/*.yml. Triggers : schedule (cron), on-save, on-commit, on-tag-add, manuel. Garde-fous non négociables : chaque exécution démarre sur sa propre branche AutoGit agent/<recipe>/<run-id>, toutes les écritures atterrissent uniquement sur la branche, passent par UI accept / reject avant le merge dans main ; write-cap par exécution (par défaut 5, plafond dur 50) empêche les boucles incontrôlées ; Reject hard-delete la branche, cette exécution est complètement invisible dans l'historique git. Livre 11 modèles de Recipe (rapport hebdomadaire, nettoyage de log, extraction TODO, traduction, nettoyage de citations, relecture CJK, …) — installer, modifier prompt, exécuter.

3 · Vue Trace Agent

Chaque exécution (que ce soit conversation Panel ou Recipe) génère trace.jsonl par étape : prompt / model_call / tool_call / tool_result / git_commit / done. Cartes d'étape se déplient pour montrer args, résultats, comptages de tokens, estimations de coût, références de branche AutoGit. Bouton Replay-from-step rembobine l'exécution à l'étape N, change l'entrée et réexécute depuis là — c'est l'entrée vers les recipes self-correcting. Nouvel outil MCP read_agent_trace(run_id) expose le trace à d'autres agents.

4 · Fédération MCP multi-vault

solomd-mcp --workspace path1 --workspace path2 --workspace path3 —— une session MCP, plusieurs vaults. Les signatures d'outil ont gagné un paramètre workspace optionnel, par défaut = premier passé (entièrement back-compat avec clients MCP single-vault). Branches AutoGit isolées par workspace. Paramètres → Intégrations a une UI de profil MCP : empaqueter plusieurs vaults nommés, copier snippet de config Claude Desktop en un clic.

5 · Ollama première classe

Nous n'empaquettons pas le runtime LLM local nous-mêmes —— Ollama le fait déjà bien. v4.0 a juste poli l'intégration : auto-détection sur localhost:11434 (Paramètres → IA a indicateur de statut vert), guidage installation en un clic si non installé, 3 presets de modèle intégrés (rewrite → qwen2.5:7b · quick → qwen2.5:1.5b · cjk → qwen2.5:14b), pull recommandé inline quand la liste de modèles est vide. Recipes peuvent spécifier provider: local (alias Ollama), pour des boucles d'automatisation sans coût cloud. Vos notes ne quittent jamais la machine —— via BYOK Ollama ça a toujours été vrai, v4.0 en fait une entrée découvrable.

🛡️ Garde-fous (ce que personne d'autre ne fait)

  • Sandbox de branche AutoGit. Chaque exécution de Recipe démarre sur sa propre branche. Avant que vous cliquiez Accepter, main ne bouge pas. Les exécutions Reject ne laissent rien —— branche supprimée, arbre de fichiers rembobiné.
  • Plafond d'écriture par exécution. Modèle veut écrire 50 fichiers quand cap est 5, à partir du 6e appel d'outil c'est rejeté. Pas d'état « semi-fini », pas de modifications massives accidentelles.
  • Refuse de démarrer quand le workspace est dirty. Vous avez des modifications non commitées, le trigger Recipe se déclenche, ça quitte avec erreur, votre WIP n'est pas balayé dans les commits d'agent.
  • Renforcement path-traversal. Interface d'outil intra-processus et toutes les commandes Tauri qui acceptent run_id / path fournis par l'utilisateur rejettent maintenant en amont les segments .. et chemins absolus. Au niveau du code, l'agent ne peut pas écrire en dehors du workspace.
  • Trace rejouable. Chaque étape atterrit ligne par ligne comme JSON sur disque. Comportement Panel suspect ? Suivre le trace, localiser l'étape mauvaise, modifier l'entrée, rejouer depuis l'étape N–1.

Barre qualité

  • Wizard de premier lancement. Les nouveaux utilisateurs voient le panneau Agent en moins de 60 secondes —— vous guide pour entrer la clé BYOK ou installer Ollama. Réouvrir depuis Aide plus tard.
  • Cookbook de Recipe (11 modèles starter). Paramètres → Recipes → Parcourir le cookbook. Rapport hebdomadaire, log quotidien, extraction TODO, passe de traduction, nettoyage de citations, agent de relecture CJK, détecteur de link rot, normaliseur de frontmatter, outline-to-blog, passe de refactor, triage hebdomadaire des tags. Installer, modifier prompt, exécuter.
  • API REST locale (écoute uniquement sur localhost, authentification par token). Même interface que MCP, pour les clients qui ne parlent pas encore MCP — Alfred / Raycast / n8n / vos propres scripts.
  • Compteur de coûts BYOK. Tokens dépensés cumulés par provider, opt-in. Paramètres → Intégrations.
  • Localisation. 9 langues UI couverture complète (en/zh/ja/ko/de/fr/es/pt/it). Cette release a ajouté 5 langues européennes — allemand, français, espagnol, portugais, italien — toutes avec la même parité de clés de dictionnaire qu'en/zh.

Polish UX ressenti dès le premier jour

  • Garde-IME partout. Pinyin chinois, mode kana japonais, hangul coréen — Enter pour confirmer les mots candidats ne déclenche plus par accident envoi de conversation / renommer file tree / exécution palette de commandes / ouverture recherche. Fix unique pour 7 panneaux d'entrée.
  • Boutons Insert / Copy pour les réponses Assistant. Deux boutons sous chaque réponse terminée. Insert est éditeur-sélection-aware (avec sélection remplace), sans sélection insère à la position du curseur. Copy est clipboard normal.
  • UX de démarrage macOS. Timing d'activation au démarrage corrigé —— SoloMD démarrage à froid arrive vraiment au premier plan, ne se cache plus derrière Finder. Restauration de position de fenêtre atterrit toujours dans le workspace de l'écran actuel ; restauration depuis mauvais cache après déconnexion d'écran secondaire se recentre automatiquement, au lieu d'ouvrir hors écran.
  • « Génération... » bloqué sans erreur. Corrigé. Erreur de configuration provider (par ex. Ollama avec modèle non pull) laissait le panneau pendre. Maintenant vous voyez une barre d'erreur rouge avec la réponse réelle du backend, le bouton envoi revient aussi.

Ce que v4.0 ne fait explicitement pas (et pourquoi)

Dire non est aussi une partie du produit. Ces choses ont été sérieusement considérées et explicitement non faites :

  • Apporter notre propre runtime LLM local. Ollama le fait déjà bien ; réinventer la roue viole le principe « écrire moins de code à maintenir durablement ». Provider BYOK reste le chemin.
  • Marketplace Recipe en ligne. Opération serveur + modération de contenu = déviation de la ligne principale. Cookbooks empaquetés directement dans les releases, mis à jour avec l'outil.
  • Multi-utilisateur / agent d'équipe. Viole « une fenêtre, un écrivain ». Ce produit est pour auteur unique ; la collaboration appartient à un autre produit.
  • Complétion ghost-text style Copilot. Positionnement de marque différent. Ghost-text dilue la voix de l'écrivain ; nos agents travaillent en unité de vault, les écritures sont batchées + examinables + branch-based.

Notes de mise à niveau

  • Aucun changement de format de fichier. .md existants, historique AutoGit, configuration sync, clés BYOK tous préservés tels quels.
  • Panneau Agent activé automatiquement au premier lancement. Les utilisateurs v3.6.x peuvent avoir un showAgentPanel: false caché dû au défaut du scaffold de la période v4-beta ; migration unique le bascule en true, vous voyez réellement la fonctionnalité phare. Si vous ne la voulez pas, vous pouvez la désactiver via ⌘⇧P → View: Toggle Agent Panel.
  • Le panneau Paramètres a deux nouveaux onglets Recipes et Compteur de coûts, sous Intégrations. Positions des paramètres existants inchangées.
  • Le serveur MCP (solomd-mcp) a gagné le nouveau paramètre --workspace (répétable). Les clients MCP single-workspace existants continuent de fonctionner ; le comportement de fédération est opt-in.

🔮 Et après

5 piliers principaux + barre qualité sont le contenu principal cette fois. Les directions ouvertes pour v4.x et au-delà sont toutes dans le roadmap : API de script sandboxée, CLI v2 (rewrite / commit / recherche sémantique / trigger Recipe dans le terminal), et la question toujours retardée « SoloMD devrait-il devenir un produit commercial ? » (sync payante — vieille question de l'ère v3.0, toujours sans réponse, jusqu'à ce que ce soit décidé, aucune ingénierie ne sera faite dans cette zone).

Merci à tous ceux qui pendant la période de silence ont soumis des issues / envoyé des PRs / fait tourner les builds v4-beta avec de vrais vaults. v4.0 a pu être livré parce que le dogfood a découvert les bugs que les tests d'intégration ont manqués. Versions précédentes : Voir le blog (en) →

Commentaires & retours

Les commentaires vivent sur GitHub Discussions — connectez-vous une fois avec votre compte GitHub.

Les commentaires se chargent depuis GitHub Discussions. Si vous voyez ce message à la place, le mainteneur n'a pas encore terminé la configuration unique giscus.app — voir web/COMMUNITY-SETUP.md.

Ouvrir sur GitHub Discussions →