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: 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>