Skip to main content

Session forensics

What the Copilot CLI session stores actually retain about this project, the terminal commands that were recovered, and why the original build transcript does not exist.

The stores that were searched​

StoreLocationNotes
Local session store~/.copilot/session-store.db23 MB plus a 4.5 MB WAL
Local data store~/.copilot/data.db
Command history~/.copilot/command-history-state.jsonRetains only the last 50 prompts
Chat transcripts~/.copilot/chats/
Sidebar state~/.copilot/sidebar-sessions-state/
Logs~/.copilot/logs/
Cloud session storeQueried via session_store_sqlsessions, turns, session_files, session_refs, events, tool_requests

Pages in this section​

PageContents
Command referenceThe nine recovered PowerShell commands, fully annotated
Store queriesWorking queries against both stores, with the performance rules
ProvenanceThe full evidence chain, including the retracted finding

Sessions that touched this project​

Three, and only three.

SessionWorking directoryCreatedCharacter
d106b6f4-2782-4f83-9ff2-e46f8c07137fC:\0DEV0\raybot2026-06-17 16:24:49ZThe screenshot move. 49 tool calls. Produced commit 7698a0d.
75113b80-f1b6-45af-9551-05aff22e030f...\Clawpilot\raybot-runbook2026-09-16A review session, not the build. 94 view, 37 powershell, 19 session_store_sql.
7cb46a30-fc17-4277-aa1c-f7e289f94c8fC:\0DEV0\raybot2026-09-17This session: the wiki and object model.

A fourth session, a38c8e08, was created one second before d106b6f4 in C:\Users\dayour and is a misfire — four PowerShell probes hunting a roo folder that does not exist. It never touched the repository.

Correction​

An earlier pass through this material reported that no session existed at the Clawpilot\raybot-runbook path. That was wrong. The search window was set to June, and the session is dated September.

The corrected finding is narrower but still holds: session 75113b80 is a review of the runbook, not the build that produced it. The full retraction, and the rule it produced, are on the provenance page.

The build transcript does not exist​

Five independent evidence points support this, the strongest being that RUNBOOK.legacy.md Step 0 creates its working directory via filesystem-create_directory — an MCP filesystem tool, not a Copilot CLI shell call. The build ran under a different client, whose transcripts were never in these stores.

The surviving record of the Coral build is the runbook prose, the screenshots, and the audit JSON. There is no replayable transcript. That is precisely why the runbook records the exact data-testid of every control it touched — it was written to be the transcript.

The full chain is on provenance.

The nine recovered commands​

From session d106b6f4, in order. The prompt that started it:

move all the screenshots from C:\0DEV0\raybot to C:\0DEV0\raybot\screenshots folder and set all relevant scripts and docs within raybot to use the screenshots folder going forward

#CommandOutcome
1Get-ChildItem -Path . -MaxDepth 1 -Filter "*.png" | ...Failed — -MaxDepth is not a valid parameter
2Retry with Where-Object { $_.DirectoryName -eq (Get-Location).Path }Moved 66 files
3Regex (\d{2}_[a-z][\w-]+\.png) to screenshots/$1 on RUNBOOK.mdPhase 1-6 references
4Regex (\d{2}-[\w-]+\.png) to captures-2026-06-17/annotated/$1Phase 7 references
5Both rewrites on RUNBOOK.legacy.md, plus brand-asset prefixingLegacy narrative
6Verify no PNGs remain in the repository rootConfirmed
7git --no-pager status --shortWorking-tree inspection
8git --no-pager add -ARename detection confirmed
9git --no-pager commit -m "Move all screenshots..."Commit 7698a0d

Result: 71 files changed, 59 insertions, 59 deletions. Git detected all 66 moves as renames rather than delete-plus-add pairs, which is why the commit is 118 lines rather than tens of thousands.

Each command is annotated in full on the command reference page.

Store query notes​

Three rules govern reproducing this analysis:

  • sessions is fast. tool_requests times out at 60 seconds even with LIMIT 12 and substr() — the nine commands were reconstructed from turn content, not from it.
  • Always filter turns and events by time. Never ILIKE-scan unfiltered.
  • Set the time window from the artifact, not from intuition. The correction above happened because the window was set from the commit date rather than the session date.

Every working query is on store queries.