fix(chat): keep a long turn's Edited N files card whole across the page cut (#86)

The reported turn (/vp-auto, ~120 messages) showed "Edited 1 file": the
chat loads the newest 50 messages, and the turn's other Write
(rbac_routes_test.go, +176) was in the part before the page.

- turnCarry (agent-edits.js): every message the route's sliding window
  drops goes through it; it keeps the file changes since the last prompt it
  dropped (a dropped call whose result is on the page, and dropped
  subagents, included).
- A Claude page that starts mid-turn answers them as `turn_edits`; the
  chat keeps the one from the page that holds its oldest message and adds
  it to that turn's card.

Files a turn changed through Bash (python/sed writing a file) are still not
listed: nothing in the transcript says which files a command wrote.
This commit is contained in:
2026-10-23 14:31:58 +07:00
parent 5ccbaf5c23
commit f51a6a895e
8 changed files with 205 additions and 17 deletions
+4
View File
@@ -3324,6 +3324,10 @@ export interface TranscriptResult {
last_line: number;
/** JSONL line number of the first message in this page. */
first_line: number;
/** Claude only, when the page starts in the middle of a turn: the files
* that turn changed before the page's first message — the chat adds them
* to the turn's "Edited N files" card. */
turn_edits?: { path: string; added: number; removed: number; counted: boolean }[];
}
/** One entry in a session's transcript picker (main agent, a subagent, or a