Il affiche, il ne retient jamais : Hypermnesia MCP Viz, suivi dans son code
Cortex écrit dans PostgreSQL ce qu’une session a appris. Claude Code laisse sur disque une trace distincte, un fichier JSONL par session. Ni l’une ni l’autre n’est lisible sans requête. Cet outil transforme les deux — plus votre git local et un graphe de code — en six angles de lecture dans un onglet de navigateur, servis par un processus lié au bouclage qui s’éteint après dix minutes d’inactivité. Il affiche ; il ne retient pas. Cette phrase est exactement vraie des tables de mémoire de Cortex et fausse de la base dans son ensemble, et la deuxième pièce dit où passe la ligne au lieu d’attendre que vous la trouviez.
Un serveur MCP, un serveur web détaché, trois sources qui ne lui appartiennent pas
L’hôte MCP démarre un lanceur, qui installe les dépendances propres à l’outil dans un répertoire privé, puis exécute le serveur dans le même processus.3 Ce serveur parle stdio et publie exactement deux outils.2 Ouvrir une visualisation ne rend rien dans ce processus : il engendre un processus système séparé et détaché qui écoute sur 127.0.0.1 et sert la page navigateur.4 Un troisième processus construit le graphe, parce qu’une construction gourmande en calcul affame le GIL quand elle tourne dans un fil d’exécution.6 Tout ce qui suit décrit la distribution hypermnesia-mcp-viz en version 3.2.0.1
« Lecture seule », dit exactement
Ce que dit l’emballage, c’est que l’outil n’écrit jamais une mémoire. C’est vrai, et c’est plus étroit qu’il n’y paraît. Rien n’écrit dans les tables de mémoire de Cortex : toute la surface de méthodes du lecteur est en SELECT, le préflight de schéma est une unique requête catalogue, la sonde de santé est un SELECT 1.16 Mais la connexion n’est pas ouverte en lecture seule — ni SET TRANSACTION READ ONLY, ni rôle restreint, et autocommit=True, qui valide chaque instruction immédiatement, DDL comprise.9 L’outil crée et écrit cinq tables qui lui appartiennent, dans la même base111213. Le projet énonce lui-même cette correction plutôt que de laisser subsister l’ancienne affirmation globale.10
De la ligne au pixel
Une ligne de mémoire n’a pas de position. Tout ce qui sépare le SELECT du point affiché à l’écran est calculé ici, et chaque étape porte des constantes choisies contre une mesure plutôt que par goût. Les arêtes viennent de trois canaux additifs : les entités partagées pondérées par la fréquence documentaire inverse, les plus proches voisins dans l’espace d’embeddings, et la co-consultation temporelle.17 La couleur vient d’une détection de communautés Leiden, à une résolution prise au genou d’un balayage mesuré.18 La position vient du DrL d’igraph, et seulement au-delà de deux cents nœuds.19
Six angles de lecture, et ce qu’il faut à chacun
L’outil MCP n’accepte que deux valeurs de vue, galaxy et brain ; les six angles sont des onglets dans la page, pas des arguments de l’outil.2 L’un d’eux fonctionne sans aucune base : Trace est la vue d’atterrissage par défaut et ne lit que vos journaux de session et votre git, ce qui rend l’outil utile avant même que Cortex soit installé.27 Les cinq autres ont besoin de la base, et le disent nativement au lieu d’échouer au premier clic.29
Ce qui est mesuré, et ce qui est seulement affirmé
Le projet sépare ces deux registres dans ses propres fichiers, et ce dossier conserve la séparation. La colonne du milieu est reproductible et datée. Celle de droite porte des intentions de conception sans protocole attaché, citées comme telles plutôt que reprises comme des performances.
| Sujet | Mesuré, avec une date | Affirmé, sans protocole trouvé |
|---|---|---|
| Taille du corpus | 278 557 nœuds / 5 526 064 arêtes, 2026-07-02 — la mesure qui a imposé le format en trames21 | « the galaxy builds end-to-end at 75k+ nodes » |
| Résolution de communautés | balayage sur 9 889 mémoires / 27 346 arêtes, 2026-07-07 ; gamma 0,0005 pris au genou18 | — |
| Seuils navigateur | points de gel mesurés sur le saut N ≈ 17k → 27k24 | « first paint of the skeleton lands in ~1 s » |
| Tuiles | 64 658 lignes lues en 35 ms, extrapolées à 250 000 lignes dans un budget de 200 ms22 | « <5 ms even for 10M-row tables » |
| Tests et audits | 988 réussis / 10 ignorés, 81 % de couverture d’instructions ; OpenSSF Scorecard 7,4, Best Practices Silver, tous deux le 2026-08-0331 | — |
| Maturité | classifier Development Status :: 3 - Alpha, mainteneur unique33 | — |
Trois limites sont énoncées par le projet plutôt que découvertes contre lui : il n’écrira jamais dans les tables de mémoire de Cortex ; il ne sera pas déployé à distance, parce que la liaison au bouclage et l’absence d’authentification sont la conception ;32 et Windows n’est pas déclaré supporté, seulement partiellement traité.33 Une affirmation de la documentation ne survit pas à la lecture de l’arbre : la phrase de fonctionnement hors ligne de PRIVACY.md est contredite par KaTeX, d3, mermaid et CodeMirror chargés depuis des CDN sur la page unifiée, plusieurs sans empreinte d’intégrité.26