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): dix-septième passe — les deux journaux peuvent être attribués au mauvais projet après un changement
Un nouveau bug applicatif réel trouvé et filé cette passe, dans la même
famille que les issues #33/#34/#35/#38/#39 (relire un état de singleton
en direct après un await asynchrone) :
- issue #40 : les deux journaux (journal de recherche brain.db, journal
d'usage IA journal.db) peuvent recevoir un événement attribué au
mauvais projet après un changement — HistoryService.init() implique
une vraie fenêtre d'I/O asynchrone, et chaque site d'écriture relit
le gestionnaire courant plutôt que de garder une référence figée.
Contrairement au cas de l'indexation PDF (#38), cela ne plante pas :
l'écriture réussit toujours, juste dans le mauvais journal.
Trois vérifications ciblées sont revenues négatives (comportement déjà
sûr, pas un bug) : le cache de undo/historique d'état de l'éditeur est
entièrement vidé à chaque changement de projet (commentaire du code
nommant explicitement ce risque de collision) ; les caches
d'embeddings de requête et de chunk sont des fonctions pures
texte→vecteur sans donnée spécifique au projet, donc sans risque de
fuite ; la synchronisation Tropy reçoit son vectorStore en paramètre
explicite capturé une fois, contrairement à Zotero.
Autres corrections :
- Features.md : quatre lacunes de complétude comblées — quatre bugs
déjà filés (#19, #17/minTopicSize, #37, #38) n'étaient pas encore
répercutés dans les puces correspondantes de la page.
- RC3 Release Notes : #37 et #38 ajoutés à la liste des bugs trouvés
depuis la sortie, en réappliquant le même critère de sévérité que la
passe précédente.
- Logging System : cinquième passe consécutive trouvant encore une
petite incohérence interne (la section Environment Detection et
l'exemple Checking Filter Status ne portaient pas la réserve
« uniquement dans le process principal » déjà présente ailleurs sur
la page).
- Tropy Integration Guide : précision sur une connexion vectorStore non
fermée à chaque changement de projet dans TropyService.init() — pas
un nouveau bug en soi, déjà substantiellement couvert par les issues
#29 et #34 existantes.
- Archive Connectors Guide : confirmation que la clé API Europeana est
globale à l'application, jamais scopée par projet — aucun risque de
fuite inter-projets à ce niveau.
Cluster install & build : troisième passe consécutive entièrement
propre, convergence confirmée (matrice OS/architecture et intégrité
des liens vers les 39 issues re-vérifiées, tout tient).
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): quinzième passe — course Zotero inter-projets, watcher Tropy orphelin, BibTeX perd les entrées sans auteur
Six nouveaux bugs applicatifs réels trouvés et filés cette passe, la
plupart via un angle « que se passe-t-il si on change de projet pendant
une opération en cours » appliqué systématiquement à chaque intégration :
- issue #33 (le plus sérieux) : une synchronisation Zotero relit le
vectorStore du projet ACTUELLEMENT ouvert après son await réseau, pas
celui qui a démarré la synchronisation — changer de projet pendant
une synchronisation en cours écrit les collections du projet A dans
le projet B. Corruption de données inter-projets réelle, pas juste
une fuite ou un glitch d'affichage.
- issue #34 : TropyService.init() remplace this.watcher sans jamais
appeler .unwatch() sur l'ancien (contrairement au registre LLM juste
à côté, qui a son disposePreviousRegistry() explicite) — un watcher
orphelin peut déclencher une resynchronisation du mauvais projet.
- issue #35 : le canal de progression d'indexation Obsidian
(fusion:vault:progress) ne porte aucun identifiant de projet —
affichage seulement, aucune corruption de données puisque l'écriture
elle-même reste bien scopée.
- issue #31 : l'événement d'expiration d'une proposition IA lors d'un
changement de chapitre est journalisé sous le chemin du chapitre
qu'on vient de rejoindre, pas celui qu'on quitte — la destruction de
la vue CodeMirror se produit après que le store ait déjà basculé son
filePath.
- issue #32 : l'import BibTeX rejette silencieusement toute entrée sans
champ author (pas de repli sur editor), perdant les volumes collectifs
et travaux anonymes courants en bibliographie historique — seul un
console.warn, aucun signal côté interface.
- issue #36 : npm run lint échoue immédiatement, aucune configuration
ESLint n'existe dans le dépôt (déjà su et documenté dans le
commentaire du workflow CI, mais jamais remonté dans le wiki ni
retiré du script).
Autre trouvaille notable (pass fusionné après un traçage de bout en
bout du pipeline Tropy) : l'ordre de priorité des transcriptions était
mal documenté depuis le début (notes Tropy > transcription externe
type Transkribus > OCR — pas « notes > OCR > manuel » comme l'affirmait
une version antérieure), et le chunking des sources primaires est en
réalité figé en taille fixe (DocumentChunker), jamais le chunker
adaptatif utilisé par les PDF — corrigé sur Technical Architecture.
Cluster meta & notes de version entièrement converti en lecture vide
cette passe : Ethics.md a enfin eu sa première lecture véritablement
approfondie (aucune affirmation factuelle vérifiable trouvée, page
confirmée inerte plutôt que simplement non examinée) et un nouvel
échantillon de notes de version RC2/RC3 vérifié contre les tags git
réels a tenu sans exception.
docs(wiki): quatorzième passe — brain.db sans busy_timeout, course export/renumérotation, affirmation de confidentialité incomplète
Deux nouveaux bugs applicatifs réels trouvés et filés cette passe :
- issue #29 : aucune des quatre classes qui écrivent dans le brain.db
partagé (VectorStore, PrimarySourcesVectorStore, HistoryManager,
ObsidianVaultStore) ne définit de busy_timeout — seul le module
Obsidian active le mode WAL. Le journal.db séparé a déjà ce
correctif exact (WAL + busy_timeout=3000, avec un commentaire
explicite sur l'écriture concurrente) mais il n'a jamais été
appliqué au fichier partagé, qui a pourtant plus d'écrivains
concurrents. Documenté dans les guides Obsidian et Tropy.
- issue #30 : la renumérotation des notes à l'échelle du livre écrit
chapitre par chapitre sur le disque sans verrou — un export
déclenché pendant la boucle peut assembler un manuscrit à moitié
renuméroté, silencieusement. Le rollback en cas d'échec protège
contre les échecs internes de l'opération, pas contre une lecture
concurrente par l'export. Documenté dans Books-and-Chapters.
Autres corrections :
- Build and Deployment Guide : l'affirmation de confidentialité
« aucune donnée envoyée sauf Zotero » se contredisait avec la phrase
juste au-dessus mentionnant les fournisseurs cloud — réécrite pour
lister les trois catégories réelles de sortie de données optionnelle
(Zotero, fournisseur LLM cloud, connecteurs d'archives).
- Technical Architecture : traçage complet d'un scénario de bout en
bout (PDF de 200 pages → indexation → récupération Brainstorm) a
révélé un mécanisme jamais documenté en 13 passes — l'extraction PDF
tourne dans un processus enfant Node système isolé (contournement
d'un crash pdfjs-dist), avec un timeout de 120s, une file d'attente
séquentielle globale (un PDF à la fois, jamais en parallèle), et une
exigence de binaire Node système séparé d'Electron. Documentation
aussi d'un second filet de sécurité (EMBED_CHAR_CAP=6000 caractères
dans PdfIndexer.ts, indépendant de la troncature côté Ollama).
- Features.md : la bascule automatique Ollama→embarqué est en réalité
asymétrique entre génération (toujours) et embeddings (seulement si
les dimensions correspondent) — précision ajoutée, déjà documentée
ailleurs mais pas ici.
- Logging System : la table « comportement par défaut » laissait
penser à un mécanisme unique de filtrage alors que celui du renderer
n'est jamais réellement actif (aucun `process` global) — précision
ajoutée après trois passes de corrections successives sur cette même
page qui n'avaient jamais été reconciliées entre elles.
Meta & notes de version : une seule correction mineure de cohérence
interne sur Logging System, rien d'autre trouvé sur les notes de
version elles-mêmes malgré la recherche de contradictions avec les
pages actuelles.
docs(wiki): douzième passe — touches d'envoi du chat inversées, contradictions avec les issues #24 et #28, minTopicSize figé à 3
Aucun nouveau bug applicatif filé cette passe — uniquement des
corrections de documentation, mais deux d'entre elles sont des
contradictions directes avec des bugs déjà filés lors des passes
précédentes, qui avaient survécu parce que les pages n'avaient pas été
recroisées entre elles :
- Features.md : les réglages de compression de contexte et le ratio de
compression dans RAGExplanation étaient encore présentés comme
actifs, alors que la passe 11 a établi qu'ils sont totalement
jamais câblés (issue #28) — corrigé et lié.
- RC3 Release Notes : les réglages de livre (notes, numérotation,
bibliographie) étaient listés comme une fonctionnalité RC3 sans
réserve, alors que 1.15-Books-and-Chapters.md documente depuis la
passe 9 qu'aucun n'a d'interface (issue #24) — réserve ajoutée et
lien.
- RC2 Release Notes : deux affirmations sur obsidian-vectors.db
encore séparé de brain.db à l'époque de RC2 étaient fausses même
pour ce tag précis — vérifié via `git show v1.0.0-rc.2:...` que la
fusion datait de 5 jours avant le tag.
Corrections supplémentaires :
- Keyboard Shortcuts : les touches d'envoi/retour à la ligne du chat
RAG étaient inversées (Ctrl/Cmd+Entrée envoie, Entrée simple insère
un retour à la ligne — c'était documenté à l'envers) ; la touche
Échap pour annuler n'existe pas, seul un bouton l'annule.
- Guide des templates Word : mauvais pointeur de dépannage vers le
Journal Panel (qui est le journal d'usage IA, sans rapport avec les
logs d'export).
- Corpus Analysis Guide : nombre de topics par défaut réellement 10
(pas "Auto"), taille minimale de topic figée à 3 dans le code (pas
5, sans aucune interface pour la changer).
- Tropy Integration Guide : documentation du bouton de purge de la
base des sources primaires (tropy:purge), jusqu'ici non documenté
mais correctement scopé (contrairement au bug Obsidian/brain.db).
- Brainstorm Mode Guide : liste des préfixes de verbes de lecture
incomplète dans la nouvelle section bannière MCP.
- Build and Deployment Guide : npm test tourne en mode watch par
défaut, pas "une fois" ; storage des clés API.
- ClioDeck Installation : le lanceur .desktop généré ajoute
--no-sandbox à l'AppImage, absent du lancement direct.
Quatre passes de vérification exhaustive supplémentaires n'ont rien
trouvé de nouveau dans leurs clusters respectifs (LLM & analyse au-delà
du point ci-dessus, install & build au-delà des deux points ci-dessus).
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): retirer une fonctionnalité de réindexation PDF fabriquée, préciser le filtre Tropy orphelin
- Features.md : « Re-indexation: Detect modified PDFs and propose
re-indexing » — recherche exhaustive (needsReindex/isModified/
hasChanged) dans tout le dépôt, aucun résultat. Aucune détection de
fichier PDF modifié sur disque n'existe ; OrphanPDFDetector.ts gère
les PDF orphelins, pas les PDF modifiés — fonctionnalité distincte.
Bullet retiré.
- Tropy guide : précision sur le filtre par collection — une action
setCollectionFilter existe bien côté store (primarySourcesStore.ts)
mais elle est orpheline, aucun composant PrimarySources/ ne l'appelle.
docs(wiki): trois petites imprécisions — clic sur segment, titre de segment, langues des system prompts
- Similarity Finder : le clic se fait sur une entrée du panneau de
résultats, pas dans le texte affiché de l'éditeur. Le titre de
segment vient de segment.title (sections seulement) ou des 60
premiers caractères — pas de repli par numéro comme décrit.
- Features.md : « system prompts personnalisables en français, anglais
et allemand » — getDefaultSystemPrompt n'accepte que 'fr' | 'en'
(SystemPrompts.ts:49). L'allemand est une langue d'interface, pas une
langue de system prompt — confusion entre les deux.
docs(wiki): Features.md répétait deux fabrications déjà corrigées sur 1.9-Journal-and-History.md
« Context Recovery: Resume previous conversations » et « Timeline
View: Visualize activity over time » décrivaient une reprise de
conversation et une vue calendaire/heatmap — les deux confirmées
absentes du code lors de la correction de 1.9-Journal-and-History.md
(ChatHistoryView.tsx en lecture seule pure, SessionTimeline.tsx est
une simple liste verticale). La correction n'avait jamais été
propagée à cette page.
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.
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.
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.
docs: wiki à jour pour la 1.0.0-rc.3
Les 33 pages ont été confrontées au code, pas réécrites de mémoire.
Créées : « Writing a Book — Chapters Guide » (la nouveauté majeure de
cette version : manifeste, navigateur, plan, recherche d'ouvrage,
renumérotation, réglages, exports), « The Editor » (CodeMirror 6 en rendu
live, notes et citations pandoc, fidélité octet pour octet, propositions
adjudicables) et les notes de version RC3.
Corrigées, entre autres :
- Features et Technical Architecture annonçaient encore l'éditeur
Milkdown, retiré depuis ;
- trois raccourcis documentés n'existent pas (Ctrl+Shift+S, Ctrl+Shift+L,
Alt+4) et Ctrl+J n'était pas documenté — vérifié dans menu.ts ;
- « Export Presentations » ne parlait pas des présentations malgré son
titre : ni reveal.js, ni modes en ligne/hors ligne/PDF, ni Beamer ;
- Electron 28 dans deux pages, alors que le projet est en 40.9.2 ;
- le journal d'usage IA distingue désormais ses deux couches et
enregistre les adjudications de propositions.
Cinq pages anciennes (Tropy, LLM embarqués, analyse de corpus,
similarité, stratégie d'embeddings) portent un bandeau signalant qu'elles
n'ont pas été revérifiées ligne à ligne : elles ne contiennent rien de
manifestement faux, mais leur horodatage est ancien.
Aucune page supprimée. Le wiki ne contient aucune capture d'écran : rien
à refaire de ce côté.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
first commit after move from inactinique