docs(wiki): RC4 — notes de version, et 23 defauts documentes qui n'existent plus
Le wiki citait 23 issues comme ouvertes. Toutes sont fermees : chaque
« voir issue #N » decrivait donc un defaut corrige, et le wiki decrivait
une application qui n'existe plus.
Nouvelles notes de version (3.4), sur le modele des RC3 : orientees
utilisateur, ordonnees par ce qu'on perdait ou voyait de faux plutot que
par famille technique. La section 1 s'ouvre sur les deux defauts qui
retiraient du texte d'un livre exporte, parce que c'est ce qu'un auteur
doit lire en premier.
Dix-huit pages corrigees. Le plus souvent, un long paragraphe decrivant un
bug verifie dans le code est remplace par sa resolution — d'ou un diff qui
retire plus de lignes qu'il n'en ajoute. Les affirmations les plus
trompeuses etaient :
- les reglages d'ouvrage « n'ont aucune UI » (ils en ont une depuis la RC4)
- l'export Word d'un livre cite « sort vide » (corrige)
- le corpus manuscrit sans interface (elle existe)
- le compresseur de contexte « jamais appele » (cable, et ses trois
distorsions corrigees)
- `embeddingProvider` sans controle (section Embeddings)
- le filtre par collection absent, le bouton OCR manuel injoignable, le
toggle des noeuds auteurs desactive en dur
Home annonce la RC4 ; Features passe en 1.0.0-rc.4 et gagne deux sections
— corpus manuscrit et accessibilite — qui n'avaient nulle part ou vivre.
Les limitations connues des notes RC4 sont argumentees, pas subies :
pdfjs-dist renvoie a #77, et le mode de detection seule de l'inspecteur
explique pourquoi une source primaire contenant des imperatifs ne doit pas
etre tronquee.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs(wiki): seizième passe — changer de projet peut perdre des frappes non sauvegardées ou faire planter l'indexation PDF en cours
Poursuite de la chasse « que se passe-t-il si on change de projet
pendant une opération en cours », déjà fructueuse en passe 15 (issues
#33/#34/#35). Trois nouveaux bugs applicatifs réels trouvés et filés
cette passe, chacun dans un mécanisme différent qui n'avait pas encore
été soumis à cet angle :
- issue #37 (le plus impactant pour l'utilisateur) : changer de projet
ClioDeck avec des modifications non sauvegardées dans l'éditeur les
perd silencieusement, sans aucun avertissement. Le garde-fou qui
protège déjà la bascule de chapitre (loadFile() vérifie isDirty et
sauvegarde avant de continuer) n'a pas d'équivalent au niveau du
changement de projet (loadProject() n'a aucune vérification de ce
type). C'est exactement la même classe de bug déjà corrigée une fois
à l'échelon du chapitre, réintroduite un niveau au-dessus.
- issue #38 : l'indexation d'un PDF peut planter si l'on change de
projet pendant qu'elle tourne encore — pdf-service.ts ferme
inconditionnellement le vectorStore de l'ancien projet dès le début
de init(), sans vérifier qu'une indexation est encore en cours. Pas
de corruption inter-projets ici (le PdfIndexer garde sa bonne
référence), mais l'écriture finale échoue contre une base fermée —
d'autant plus atteignable que l'extraction PDF isolée (documentée en
passe 14) peut prendre jusqu'à 120 secondes.
- issue #39 : l'entrée de journal d'audit d'un appel d'outil MCP peut
être attribuée au mauvais projet après un changement — même famille
et même sévérité que l'issue #35, aucun résultat d'outil n'est
affecté, seule la traçabilité de l'audit peut se tromper de projet.
Confirmé aussi qu'exactement le même défaut existe une seconde fois
dans le gestionnaire zotero:apply-updates — couvert par l'issue #33
existante plutôt que filé séparément, le correctif étant identique.
Autres corrections :
- RC3 Release Notes : nouvelle sous-section listant les bugs
significatifs découverts depuis la sortie (#27, #30, #32, #33),
confirmés présents dès le tag v1.0.0-rc.3 lui-même.
- Logging System : incohérence interne trouvée sur une relecture
complète de bout en bout — le schéma d'architecture étiquetait
encore console-filter.ts « (live) » sans conditions, alors que le
texte détaillé explique depuis plusieurs passes que le filtre
renderer n'est en réalité jamais actif.
- Features.md : le filtrage par tags multiples est en réalité en OR
(n'importe quel tag sélectionné), pas en AND comme un utilisateur
pourrait raisonnablement s'y attendre, et il n'existe aucun bouton
pour changer de mode — précision ajoutée.
Audit d'intégrité, à l'échelle du wiki entier : les 39 issues filées à
ce jour ont été vérifiées une à une (numéro, état, titre) contre GitHub
depuis chaque page qui les cite — aucune référence périmée, fermée ou
renumérotée trouvée.
Cluster install & build entièrement propre cette passe (aucune
correction), converge après plusieurs passes consécutives sans
trouvaille nouvelle.
docs(wiki): treizième passe — embeddingProvider toujours sans UI (contradiction avec #18), variable d'environnement Wayland inexistante
Aucun nouveau bug applicatif filé — uniquement des corrections de
documentation, dont deux contradictions inter-pages qui avaient
survécu 12 passes précédentes :
- Technical Architecture : affirmait que embeddingProvider est
sélectionnable depuis Settings → LLM au même titre que
generationProvider — faux, aucune UI n'existe pour ce réglage
(contredit directement l'issue #18 et le propre texte du guide LLM
embarqué). Corrigé, et documentation du garde-fou réel découvert au
passage : le repli automatique Ollama→embarqué pour les embeddings
ne s'active que si les deux modèles partagent la même dimension de
vecteur, sinon échec volontaire plutôt que corruption silencieuse
de la recherche par similarité.
- Export Presentations : les réglages de style de notes/bibliographie
du livre étaient présentés sans réserve alors qu'ils sont
entièrement figés (issue #24, documentée ailleurs mais pas liée
ici) — lien ajouté.
Autres corrections :
- Installation Linux : `ELECTRON_NO_SANDBOX` n'est pas une variable
d'environnement Electron réelle — le vrai nom est
`ELECTRON_DISABLE_SANDBOX` ; commande de suppression de
~/.local/share/cliodeck retirée (l'app n'y écrit jamais, chemin
Electron par défaut confirmé).
- MCP Integration Guide : la nouvelle bannière de retry MCP a été
qualifiée à tort de « silencieuse » — la transition par l'état
`degraded` est en fait visible en temps réel dans l'UI (même code
couleur que `failed`) ; seule la tentative elle-même est
automatique, pas son affichage.
- Zotero Integration Guide : documentation d'un comportement réel non
documenté jusqu'ici — le mode local copie zotero.sqlite (+ le WAL)
dans un fichier temporaire en lecture seule, donc sûr même avec
Zotero ouvert en parallèle.
Deux clusters entièrement propres cette passe (aucune correction) :
meta & notes de version (méthode de vérification contre les tags git
appliquée à un nouvel échantillon, tout confirmé), feature pages &
home (balayage complet contre les issues #16-#28, rien trouvé).
docs(wiki): onzième passe — Unlink Obsidian écrase brain.db, compression de contexte jamais câblée
Deux bugs applicatifs sérieux trouvés et filés cette passe, en changeant
de méthode sur le cluster brainstorm/intégrations (deux passes propres
consécutives, donc recherche de contradictions inter-pages et de
collisions sur des ressources partagées plutôt que répéter les mêmes
vérifications) :
- issue #27 : le bouton « Unlink » d'un carnet Obsidian supprime le
fichier .cliodeck/brain.db tout entier via fs.unlink, pas seulement
l'index du carnet — obsidianStorePath() pointe vers le même fichier
partagé que les vecteurs PDF, l'index Tropy et le journal de
recherche depuis la consolidation. Documenté dans
1.14-Obsidian-Vault-Guide.md.
- issue #28 : le système de compression de contexte RAG
(ContextCompressor.ts) n'est appelé nulle part dans le vrai chemin de
requête — retrieval-service.ts ne renseigne jamais le champ
`compression` que chat-engine.ts vérifie en aval. Tout contexte
récupéré part vers le LLM sans compression, quelle que soit sa
taille. Documenté dans 2.-Technical-Architecture.md (section
renommée « declared but dead »).
Autres corrections :
- Brainstorm Mode Guide + MCP Integration Guide : une vraie UI de
bascule par outil existe désormais (bannière MCP, classification
lecture/écriture avec opt-in explicite pour les outils d'écriture) —
la note « UI minimale » était périmée, remplacée par une section
complète.
- Keyboard Shortcuts : nuances plateforme sur F11 (plein écran) et F12
(DevTools) sur macOS, même classe de lacune que Cmd+W (passe 10).
- Logging System : dernière formulation trop large sur les DevTools et
les variables d'environnement corrigée (seul CLIODESK_DEBUG/DEBUG
ouvre les DevTools, pas CLIODESK_LOG_LEVEL ; les logs renderer
révélés n'existent de toute façon plus dans le bundle de production).
- RC2 Release Notes : le « problème connu » sur l'étape export des
recipes était factuellement faux (document_id était déjà honoré à ce
tag) — remplacé par la vraie limitation de l'époque (projectType
'article' figé), corrigée avant RC3.
- Features.md : tableau de bord statistiques a 5 onglets, pas 4 (onglet
Tags manquant).
- Installation Linux : bibliothèques système manquantes dans le
résumé (libsecret-1, libgbm) alors que présentes dans la commande
d'installation réelle.
- Build and Deployment Guide : build:all ne construit que pour la
plateforme hôte, pas toutes les plateformes ; stockage des clés API
documenté avec son repli en clair non signalé ailleurs quand le
chiffrement OS n'est pas disponible.
docs(wiki): num_ctx ne concerne que les embeddings, en-têtes MCP désynchronisés des onglets réels
- Brainstorm guide : « Adjust num_ctx in Settings → LLM » pour les
fenêtres de contexte de génération — le seul réglage num_ctx qui
existe (ollamaEmbeddingNumCtx, LLMConfigSection.tsx:358-362)
concerne les requêtes d'embedding Ollama, pas la génération. Aucun
contrôle de fenêtre de contexte pour la génération n'existe dans
l'UI aujourd'hui.
- MCP guide : les en-têtes de section (« Claude Code », « Generic
stdio client ») ne correspondaient plus aux libellés d'onglets
réels déjà corrigés ailleurs sur la même page (« Claude Code CLI »,
« Generic MCP (stdio) », common.json:1413,1415).
docs(wiki): mauvaise caractérisation d'Explore, contradiction interne sur le journal d'accès MCP
- Brainstorm guide : décrivait Explore comme les « panneaux de corpus :
bibliographie, archives, vault ». Faux — ExplorePanel.tsx a trois
onglets (Corpus Explorer, Similarity, Textometrics) ; bibliographie
et sources primaires vivent dans la barre latérale gauche, le vault
Obsidian se configure dans Settings. Cette phrase d'ouverture avait
survécu à deux passes « clean ».
- MCP Integration Guide : la page se contredisait elle-même à 90 lignes
d'écart — une section dit qu'un visualiseur dédié du journal d'accès
est « sur la feuille de route RC3 » (donc absent), une autre
affirme qu'il est déjà « agrégé dans le panneau Sécurité ». Vérifié :
aucune référence à mcp-access/MCPAccessEvent dans tout le renderer —
la seconde affirmation était fabriquée.
docs(wiki): deuxième passe — corriger vectors.db, une régression de numérotation, et deux erreurs de sécurité factuelle
Cette repasse adversariale a trouvé des erreurs que la première n'avait
pas vues, y compris deux que j'ai moi-même introduites en corrigeant
autre chose.
**Régression introduite par mes propres corrections précédentes** :
- Les arborescences de projet réécrites dans les guides Linux/macOS
citaient `vectors.db` comme fichier d'index PDF. Vérifié frais contre
backend/core/workspace/layout.ts:67 — le nom réel est `brain.db`,
store partagé (PDF + Tropy + historique) depuis la fusion. `vectors.db`
n'est qu'un nom pré-fusion, uniquement pertinent pour la migration
d'anciens projets. Corrigé dans 1.-ClioDeck-Installation.md,
1.1-Linux, 1.2-macOS, et 2.1-Build-and-Deployment-Guide.md (cette
dernière portait la même erreur, présente avant mes modifications).
- Numérotation cassée dans « Option B: Installation from Source »
(Linux et macOS) : la suppression d'une étape lors de ma correction
precedente avait laissé un saut 3 → 5 sans renuméroter. Corrigé dans
les deux fichiers.
**Erreurs à impact utilisateur réel, ratées par la première passe** :
- Obsidian Vault Guide : la page affirmait qu'« Unlink » laisse l'index
en place et qu'un re-lien le réutilise. Vérifié contre
fusion-handlers.ts:619-631 — le handler fait `fs.unlink(dbPath)`,
l'index est bien supprimé ; se relier déclenche une reconstruction
complète. Un utilisateur suivant l'ancienne description perdrait du
temps à croire son index intact. Champ TITLE → TITRE corrigé au
passage (vérifié fusion-chat-service.ts:838).
- Tropy Integration Guide : un raccourci clavier Ctrl+Shift+S pour la
synchronisation n'existe nulle part (grep sur menu.ts et les
composants PrimarySources, aucune occurrence) — retiré. La page
décrivait aussi les embeddings comme figés sur nomic-embed-text ;
tropy-service.ts:98 utilise le provider configuré, comme partout
ailleurs dans l'app. Chemins de stockage corrigés vers brain.db +
primary-hnsw.index (vérifiés dans PrimarySourcesVectorStore.ts:125-126).
- MCP Integration Guide : la troncature des réponses (4000 caractères,
2000 pour Gallica/HAL) n'était pas documentée alors qu'elle est
visible dans les réglages de l'app elle-même ; ajoutée. Libellés des
onglets alignés sur l'UI réelle (« Claude Code CLI », « Generic MCP
(stdio) »).
Build-and-Deployment-Guide.md : la section « User Installation » citait
encore des noms de fichiers 1.0.0 sans suffixe arm64, alors que les
guides Linux/macOS avaient déjà été corrigés dans le même sens la
première fois — incohérence entre pages, maintenant alignée.
docs: RC2 wiki — Brainstorm, MCP, Archives, Obsidian + Home rewrite
Rewrites Home.md (was almost empty) as a navigable TOC and adds four new
user guides covering the features introduced by the ClioBrain fusion and
the surrounding RC2 work:
- 1.11 Brainstorm Mode — the chat mode that absorbed ClioBrain (agent
loop, `.cliohints`, source grounding, retrieval scope toggles).
- 1.12 MCP Integration — both directions: MCP clients consumed from
ClioDeck, and ClioDeck's own MCP server exposed to Claude Desktop /
Claude Code. Includes ready-to-paste snippets and the 9-tool catalog.
- 1.13 Archive Connectors — Gallica, HAL, Europeana. API key flow for
Europeana (Electron safeStorage).
- 1.14 Obsidian Vault — pointing the app at a vault folder, indexing,
use as a RAG source.
Plus 3.2 RC2 Release Notes, and the pre-RC2 release artefacts move to
`_archive/` (BETA 2 notes and the v1.0 implementation plan).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>