`session_store_sql` returns deleted sessions forever: no DELETE verb on `POST /agents/analytics/query` or `/agents/sessions/*`
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 45/100
研究方向
The issue involves the session data pipeline and API routes. Start by examining the API routes listed in the issue, particularly /agents/analytics/query and /agents/sessions/* in the codebase. Look for where session data is written and queried, and understand the data flow from CLI to cloud storage. Check related issues #3811, #4094, #4939, #3777 for additional context. The goal is to add a DELETE route or cascade deletion from tasks to sessions.
由索引模型根據 Issue 內容生成。
描述
Describe the bug
The session_store_sql tool with source: "cloud" keeps returning sessions
after they have been deleted everywhere the user can reach:
SELECT COUNT(*) FROM sessions
→ 482, while GET /agents/tasks returns 0 tasks.
These rows are served by POST https://api.githubcopilot.com/agents/analytics/query
and written by chronicle reindex via PUT /agents/sessions/{id},
POST /agents/sessions/{id}/events, and PUT /agents/sessions/{id}/logs.
Every one of those write routes is an upsert or append. No route accepts
DELETE, and POST /agents/analytics/query rejects any non-SELECT
statement. Once a row exists in the sessions table behind
/agents/analytics/query, no client operation can remove it.
OPTIONS against every route the CLI uses for session data:
| Route | Allow: |
|---|---|
/agents/analytics/query |
POST |
/agents/analytics |
GET, POST |
/agents/sessions |
GET, POST, PATCH |
/agents/sessions/{id} |
PUT, GET |
/agents/sessions/{id}/events |
GET, POST |
/agents/sessions/{id}/logs |
PUT, GET |
DELETE appears on none of them.
Affected version
Copilot CLI 1.0.87 (Linux x64)
Steps to reproduce the behavior
- Accumulate CLI sessions with
remoteExportenabled (the default). - Delete the corresponding Mission Control tasks:
DELETE https://api.githubcopilot.com/agents/tasks/{id}(the call the CLI's
session picker makes), or via github.com/copilot/agent WebUI. - Delete all local session state under
~/.copilot/session-state/. - Set
remoteExporttofalse. - Run
session_store_sqlwithsource: "cloud":SELECT COUNT(*) FROM sessions
Every previously-exported session is still returned. /chronicle and
cross-session search surface the same rows.
Expected behavior
Sessions deleted from github.com/copilot/tasks, from the CLI session picker,
and from ~/.copilot/session-state/ should stop being returned by
session_store_sql, /chronicle, and cross-session search.
Setting remoteExport: false should also provide some supported way to remove
data already exported — or the retention policy for that data should be
documented.
One of:
- A
DELETEroute for rows in thesessionstable — ideally bulk, e.g.
DELETE /agents/sessions/{id}plus a "delete all my cloud session history"
operation. DELETE /agents/tasks/{id}cascading to the matchingsessionsrow.
Additional context
Impact
- Deletion is not honored. Session metadata, titles, and summaries remain
queryable after deletion from every user-reachable surface. remoteExport: falseis not retroactive. It stops new writes but leaves
every prior row in place, with no documented retention period.- No recourse exists through the CLI, the web UI, or the API.
Related issues
These look like the same gap — deletion never reaching the append-only
/agents/sessions/* → /agents/analytics/query pipeline:
| Issue | Title | Relationship |
|---|---|---|
| #3811 | deleted sessions still in /chronicle insights | Closest match — same symptom (local wipe + cloud delete + remoteExport off, yet /chronicle still surfaces deleted sessions); does not identify the route-level cause |
| #4094 | Deleting a session doesn't remove it from session-store.db / VS Code Chat history | Self-describes as the same root cause as #3811 |
| #4939 | Unable to delete old remote sessions | Same family; notes deletion worked in v1.0.55 |
| #3777 | /chronicle reindex queues remote backfill despite local-only remote settings | Shows remoteExport: false is not fully honored by the sync pipeline |
Adding a DELETE route would likely resolve #3811 and #4094 as well.
- 主要語言
- Shell
- 星號
- 11.2k
- 分支
- 1.9k
- 平均合併
- 14 小時 16 分鐘
- 30 天內合併 PR
- 6
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
github/copilot-cli 的其他 Issue
-
triage
難度 2/5 1-3 小時 新手友好度 75/100
github/copilot-cli#4932 ·
-
triage
難度 2/5 1-3 小時 新手友好度 78/100
github/copilot-cli#4909 ·
-
triage
難度 2/5 1-3 小時 新手友好度 76/100
github/copilot-cli#4906 ·
-
triage
難度 2/5 1-3 小時 新手友好度 72/100
github/copilot-cli#4848 ·
-
area:agents area:mcp
難度 2/5 1-3 小時 新手友好度 72/100
github/copilot-cli#4729 ·
查看 github/copilot-cli 的全部 Issue
相似的 Issue
-
area: harness bug status: needs-triage
難度 2/5 1-3 小時 新手友好度 75/100
Human-Agent-Society/reef#625 ·
-
module: core
難度 2/5 1-3 小時 新手友好度 75/100
bigbluebutton/bigbluebutton#25849 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
vercel-labs/just-bash#464 ·
-
area:sandbox documentation enhancement platform:linux
難度 1/5 1 小時以內 新手友好度 85/100
anthropics/claude-code#96664 ·
-
cost:cheap severity:medium
難度 2/5 1-3 小時 新手友好度 70/100
fairagro/m4.2_sql_to_arc#227 ·