github / github/copilot-cli

Config file race condition when running multiple CLI sessions simultaneously

Offen
#1,307 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
area:configuration
Vorherrschende Sprache
Shell
Sterne
11.2k
Forks
1.9k
Ø Merge
14 Std. 16 Min.
Gemergte PRs (30 T.)
6

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.