docs: Linux x86_64 est publie, la documentation le disait encore impossible
Les binaires x86_64 sont desormais attaches a la rc.4. Toute la
documentation affirmait « arm64 only — build from source on x86_64 »,
ce qui envoyait un utilisateur de PC compiler l'application pour rien.
Les guides donnent la substitution (`-x86_64` -> `-arm64`) plutot qu'une
seconde serie d'URLs : deux jeux de commandes a maintenir, c'est un jeu
qui finira perime. Ils commencent par `uname -m`, parce que le mauvais
fichier se telecharge parfaitement avant de refuser de demarrer — panne
d'autant plus deroutante que rien n'a echoue.
Le guide de construction gagne la raison du piege, qui n'etait ecrite
nulle part : electron-builder n'inscrit l'architecture dans le nom que
lorsqu'elle n'est pas x64, et la cible `linux` de package.json n'en
declare aucune, donc elle herite de la machine de build. C'est ainsi
qu'un Mac a produit des binaires arm64 dont le nom ne disait rien. D'ou
la consigne : lire l'en-tete ELF, jamais le nom du fichier.
Les tailles sont remesurees sur les six assets publies, avec l'ecart
x86_64 explique — `node-llama-cpp` embarque CUDA et Vulkan sur cette
architecture seulement. C'est un arbitrage, pas un defaut : ces
binaires servent a qui a une carte NVIDIA, et pesent pour les autres.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs(wiki): commandes d'installation reparees — les noms d'assets ont change en rc.4
Les guides donnaient des commandes `wget` avec les URL de rc.3. Bumper le
seul numero de version ne suffisait pas : les fichiers publies portent
desormais un prefixe de plateforme (`Linux.AppImage.-.`, `Mac.Silicon.-.`),
si bien qu'une URL construite a l'ancienne rend un 404. C'est exactement ce
sur quoi un nouvel utilisateur bute, et rien dans la page ne le lui dirait.
Les trois URL de telechargement du wiki sont verifiees : elles repondent en
200. Un commentaire dans chaque bloc explique le prefixe, pour que la
prochaine mise a jour ne refasse pas l'erreur.
Tailles d'installeurs mesurees sur les fichiers reellement publies, plutot
que reconduites : 262 Mo (AppImage), 158 Mo (deb), 263 et 268 Mo (DMG
Silicon et Intel).
En-tetes `**Version**` des neuf pages concernees passes en 1.0.0-rc.4.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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): dixième passe — Cmd+W non lié sur macOS, filtre console inerte en renderer, chunking mal attribué
- Keyboard Shortcuts : Cmd+W n'est pas réellement lié sur macOS (le
sous-menu Window n'inclut le rôle 'close' que sur Windows/Linux) —
corrigé et lié à l'issue #26 nouvellement créée.
- Build and Deployment Guide + Logging System : CLIODESK_DEBUG et
CLIODESK_LOG_LEVEL ne peuvent avoir d'effet observable que dans le
process principal — la fenêtre renderer est créée avec
contextIsolation/sandbox (sans condition dev/prod), donc son
`typeof process` est toujours undefined et les branches basées sur
ces variables d'environnement ne peuvent jamais s'exécuter côté
renderer, indépendamment de esbuild qui supprime déjà les appels
console.* en production.
- Technical Architecture : le chunking "emergency" par découpage de
phrases était attribué à Ollama, mais appartient en réalité au
provider LLM embarqué (EmbeddedLLMClient.ts, seuil de 2000
caractères) — Ollama gère les dépassements par troncature côté
serveur (`truncate: true`), l'inverse de ce qui était décrit.
- Installation Linux : alignée sur macOS pour la note sur le venv
Python (pas de création automatique, étape manuelle).
- FEATURE_SIMILARITY_FINDER : contrôle manquant dans la liste
("Type de source" / sourceType) — les 6 contrôles réels sont
maintenant tous listés.
Deux nouveaux bugs applicatifs réels trouvés et filés : issue #25
(liens du menu Aide pointant vers le dépôt archivé inactinique/cliodeck
au lieu de cliodeck/cliodeck-app) et issue #26 (Cmd+W non lié sur
macOS, ci-dessus).
Quatre clusters entièrement propres cette passe (aucune correction) :
brainstorm & intégrations (deuxième passe consécutive sans trouvaille),
meta & notes de version, feature pages & home (hors le contrôle
manquant), LLM & analyse (hors l'attribution du chunking).
docs(wiki): neuvième passe — les réglages livre n'ont aucune UI, un bouton Test Connection qui n'existe pas pour Ollama
- Books-and-Chapters : les quatre réglages livre (style de notes,
numérotation, bibliographie, numérotation des chapitres) sont
présentés comme configurables alors qu'aucun n'a de chemin
d'interface — grep exhaustif : noteStyle n'apparaît que dans un
fichier de test, bookSettings. n'est lu nulle part côté renderer sauf
en lecture seule dans EditorPanel.tsx:169, ProjectPanel.tsx n'expose
que le sélecteur de type de projet. Seul un projet.json modifié à la
main permettrait de changer ces réglages — jamais mentionné comme
possible. Plus large et plus impactant que les précédentes lacunes
« capacité sans UI » vu le rôle central de la fonctionnalité livre.
Filé en issue #24.
- Guides Linux et macOS : « Click Test Connection to validate » dans la
configuration LLM/Ollama — ce bouton n'existe que pour Zotero
(ZoteroConfigSection.tsx). Le seul contrôle réel du panneau LLM est
le bouton de rafraîchissement des modèles (icône 🔄).
- Coût environnemental : preuve supplémentaire trouvée (recherche +
vérification directe d'une source citée) que la littérature publiée
sur le coût carbone de l'inférence LLM s'exprime généralement en
grammes voire en milligrammes, pas en kilogrammes — une requête
ChatGPT complète est couramment citée autour de 4 g CO2. Cela va à
l'encontre de l'indice directionnel précédent (qui supposait que les
chiffres à l'échelle du kg étaient probablement voulus). Aucune
source précise n'a pu être retrouvée pour le taux exact de cette
page dans un sens ou l'autre — l'encart reformulé pour présenter les
deux indices contradictoires honnêtement, sans trancher.
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).
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(wiki): réécrire le guide d'installation Linux, périmé depuis le prototype pré-1.0
Chaque correction vérifiée contre le code, pas contre une intuition :
- Architecture : la page prétendait x86_64, mais la release rc.3 réelle
ne publie que de l'arm64 (AppImage + .deb). x86_64 doit compiler
depuis les sources.
- Section .rpm entière supprimée : electron-builder ne construit ce
format nulle part (cible Linux = AppImage + deb uniquement).
- Structure de projet fabriquée (article.md, bibliography.bib,
src/pdfs/, src/images/) remplacée par la vraie : project.json,
document.md (article) ou chapters/ (livre), context.md, .cliodeck/.
- `npx electron-rebuild -f` remplacé par `npm run rebuild:native` —
le vrai flux du dépôt ; electron-rebuild n'est même pas une
dépendance déclarée.
- Version 0.1.0 codée en dur partout (noms de fichiers) remplacée par
des instructions pointant vers la release courante.
- gemma2:2b recommandé sans préciser qu'il ne peut pas utiliser d'outils
(liste blanche Ollama) — ajouté, avec une alternative tool-capable.
- « mxbai-embed-large (fallback) » corrigé : ce n'est pas un repli
automatique, juste un modèle alternatif sélectionnable.
- Section « Check Logs » corrigée : aucun fichier de log n'existe dans
l'app, seulement la sortie console.
- Liens morts (README.md, DEPLOYMENT.md, examples/) remplacés par des
liens réels du wiki.
- Licence MIT → GPLv3.
docs: seconde passe du wiki — vérifications, traductions, parcours débutant
La relecture adverse a rattrapé, entre autres, une erreur introduite par
la première passe : le guide des LLM embarqués affirmait désormais que
ClioDeck pouvait produire ses embeddings sans Ollama, au motif que le
catalogue propose un modèle embarqué et que le réglage existe. En traçant
l'appel jusqu'au registre de providers, il n'y a aucune branche
embarquée : le réglage ne change rien. La page dit maintenant la vérité,
écart entre catalogue et câblage compris.
Autres rattrapages :
- vingt liens vers l'ancien dépôt inactinique/cliodeck, dans sept pages
dont les deux guides d'installation ;
- la page journal décrivait .cliodeck/history.db et un dossier
conversations/, vestiges d'avant la fusion : tout vit dans brain.db ;
- six pages en français dans un wiki anglophone, et non deux comme la
première passe l'avait cru — les deux nommées sont traduites, quatre
restent ;
- quatre imprécisions dans les pages créées à la première passe (plan
derrière un dépliant, libellés réels des boutons, troncature de la
recherche, message d'un fichier manquant).
Créé : 1.0-Getting-Started, qui comblait le trou entre « installer » et
« écrire » — rien n'expliquait comment créer un projet ni ce que le choix
du type implique.
Les cinq pages laissées sous bandeau à la première passe ont été reprises
ligne à ligne : une était fausse, quatre exactes. Plus aucun bandeau.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
first commit after move from inactinique