会话数据、导出与删除
区分本地保存、账号同步、远程控制与分享,并按正确范围清理记录。
会话在哪里运行、记录保存在哪里、是否同步以及谁能看见,是四个不同问题。CLI 本地执行可以同时拥有本地和账号中的记录;同步到自己的账号不等于分享给仓库成员,也不等于允许远程控制。
保存与同步
CLI 和 Copilot app 的本地会话完整记录位于 ~/.copilot/session-state/,部分数据保存在 SQLite session store。IDE 的保存位置则取决于具体 IDE,不能一概套用这个路径。
本地 CLI / app 会话默认同步到 GitHub 账号。但 Business / Enterprise 用户需要 Store local sessions in the Cloud 至少设置为 View from cloud;禁用或未配置时仅保存在本地。View and control 进一步允许远程控制,两种能力应分别理解。
谁可以访问
同步的本地会话默认仅账号本人可见,管理员允许同步不代表管理员自动获得内容访问权。用户可将单个本地会话分享给有仓库访问权的人,接收者只能查看,且分享会话不会加入接收者自己的历史查询。
Copilot cloud agent 会话不同:默认共享给有仓库访问权的人,执行环境结束后销毁,但 GitHub 上的日志仍保留。云端智能体记录不能套用“本地会话默认不共享”的规则。
分享与导出
| 命令 | 结果 |
|---|---|
/share | 向 GitHub 分享并返回链接 |
/share off | 停止链接分享 |
/share gist | 把会话导出为 gist |
/share file [PATH-TO-FILE] | 导出 Markdown |
/share html [PATH-TO-FILE] | 导出交互 HTML |
/export 是 /share 的别名。文件路径省略时,默认在当前目录生成 copilot-session-SESSIONID.md 或 .html。Enterprise Managed Users 和数据驻留 *.ghe.com 不支持 gist。
导出文件与 gist 是另外保存的记录。分享前核对提示、工具输出和上下文中是否包含不希望分发的内容,不要把 /share off 推定为删除别人已经拿到的文件。
按范围删除
| 命令 | 范围 |
|---|---|
/session delete | 删除当前会话,并新建一个替代 |
/session delete SESSION-ID | 指定会话,先展示预览,--yes 确认 |
/session delete-all --yes | 删除除当前会话外的本地会话;其他进程占用的会话跳过 |
/session prune --older-than DAYS --dry-run | 预览按天数筛出的旧会话 |
单个已同步会话通过 /session delete 删除时,会询问是否同时删除云端副本。选择删除同步副本后,它也从 Chronicle 查询与洞察中移除。
delete-all 和 prune 只影响本地记录,不删除同步数据;需要另外在 GitHub.com 清理。手工删除 session-state/ 文件也不删除云端副本,且需要重新索引。不要把删除本地目录当作完整账号数据删除。
归档和隐藏
官方数据控制表显示 CLI 本地记录不支持 archive;Copilot app 支持本地归档。GitHub 上的同步会话可归档、删除或分享,cloud agent 会话可归档但该表未提供删除能力。
隐藏同步会话会把它从会话索引和查询结果中移除,但隐藏、归档与永久删除是不同动作。按实际界面选择所需范围,并核对结果。
重建索引
/chronicle reindex 从本地会话文件重建 session store,同时同步到账号。复制会话目录或恢复备份后可用它修复查询能力;已有记录的再索引不等于恢复已删除的历史内容。更多查询入口见Chronicle。
CLI、app 与 GitHub 上的记录控制对照,见跨客户端会话数据。app 删除本地会话会立即删除其同步副本,不采用 CLI 单个会话删除时的选择流程。