github / github/copilot-cli

Config file race condition when running multiple CLI sessions simultaneously

Đang mở
#1,307 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:configuration
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ả

When running multiple Copilot CLI sessions concurrently, changes to ~/.copilot/config.json made by one session are
overwritten by other sessions, resulting in loss of configuration changes.

Steps to reproduce:

1. Start Copilot CLI session 1 in terminal window A
2. Start Copilot CLI session 2 in terminal window B
3. In session 1, make a configuration change (e.g., add a trusted folder with /add-dir)
4. In session 2, make a different configuration change (e.g., add an allowed URL)
5. Check ~/.copilot/config.json - only the last change persists, the first change is lost

Expected behavior:

Configuration changes from all sessions should be merged or preserved. Ideally:

- Use file locking to prevent concurrent writes
- Watch the config file for external changes and reload when modified
- Merge changes from multiple sessions intelligently

Actual behavior:

Each CLI session reads config.json on startup, holds it in memory, and writes the entire file back on changes,
overwriting any modifications made by other sessions.

Environment:

- Copilot CLI version:
0.0.402
- OS: Windows (but likely affects all platforms)

Suggested solutions:

1. Implement file locking (flock/LockFile) during config writes
2. Add file watching to detect external changes and prompt user to reload
3. Use atomic read-modify-write operations with retry logic on conflicts
4. Store session-specific settings separately from global config

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

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

Đánh giá

Issue này chưa được đánh giá.

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.