docs(wiki): section Adaptive Chunking jamais confrontée au code en détail — trois erreurs
- Regex de détection de structure trop permissives par rapport au vrai
code. Le pattern "numbered" exige un point final et un titre en
majuscule de 2-50 caractères (AdaptiveChunker.ts:149), pas la version
laxiste affichée. Le pattern "uppercase" exige 6-51 caractères plus
un filtrage sur une liste de titres connus (ligne 168), pas un
simple {3,}.
- Interface DocumentChunk : un champ embedding?: number[] inventé —
les embeddings vivent dans la ligne de la base ou le vector store,
jamais sur cet objet en mémoire (backend/types/pdf-document.ts:57-66).
Les vrais champs startPosition/endPosition manquaient.
- Schéma SQLite : la table s'appelle pdf_chunks, pas chunks
(VectorStore.ts:104-113) ; colonnes metadata et created_at inventées,
absentes du vrai schéma ; start_position/end_position manquantes ;
noms d'index réels (idx_chunks_document_id, idx_chunks_page_number)
différents de ceux affichés.
45bdcc7
docs(wiki): venv Python répète l'erreur manuelle/automatique, diagramme de session clarifié
- Corpus Analysis Guide : « Installation automatique au premier usage »
pour l'environnement Python — même erreur déjà corrigée sur le guide
macOS (topic-modeling-handlers.ts:3 : gestion manuelle explicite),
jamais propagée ici.
- Journal and History : le diagramme « Structure » ne montre que des
échanges question/réponse, en tension avec la ligne « Total events »
juste en dessous qui précise (depuis la passe 4) que les opérations
de document, PDF et les décisions de proposition comptent aussi.
Légende ajoutée pour éviter la contradiction de lecture.
5b44f1e
docs(wiki): la vérification Ollama se déclenche à l'ouverture des Paramètres, pas au lancement
Les quatre pages d'installation/build répétaient la même inexactitude,
copiée telle quelle d'une page à l'autre : « au premier lancement,
ClioDeck vérifie la connexion Ollama ». Vérifié dans ConfigPanel.tsx —
le déclencheur réel est un useEffect qui se déclenche au montage du
panneau Paramètres (handleRefreshModels), pas au démarrage de
l'application. Un utilisateur qui n'ouvre jamais les Paramètres ne
déclenche jamais cette vérification. Confirmé qu'aucune vérification
équivalente n'existe au niveau du démarrage (App.tsx, main/index.ts).
0735169
docs(wiki): un troisième logger existe — celui réellement utilisé par le renderer
Quatre passes avaient déclaré cette page propre en vérifiant que
@shared/logger.ts se comporte bien comme décrit — vrai en isolation,
mais personne n'avait vérifié qui l'importe réellement. Résultat :
zéro fichier en dehors de logger.ts lui-même (grep sur tout src/ et
backend/). 100% des imports réels de logger côté renderer résolvent
vers un troisième fichier jamais documenté :
src/renderer/src/utils/logger.ts — API différente (log/info/debug
variadiques + canaux typés ipc/store/component/error), mécanisme de
suppression différent (strip par le bundler esbuild, pas les
variables d'environnement).
Toute la section « Centralized Logger (for Developers) » documentait
donc du code mort. Remplacée par la vraie API. Le filtre console
global (console-filter.ts) reste correctement décrit — c'est un
mécanisme séparé et bien réel, importé par main.tsx et main/index.ts.
Arbre d'architecture et vue d'ensemble mis à jour pour refléter les
trois mécanismes réels (filtre console, logger renderer, logger main
process) plutôt que les deux précédemment documentés.
eadd73b
docs(wiki): {content} n'est pas fiable pour un livre via le mécanisme placeholder
Vérifié dans word-export.ts : le manuscrit assemblé (chapitres joints)
est stocké dans une variable locale sourceMarkdown après un appel à
assembleManuscript(), mais mergeWithTemplate() reçoit content:
options.content tel quel (ligne 975) — la valeur d'origine, non
assemblée, envoyée vide par le renderer pour les livres
(validation.ts:569-570 le confirme). Le contenu assemblé n'alimente
que le chemin de génération native sans template. La table des
placeholders promettait « chapitres assemblés dans l'ordre » sans
cette réserve depuis la première rédaction de la page.
008e673
docs(wiki): lister les 15 langues OCR réellement supportées, pas juste six + et autres
3b5cad2
docs(wiki): documenter le mode local Zotero, jamais mentionné
Toute la page ne documentait que le mode API (User ID + clé API). Un
second mode existe pourtant, réglable via le même sélecteur dans les
paramètres Zotero : « Local database (reads zotero.sqlite) »
(ZoteroConfigSection.tsx, config.mode: 'api' | 'local') — entièrement
hors ligne, sans clé API, en pointant directement vers le dossier de
données Zotero (~/Zotero). zotero-service.ts confirme que les deux
modes sont interchangeables derrière la même interface
(IZoteroDataSource) : tout le reste du guide (import, sync, PDF)
s'applique aux deux de la même façon.
Section ajoutée après la configuration API, et note dans les
prérequis pour ne pas laisser croire que la clé API est obligatoire.
60ada5f
docs(wiki): champ TITRE mal décrit, diagnostic de note ignorée invérifiable
- TITRE : la page donnait le chemin relatif complet comme exemple
typique. En réalité (retrieval-service.ts : h.note.title ||
h.note.relativePath), le titre normal vient du frontmatter, du
premier H1, ou du nom de fichier nu (ObsidianMarkdownParser.ts) — le
chemin relatif n'est qu'un repli de dernier recours.
- « Consultez les logs de l'indexeur dans DevTools » pour savoir
pourquoi une note a été ignorée : aucun console.log dans tout le
dossier obsidian/, et le handler IPC ne renvoie que des compteurs
agrégés — aucune raison par note n'est exposée nulle part.
d7b0bed
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.
63d3bc5
docs(wiki): deux citations de fichier fausses et un extrait BibTeX qui sous-estime largement le vrai code
- Extraction PDF : le code cité (getDocument/getTextContent/getMetadata)
ne vit pas dans PDFIndexer.ts (646 lignes, zéro occurrence de ces
appels) mais dans PDFExtractor.ts — PDFIndexer.ts n'est qu'un
orchestrateur qui délègue.
- Zotero : les appels fetch() et les en-têtes cités (Zotero-API-Key,
api.zotero.org) ne sont pas dans zotero-service.ts (zéro fetch())
mais dans backend/integrations/zotero/ZoteroAPI.ts, jamais cité par
la page.
- BibTeX : le code montré était une fonction de 20 lignes à base d'une
seule regex. Le vrai parseur (BibTeXParser.ts) est une classe de
484 lignes ; aucune fonction parseBibTeX n'existe nulle part dans le
dépôt.
64a1911
docs(wiki): deux sections entières fabriquées — reprise de conversation et timeline calendaire
- « Resuming a conversation » décrivait une fonctionnalité qui n'existe
pas : ChatHistoryView.tsx est un rendu en lecture seule pur, sans
gestionnaire de clic ni mutation d'état. Recherche exhaustive de
resumeConversation/resumeSession/continueConversation/etc. dans tout
le renderer et le main : aucun résultat. Toute la sous-section
« Limits » décrivait les limites d'une fonctionnalité qui n'a pas
lieu d'en avoir, puisqu'elle n'existe pas.
- « Session timeline » décrivait une vue calendaire/heatmap avec survol,
clic pour filtrer par jour et zoom semaine/mois/année. Le vrai
composant (SessionTimeline.tsx, lu intégralement) est une simple
liste verticale d'événements au sein d'UNE session — aucun
agrégat par jour, aucun survol, aucun filtre, aucun zoom.
- Bullet « Context recovery: pick up an earlier conversation » en tête
de page retiré — contredisait directement la correction ci-dessus.
9ae5ea7
docs(wiki): nœud auteur désactivé en dur, libellé de bouton et action de dépannage inexistants
- « Auteur (si activé) » comme type de nœud du graphe : includeAuthorNodes
est câblé à false aux deux points d'appel (useCorpusData.ts:78,122) —
aucun moyen de l'activer depuis l'interface, contrairement à ce que
"(si activé)" laissait entendre.
- Libellé de bouton corrigé : « Analyser les topics », pas « Analyser
les thèmes » (common.json:705, fr et en).
- Dépannage : « Reconstruisez l'index (Paramètres → Base de données) »
— la section s'appelle Actions, pas Base de données, et surtout
aucune action de reconstruction n'existe : seule la purge complète
est disponible.
9565134
docs(wiki): retirer un message d'erreur fabriqué, corriger la table comparative des embeddings
- « Aucun LLM disponible » / « Aucun provider LLM disponible » cités
comme messages littéraux affichés à l'utilisateur — recherche
exhaustive dans backend/core/llm/, fusion-chat-service.ts,
chat-engine.ts et tous les fichiers de locale : aucune occurrence.
Le mécanisme décrit reste correct, seul le texte exact était inventé.
- Table comparative : « Embeddings | Ollama : Oui, réglable dans l'UI »
laissait entendre qu'on choisit Ollama comme provider d'embeddings
depuis l'UI. En réalité, aucun contrôle embeddingProvider n'existe
nulle part — ce qui existe (LLMConfigSection.tsx:316-317) est
ollamaEmbeddingModel, qui choisit quel modèle Ollama utiliser, pas si
Ollama est le provider.
58d7a64
docs(wiki): Features.md répétait l'erreur auto-sync et inventait deux actions de base de données
- Auto-sync Tropy : « propose une resynchronisation » — même erreur déjà
corrigée sur 1.6-Tropy-Integration-Guide.md, jamais propagée ici.
Le comportement réel est automatique et silencieux.
- « Purge, rebuild, and optimize project database » : seules deux
actions de purge existent (PDF, sources primaires) — aucune action
de reconstruction ni d'optimisation nulle part dans ActionsSection.tsx.
befd16b
docs(wiki): VectorStoreManager et ZoteroService n'existent pas comme dépendances directes
- Diagramme et table des dépendances : VectorStoreManager n'existe
nulle part dans le dépôt (grep sur tout le code, zéro résultat) — le
vrai chemin de recherche passe par pdfService.search(). ZoteroService
n'est jamais importé par similarity-service.ts ; le filtrage par
collection passe directement par collectionKeys de pdfService.
- « Insérer citation (format configurable) » : faux, SimilarityCard.tsx
a une logique figée ([@zoteroKey] ou titre tronqué), aucun réglage.
- Le type de progression réel (AnalysisProgress) a status/percentage/
currentSegment en plus de current/total — le schéma n'en gardait que
deux.
- « L'utilisateur rédige son article (document.md) » : le déclencheur
réel (SimilarityPanel.tsx) lit le contenu actif de l'éditeur, pas
spécifiquement un article — un chapitre de livre fonctionne pareil.
a6058cf
docs(wiki): la garantie « jamais perdre son export » ne couvre qu'un des deux mécanismes
Word Templates : « You'll never lose your export! » s'appliquait comme
si les deux mécanismes avaient un filet de sécurité. Faux — vérifié
dans word-export.ts : seul le mécanisme 2 (docxtemplater) a un
try/catch qui retombe sur la génération native. Le mécanisme 1
(pandoc + reference-doc) a son propre try/catch qui renvoie
{success: false, error} directement, sans repli — aucune relance côté
docx natif. Précisé.
Export-Presentations : la réserve ajoutée en passe 3 ne citait que 2
des 3 conditions du guide Word Templates (bibliographie absente OU
moteur de citation demandé) — il manquait « bibliographie présente
mais pandoc introuvable ». Reformulé pour renvoyer au guide plutôt que
de paraphraser une liste à trois conditions qui a déjà changé trois
fois sur l'autre page.
f03874c
docs(wiki): incohérence d'unités dans le coût environnemental, libellé d'onglets dans les notes RC2
- 4.1-Environmental-Cost : les deux méthodes déclarent un taux en gCO2e
pour 1000 tokens, puis étiquettent le résultat du même calcul en kg
CO2e sans conversion. Recalculé à la main : 2,34M tokens ×
0,0001-0,0003 gCO2e/1000 tokens donne 0,234-0,702 GRAMME, pas
kilogramme. Les totaux en aval et les équivalences en km parcourus
sont construits de façon cohérente autour de l'échelle kg —
impossible de deviner quel côté de l'incohérence était voulu sans
refaire l'estimation. Signalé en tête de page plutôt que recalculé
au hasard.
- 3.2-RC2-Release-Notes.md : libellés d'onglets MCP corrigés (« Claude
Code CLI », « Generic MCP (stdio) »), vérifiés jusque dans l'arbre
du tag v1.0.0-rc.2 lui-même — l'imprécision n'est pas due à une
dérive depuis RC2, elle était déjà là.
d05d6e4
docs(wiki): corriger la création du venv Python — pas automatique
Le guide macOS affirmait que le venv Python se crée automatiquement au
premier lancement. Faux — topic-modeling-handlers.ts:3 dit
explicitement « Gestion manuelle de l'installation et du statut de
l'environnement Python » ; TopicModelingSection.tsx est un panneau de
paramètres avec bouton d'installation et suivi de progression, une
action déclenchée par l'utilisateur. Contredisait par ailleurs le guide
Linux, qui avait la bonne formulation (« si l'utilisateur le demande,
dans Settings »).
56af5d4
docs(wiki): cinq erreurs supplémentaires dans l'architecture technique, un footer figé en bêta
Cette page continue de produire des erreurs à chaque passe — cinq de
plus trouvées et corrigées ici :
- Graph Expansion : décrite comme une fonctionnalité active (recherche
de voisins dans le graphe, expansion par similarité cosinus). Vérifié
qu'useGraphContext/graphSimilarityThreshold/additionalGraphDocs
n'ont aucun consommateur dans retrieval-service.ts ni
backend/core/rag/ — le réglage existe dans les types et l'UI, mais ne
fait rien. Documenté comme un manque connu, pas un comportement réel.
- Context Compression : les seuils sont en caractères, pas en tokens
(le commentaire du code le dit explicitement) ; les paliers étaient
faux — la vraie logique a un premier niveau « pas de compression »
(≤10 000 caractères) que la page ne mentionnait pas du tout, avant
Level 1 (15-25k), Level 2 (25-35k), Level 3 (>35k) — avec une zone
morte entre 10k et 15k où rien ne se passe.
- RAG Explanation : l'interface était entièrement inventée (forme plate
à 7 champs). La vraie interface (chat-source.ts) est imbriquée —
search/compression/graph — et ne partage aucun nom de champ avec la
version précédente de la page.
- Configuration de chunking : un champ maxTokens fabriqué apparaissait
à deux endroits de la page ; DocumentChunker.ts n'a que
maxChunkSize/overlapSize/minChunkSize, aucune limite de tokens dans
ce type.
- En-tête et pied de page « RAG Configuration Defaults » /
Version/Status figés sur 1.0.0-beta.2, jamais mis à jour malgré trois
passes de corrections sur cette même page. Les valeurs elles-mêmes
restaient exactes — seul l'habillage était périmé.
35dffb7
docs(wiki): quatre champs fabriqués dans Journal and History
- « Exchanges: nombre de questions/réponses » — le vrai champ affiché
est un compteur générique (eventCount), incrémenté aussi par les
opérations IA, les éditions de document et les décisions de
proposition (HistoryManager.ts).
- « Sources consulted » comme champ de session : n'existe pas à ce
niveau — les sources restent affichées par échange, pas agrégées
(JournalPanel.tsx ne contient aucune occurrence de "sources").
- « Model: quel LLM a répondu » par échange : ChatMessage
(journalStore.ts:41-48) n'a aucun champ model. Jamais stocké,
jamais affiché.
- « Exportable depuis sa propre fenêtre (Ctrl/Cmd+J) » : faux pour la
moitié UI — la fenêtre n'a aucun bouton d'export, seule la commande
cliodeck-journal export fonctionne réellement.
30fc591
docs(wiki): troisième passe — un indicateur d'UI fantôme et deux erreurs sur le corpus
- Embedded LLM Guide : la section « Indicateur de provider » décrivait
un badge affichant le provider actif dans le chat (Ollama (gemma2:2b),
qwen2.5-0.5b (embarqué), etc.). N'existe nulle part : aucune occurrence
de « Aucun LLM disponible » dans tout le renderer, ProviderState
jamais importé côté renderer, le seul état apparenté
(AssistantChat.tsx) sert uniquement à taguer le journal, jamais
affiché en JSX. Section retirée entièrement.
- Corpus Analysis Guide : bascule « Afficher les communautés » fabriquée
— CorpusGraphSection.tsx colore par communauté sans aucun réglage
pour l'activer/désactiver. Seuil de dépannage du topic modeling
corrigé : le plancher réellement imposé par le service est 5
documents (min_length=5, main.py), pas 20 — 20-30 reste une
recommandation de fiabilité, pas une limite technique.
381d149
docs(wiki): troisième passe — Obsidian et Tropy, encore, avec de nouvelles erreurs
Ces deux pages ont produit des erreurs distinctes à chacune des trois
passes — signe qu'elles avaient été rédigées sans confrontation
systématique au code dès le départ.
Obsidian Vault Guide :
- « champ frontmatter connu pour être ignorable » : fabriqué. Le vrai
SkipReason (scan-report.ts:24-32) a huit variantes structurelles
(fichier caché, note vide, contenu binaire, erreur de parsing
frontmatter, trop volumineux, exclu par motif, illisible, wikilinks
cassés) — aucun réglage utilisateur n'existe pour exclure une note.
- Tableau des combinaisons de filtres de récupération : la combinaison
« Biblio + Primary sans notes » manquait, vérifiée dans
resolveRetrievalArgs (fusion-chat-service.ts).
- Libellé du bouton corrigé (« Link a vault… », pas « Link vault »).
Tropy Integration Guide :
- Ordre de priorité des transcriptions inversé : la page plaçait l'OCR
avant Transkribus, mais TropySync.ts:235-279 cherche Transkribus en
second (avant l'OCR, qui n'est tenté qu'en dernier recours).
- Section « Surveillance automatique » entièrement fabriquée : la page
décrivait une notification proposant la resynchronisation. Vérifié
dans tropy-service.ts et primarySourcesStore.ts — la resynchronisation
est automatique et silencieuse, sans aucune alerte affichée ; une
erreur du watcher n'a même aucun relais côté interface aujourd'hui.
8b0573b
docs(wiki): troisième passe — interfaces TypeScript périmées et une erreur laissée par ma propre passe 1
- FEATURE_SIMILARITY_FINDER.md : TextSegment, PDFRecommendation et
SimilarityResult n'avaient jamais été recroisés avec le code réel
(similarity-service.ts:34-66) depuis la rédaction initiale de la
page — sept champs manquants sur PDFRecommendation (pageNumber,
sourceType, sourceId, archive, collection, date, tags), title
manquant sur TextSegment, segment manquant sur SimilarityResult.
Forme du store Zustand corrigée (un SimilarityResult par segment,
pas un tableau — similarityStore.ts:71). « EditorToolbar » n'est pas
un composant nommé, le bouton vit dans EditorPanel.tsx.
- Comportement du reranking jamais documenté : plafonné aux 10
premiers candidats quel que soit maxResults, et surtout — ma propre
affirmation de la passe 1 (« échoue bruyamment si aucun provider »)
était fausse : l'échec est intercepté et journalisé en warning
seulement, jamais remonté à l'utilisateur, avec repli silencieux sur
l'ordre d'origine. La réserve sur les scores de rang (passe 2) ne
s'applique donc que si le reranking réussit.
- Features.md : « Separate Stores: Independent databases for PDFs and
primary sources » — même erreur de pré-fusion déjà corrigée à cinq
endroits, ratée ici car cette section n'avait jamais été touchée.
e521c6c
docs(wiki): troisième passe — contradiction laissée par ma propre réécriture, et une recommandation de la deuxième passe jamais appliquée
- Word Templates : la section « Creating a Template with Placeholders »
renvoyait encore à une « route 3 » — numérotation à trois routes que
ma propre réécriture de la deuxième passe avait pourtant remplacée
par deux mécanismes. La phrase contredisait donc l'aperçu corrigé
quatre lignes au-dessus. Reformulée pour dire explicitement à quel
mécanisme la section s'applique.
- Même page : « premier trouvé, ordre alphabétique » pour plusieurs
templates .dotx — faux, findTemplate() utilise fs.readdir() sans
aucun tri, l'ordre dépend du système de fichiers. Libellé du bouton
corrigé aussi (« Export to Word », pas « Export Word (.docx) »).
- Keyboard Shortcuts : Ctrl/Cmd+R et Ctrl/Cmd+Shift+R (reload/force
reload) existent réellement dans menu.ts mais n'étaient documentés
nulle part — un raccourci standard d'Electron, facile à déclencher
par erreur en écrivant, avec un effet réel (recharge la fenêtre).
- Export-Presentations : la deuxième passe avait explicitement
recommandé d'ajouter une réserve ici (« styles ou placeholders selon
la bibliographie ») après avoir corrigé le guide Word Templates —
recommandation jamais appliquée. Faite maintenant.
d9b9857
docs(wiki): corriger une inexactitude historique dans les notes RC2
La section « Workspace layout changes » présentait vectors.db et
primary-sources.db comme encore séparés de brain.db au moment de la
RC2, avec une consolidation renvoyée à plus tard (Path A / ADR 0001).
Faux même comme histoire, pas seulement périmé : les deux fusions
(a1ca0cb, 07741ab) datent du 12 mai 2026, cinq jours avant le tag
v1.0.0-rc.2 (17 mai) — confirmé par git log et
merge-base --is-ancestor. brain.db consolidait déjà PDFs, Tropy et
historique au moment de cette release.
7d5f649
docs(wiki): troisième passe — deux pages n'avaient pas été recroisées avec le correctif de l'issue #18
- 1.-ClioDeck-Installation.md affirmait pouvoir télécharger le modèle
d'embeddings embarqué depuis Settings → LLM — contredit directement
la correction apportée à 1.7-Embedded-LLM-Guide.md lors de la
deuxième passe (aucune UI n'expose embeddingProvider, voir issue #18).
La page n'avait simplement pas été recroisée avec ce correctif.
- 2.1-Build-and-Deployment-Guide.md contenait deux contradictions
internes au même document :
- L'arborescence « Build Structure » listait encore des noms de
fichiers 1.0.0 sans suffixe et un ClioDeck Setup 1.0.0.exe, à 40
lignes de la section « User Installation » déjà corrigée qui dit
l'inverse (arm64 uniquement pour Linux, aucune build Windows
publiée).
- « Security and Privacy → Local Data » disait encore « LLM and
models: local Ollama », contredisant la section Technical Stack en
haut de la même page, déjà réécrite en deuxième passe pour décrire
les six providers.
Les deux corrigées ; au passage, CLIODESK_DEBUG/CLIODESK_LOG_LEVEL
ajoutées à la liste des variables d'environnement runtime, absentes
alors que la page renvoie vers le guide de logging qui les documente.
8f45fc7
docs(wiki): fix last stale vectors.db reference in Zotero guide
2cb136a
docs(wiki): retirer 4 pages d'archive orphelines, découvertes par la relecture
Ni la première ni la seconde passe d'audit n'avaient repéré le dossier
_archive/ : les deux passes n'énuméraient que les *.md à la racine du
wiki, un dossier git-suivi mais jamais listé. Sur les six fichiers qu'il
contient, deux restent légitimement liés (Home.md, RC2 notes) et
honnêtement présentés comme archive historique — conservés. Les quatre
autres (BETA2_NOT_IMPLEMENTED.md, BETA3_IMPLEMENTATION_SUMMARY.md,
Changelog.md, FEATURE_STATUS_BETA2_BACKLOG.md) n'ont aucun lien entrant
depuis nulle part dans le wiki — vérifié par grep sur l'ensemble des
pages. Purs journaux d'implémentation de l'ère BETA (janvier 2024 à
2026), sans aucun chemin de découverte : même critère que les 9 pages
FEATURE_* déjà supprimées lors de la première passe.
50fff95
docs(wiki): deuxième passe — Features.md, Home.md, RC3, Similarity Finder
- RC3 notes : « Branch: release/v1.0.0-rc.3 » — cette branche a été
fusionnée puis supprimée du remote, comme son équivalent déjà corrigé
sur la page RC2. Remplacé par « Tag: v1.0.0-rc.3 ».
- Features.md : trois chiffres/faits faux, vérifiés frais.
- Modèle Ollama par défaut annoncé gemma2:2b ; le vrai défaut du code
est llama3.2 (cliodeck-config-adapter.ts:138,240), gemma2:2b n'est
qu'une recommandation.
- Cache d'embeddings de requête : 500 entrées/60min annoncées, contre
2000/10min réels (retrieval-service.ts:68).
- Liste des providers cloud incomplète (Claude/OpenAI seulement) —
Mistral et Gemini sont deux providers de premier rang au même
titre, absents de la liste.
- Pointeur mort vers « les fichiers de documentation de chaque
fonctionnalité » : 7 des 8 pages FEATURE_* ont été supprimées cette
session, remplacé par un renvoi vers Home.md et la seule page
restante.
- Home.md : la section « Feature notes » ne contenait plus qu'une seule
entrée après les suppressions — repliée dans « Working with the
corpus », à côté du guide qu'elle complète.
- FEATURE_SIMILARITY_FINDER.md : deux imprécisions supplémentaires.
- Le cache est verrouillé au niveau du document entier (hash document
+ hash vectorstore + options), pas segment par segment comme le
schéma le suggérait ; expire aussi après 24h et se réinvalide sur
changement de granularity/maxResults/similarityThreshold — aucun
des deux n'était documenté.
- La section d'interprétation des scores (>0.8 / 0.5-0.8 / <0.5)
ne s'applique qu'avec useReranking désactivé. Par défaut (activé),
rerankWithLLM remplace le score par un rang synthétique
(1.0/0.8/0.6/0.4/0.2 pour 5 candidats) — vérifié
similarity-service.ts:754. Le nombre affiché par défaut n'est donc
pas une similarité sémantique.
93b4dbc
docs(wiki): deuxième passe — corriger une erreur dans ma propre réécriture, et un vrai manque d'UI
**Erreur dans ma propre correction précédente** :
- Guide des LLM embarqués : j'avais écrit que embeddingProvider se
règle « dans Paramètres → LLM » au même titre que generationProvider.
Faux — vérifié frais : grep sur tout src/renderer/ pour
"embeddingProvider" ne retourne aucun fichier ; RAGSettingsPanel.tsx
n'écrit jamais que generationProvider ; EmbeddedLLMSection.tsx ne
contient aucune occurrence du mot "embedding". Le moteur sait faire
des embeddings embarqués, mais rien dans l'interface ne permet de
les sélectionner ou de télécharger le modèle — seule l'édition
manuelle du fichier de configuration le permet aujourd'hui. Corrigé
à quatre endroits de la page, et signalé comme un vrai manque produit
en issue #18 (https://github.com/cliodeck/cliodeck-app/issues/18),
pas seulement un défaut de documentation.
**Erreur dans ma réécriture du guide Word Templates** : le découpage en
trois routes d'export était faux. Vérifié frais dans word-export.ts —
mergeWithTemplate() (fusion par {placeholders}) ne dépend que de
templatePath, pas du tout de useEnginePipeline. Il n'y a que deux
mécanismes réels : pandoc+reference-doc (styles, uniquement si
bibliographie + pandoc + moteur de citation non demandé), et
native+docxtemplater (placeholders, dans tous les autres cas — y
compris bibliographie + moteur de citation demandé, que ma première
version traitait à tort comme une troisième route « à base de styles »).
**Erreurs ratées par la première passe** :
- Corpus Analysis Guide : langue par défaut du topic modeling annoncée
« Français », en réalité « multilingual » (main.py:54-56,
useCorpusData.ts:145).
- Journal and History : une « icône History dans le panneau de chat »
fabriquée — AssistantChat.tsx n'a aucune référence à l'historique ;
le vrai composant de navigation (ChatHistoryView.tsx) ne vit que dans
le panneau Journal. Reformulé pour dire que c'est la même donnée,
pas une fonctionnalité séparée.
- Technical Architecture : la section Primary Sources (Tropy) décrivait
encore un vector store autonome (sources.db/sources.hnsw) alors que
PrimarySourcesVectorStore utilise le brain.db partagé depuis la
fusion — contradiction interne avec la section Key Architecture Files
déjà corrigée sur cette même page. L'étape « Dense Search » appelait
encore ollamaClient.generateEmbedding(), contredisant l'étape
Embedding Generation juste au-dessus, déjà corrigée elle aussi.
- Obsidian Vault Guide : « alongside the other workspace databases
(vectors.db, primary-sources.db) » — ces deux noms sont pré-fusion,
le vrai voisin est brain.db.
bd60d7e