github / github/copilot-cli

Hooks in config.json are not preserved across session starts

Abierto
#3,403 0 comentarios 2 reacciones 0 asignados Ver en GitHub
area:configuration area:plugins
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

## Bug

The `hooks` field in `~/.copilot/config.json` is documented as the location for user-level hooks (`copilot help config` states: "In global config.json these act as user-level hooks").

However, Copilot CLI **overwrites `config.json` on every session start**, dropping any `hooks` key that was previously written there. This makes it impossible for external tools (like [cmux](https://github.com/manaflow-ai/cmux)) to install persistent user-level hooks.

## Steps to Reproduce

1. Install cmux session restore hooks: `cmux hooks copilot install`
2. Verify `~/.copilot/config.json` now contains a `"hooks"` key with SessionStart, SessionEnd, etc.
3. Start a new `copilot` session
4. Check `~/.copilot/config.json` — the `"hooks"` key is gone

## Expected Behavior

The `hooks` field should be preserved when Copilot CLI rewrites `config.json` (e.g., when updating `expAssignmentsCache` or other managed state).

## Additional Context

- Copilot CLI version: 1.0.49
- Hooks in `settings.json` do **not** fire as user-level hooks (despite being a recognized config location)
- The file header says `// User settings belong in settings.json` but `copilot help config` says hooks go in `config.json`
- macOS, cmux latest

## Workaround

Currently none for global user-level hooks. Repo-level hooks (`.github/hooks/*.json`) work but require per-repo setup.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza localizando el código que reescribe ~/.copilot/config.json y reproduce el comportamiento al iniciar la sesión con una entrada de hooks instalada por cmux. La corrección está completa cuando las actualizaciones del estado gestionado ya no eliminan el campo hooks; verifícalo siguiendo los pasos de reproducción documentados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cli, shell
Área
cli
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
62/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.