github / github/copilot-cli

Hooks in config.json are not preserved across session starts

Đang mở
#3,403 0 bình luận 2 reaction 0 người được giao Xem trên GitHub
area:configuration area:plugins
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Mô tả

## 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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start by locating the code that rewrites ~/.copilot/config.json and reproduce the session-start behavior with a hooks entry installed by cmux. The fix is complete when managed state updates no longer remove the hooks field; verify this with the documented reproduction steps.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cli, shell
Lĩnh vực
cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
62/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.