Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

lifecycle-logger

Plugin de hooks qui logue les événements du cycle de vie GitHub Copilot CLI dans un fichier JSON, pour l'observabilité et le debug.

Ce qu'il fait

Enregistre chaque événement (nom, timestamp UTC, argv, variables d'environnement COPILOT_*, payload stdin complet) dans un tableau JSON.

Événements couverts :

sessionStart, sessionEnd, userPromptSubmitted, preToolUse, postToolUse, agentStop, subagentStop, preCompact, notification, errorOccurred.

Emplacement des logs

$COPILOT_PROJECT_DIR/.copilot/logs/lifecycle.json

Les logs sont écrits par projet (dans le dossier du projet courant), pas dans l'install partagée du plugin. Pensez à ajouter .copilot/logs/ à votre .gitignore.

Garanties du script

  • N'écrit jamais sur stdout/stderr et sort toujours en exit 0 — n'interfère jamais avec l'exécution de Copilot CLI (important : preToolUse s'exécute avant chaque appel d'outil ; ne rien émettre = aucune décision de permission forcée, l'exécution suit son cours).
  • Écritures sérialisées via un verrou mkdir (portable macOS/Linux, pas de dépendance à flock) pour éviter la corruption lors d'appels parallèles.
  • Écriture atomique via fichier temporaire + mv.

Format d'une entrée

{
  "ts": "2026-07-24T10:00:00Z",
  "event": "preToolUse",
  "argv": ["...", "preToolUse"],
  "env": { "COPILOT_PROJECT_DIR": "..." },
  "stdin": { }
}

Caveat

  • Résolution du chemin du script : les hooks utilisent ${COPILOT_PLUGIN_ROOT} pour pointer vers le script installé. Vérifiez cette variable selon votre version de Copilot CLI (à défaut, adaptez hooks/hooks.json avec un chemin absolu ou cwd).
  • Bug connu github/copilot-cli#2540 : selon la version du CLI, les hooks preToolUse définis dans un plugin peuvent ne pas se déclencher (ni en session principale, ni dans les sous-agents). Les autres événements restent loggés.

Installation

copilot plugin install lifecycle-logger@sfeir-institute