github / github/copilot-cli

Store session state under project `.copilot/` directory to support ephemeral home directories (Docker, CI, devcontainers)

オープン
#3,021 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る
area:configuration area:sessions
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

### Problem

When running Copilot CLI inside a Docker container, devcontainer, or CI runner, the home directory (`~/.copilot/session-state/`) is ephemeral — it is lost when the container exits. This makes `/session restore SESSION_ID` permanently unavailable after the container shuts down, even if the working project directory is a persistent volume mount or git checkout.

The session state that gets lost includes:
- The event log (`events.jsonl`) needed for session restore
- Checkpoints and their index
- Any session artifacts written to the session folder

### Proposed solution

Allow the runtime to store (or mirror) session state under a `.copilot/session-state/` directory inside the project working directory, rather than exclusively under `~/.copilot/session-state/`.

A reasonable implementation:

1. If a `.copilot/` directory exists in the current working directory when a session starts, store session state there instead of (or in addition to) `~/.copilot/session-state/`.
2. When resolving a session ID for `/session restore`, also search `.copilot/session-state/` in the cwd.
3. Optionally: support a config option or environment variable (e.g. `COPILOT_SESSION_DIR`) to explicitly override the storage root.

The `.copilot/` directory in the project can already be used as home for agent-created artifacts (like `plan.md`). Keeping session state there as well makes the whole session context co-located with the code it relates to, and committable to git if desired.

### Relation to existing issues

Issue #1947 requests cloud-synced sessions for cross-device continuity. This request is narrower — it only requires the runtime to look in an additional local directory, with no network dependency.

### Environment

Any environment where `$HOME` is not persistent: Docker containers, GitHub Codespaces rebuilds, CI runners, devcontainers.

Suggested label: area:sessions

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Begin by locating the session-state writer and the `/session restore` lookup; the issue names no source files or tests. Check behavior in a persistent project directory with an ephemeral home, including existing `.copilot/session-state/` and the proposed `COPILOT_SESSION_DIR` override. Done means session state is stored or found as specified and restore works after the home directory is discarded.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
docker, shell
領域
cli, devops, infrastructure
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。