github / github/copilot-cli

Copilot CLI leaves behind orphaned session-state scaffold folders during aborted or incomplete session initialization/resume.

未关闭
#2,836 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area:sessions
主要语言
Shell
星标
11.2k
派生
1.9k
平均合并
14 小时 16 分钟
30 天内合并 PR
6

描述

### Describe the bug

Copilot CLI leaves behind orphaned session-state scaffold folders during aborted or incomplete session initialization/resume.

These folders appear under ~/.copilot/session-state and contain minimal scaffold files like workspace.yaml, checkpoints/index.md, and empty checkpoints/, files/, and research/ directories, but they do not contain real session data like events.jsonl or session.db.

This causes the on-disk session corpus to diverge from what appears in copilot --resume.

### Affected version

1.0.32

### Steps to reproduce the behavior

1. Use Copilot CLI on Windows.
2. Start or attempt to resume sessions repeatedly, including cases where session startup/resume does not fully complete.
3. Inspect ~/.copilot/session-state.
4. Observe folders that contain workspace.yaml, checkpoints/index.md, and empty checkpoints/, files/, and research/ directories.
5. Observe that these folders do not contain events.jsonl or session.db.
6. Run copilot --resume and compare the visible sessions to the folders on disk.
7. See that extra scaffold folders exist on disk but are not real resumable sessions.

### Expected behavior

Session folders should only be created once initialization is durable and valid, or they should be cleaned up automatically if startup/resume aborts or fails.

### Additional context

Environment:
- Windows
- GitHub Copilot CLI 1.0.32

Observed in local session corpus:
- Multiple scaffold-only folders with summary_count: 0
- Scaffold folders contain workspace.yaml and empty directories only
- Real sessions contain events.jsonl and often session.db
- A fresh scaffold folder was created during inspection of sessions via --resume
- There was also one corrupted old session with events.jsonl but missing workspace metadata, which is a separate issue from the scaffold folders

Suggested fix:
- Delay session directory creation until first durable write, or
- create in a temp location and promote atomically, or
- automatically clean up scaffold-only folders on failed initialization

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。