✨ Essayez notre plateforme d'écriture de romans IA → StoryAlter.com
#MD SoloMD

v4.0.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.

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 →