sessions.fr.md
docs/i18n/integrations/sessions.fr.md
Graphe de sessions
<!-- translations:start -->
English · 한국어 · 中文 · 日本語 · Русский · Español · Deutsch
<!-- translations:end -->
Le graphe de sessions de Tesserae transforme vos conversations Claude Code / Codex à propos d'un projet en nœuds de première classe dans le graphe de connaissances typé, liés aux documents qui sont apparus. Après une compilation, vous pouvez demander tesserae project ask "qu'avons-nous décidé à propos de 3D Gaussian Splatting ?" et obtenir des nœuds spécifiques Insight / Decision / Question / TODO / Hypothesis / Takeaway avec la provenance jusqu'à la session qui les a produits.
Comment ça marche
Deux passes par session :
- Structurelle (toujours active, sans LLM). Lit les enregistrements
HarnessSessionnormalisés quetesserae sessions discover --importécrit dans.tesserae/harness_sessions/. Pour chaque session, frappe un nœud enveloppeSession, émet des arêtesdiscussed_inde chaque document que l'agent a ouvert, et transforme le champdecisionsexistant en nœudsSessionDecision. - LLM (optionnel, s'exécute lorsque
ANTHROPIC_API_KEYest configuré). Envoie les tours de conversation normalisés (le champmetadata["turns"]— pas le fichier de transcription brut) à Claude avec un schéma de résultats JSON-uniquement. Renvoie six types de résultats, chacun citant des tours spécifiques et des IDs de nœud de document spécifiques dans le graphe actuel. Mis en cache par content_hash + project_root_hash, donc les sessions inchangées sautent l'appel à la compilation suivante.
Configuration
# Importez les sessions de ce projet dans `.tesserae/harness_sessions/`. Filtre par cwd, donc seules les sessions exécutées dans ce projet sont importées.
tesserae sessions discover --import
# Compilez. La passe structurelle s'exécute gratuitement ; la passe LLM s'exécute automatiquement lorsque la CLI `claude` est connectée — pas de clé API.
tesserae project compile
Pour compiler sans sessions (par ex. sur un serveur sans aucun historique de harness) :
tesserae project compile --no-sessions
Pour forcer structurel uniquement (sauter l'appel LLM même lorsqu'une clé est définie) :
tesserae project compile --sessions-llm=false
Configuration
.tesserae/config.json accepte un bloc sessions :
{
"sessions": {
"enabled": true,
"llm_enabled": "auto",
"max_turns_per_chunk": 30,
"model": "claude-sonnet-4-7-20251201",
"include_doc_id_context": 200
}
}
Les drapeaux CLI remplacent la configuration. llm_enabled = "auto" (par défaut) exécute la passe LLM lorsque la CLI claude est connectée ou que ANTHROPIC_API_KEY est défini ; sans aucun, seule la passe structurelle s'exécute (pas d'erreur, pas d'appels sortants).
Requête
Deux outils MCP s'ajoutent aux outils de recherche/wiki existants :
list_sessions(since?, limit?)— enveloppes Session pour le projet actif (id, started_at, title, nombres de résultats).find_session_findings(node_id, kinds?)— chaque résultat dérivé de session lié ànode_idviadiscussed_inoureferences, optionnellement filtré à insight / decision / question / todo / hypothesis / takeaway.
Depuis le CLI :
tesserae sessions list
tesserae project ask "what did we decide about extractor dedup?"
Confidentialité
- Sans CLI
claudeconnectée ET sansANTHROPIC_API_KEY(ou avec--sessions-llm=false), il n'y a aucun appel réseau sortant. Seule la passe structurelle s'exécute. - Lorsque la passe LLM s'exécute, les tours de conversation normalisés complets pour les sessions pas encore en cache sont envoyés. Le fichier de transcription lui-même reste sur disque ; seule la sortie JSON du LLM est persistée dans le graphe et le cache par session.
- Les fichiers de cache résident dans
.tesserae/session_findings/<session_id>.findings.jsonavec uncontent_hashet unproject_root_hash. Un fichier de cache copié entre projets est rejeté à la lecture — pas de relecture entre projets. - Les sessions sont filtrées via
session_matches_projectaprès chargement, donc une transcription dont lecwdétait un projet frère ne produit jamais de nœuds dans le graphe de ce projet.
Disposition du coffre
Les résultats sont rendus sous le coffre Obsidian comme une page par résultat, groupés par session :
<vault>/
sessions/
<session-id-slug>/
cache-findings-by-content-hash.md
path-index-needs-basename-suppression.md
...
Les notes utilisateur à l'intérieur du bloc <!-- user-notes:start --> … <!-- user-notes:end --> sur toute page de résultat survivent à la recompilation — le même contrat que chaque autre page de coffre.
Dépannage
- Aucun nœud Session n'apparaît après compilation. Avez-vous exécuté
tesserae sessions discover --importd'abord ? Le chemin de compilation ne consomme que.tesserae/harness_sessions/; il ne scanne PAS~/.claude/projects/automatiquement (ce scan peut prendre des minutes sur des machines avec des milliers de sessions historiques). - Préoccupations de coût LLM. Le cache signifie que chaque session est envoyée au LLM au plus une fois par content-hash. Les sessions longues sont découpées à
max_turns_per_chunk(par défaut 30) avec un chevauchement de 5 tours. Pour limiter le coût total, baissezmax_turns_per_chunk, baissezinclude_doc_id_context, ou définissez--sessions-llm=false. - Un résultat cite un ID de nœud qui n'existe pas. L'orchestrateur valide chaque référence citée contre le graphe de documents vivant et abandonne silencieusement les inconnues. Si vous voyez l'avertissement dans les journaux, le LLM a halluciné une citation — les références survivantes sont toujours fiables.
Spécification
La conception complète vit dans docs/superpowers/specs/2026-05-19-session-graph-extractor-design.md. Le plan de mise en œuvre est docs/superpowers/plans/2026-05-19-session-graph-extractor-plan.md.