You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
weiesky.wangc
committed
fix(v2-read): finalize crash orphans as completed deltas on cold reads (1.7.16)
- dead-session req-without-done now emits as a completed delta (response:{body:null})
so the client reconstructor accumulates its slice; previously the skipped slice
failed every later _totalMessageCount check and blanked the whole chat. Live
sessions keep the placeholder (liveness gate: owner pid + journal mtime).
- degraded broken-carrier merge: a _reconstructBroken entry that is its session's
only carrier merges as a truthful prefix (create branches only, _seqEpoch
guard), stamped _partialData; ChatView shows an incomplete-session banner.
Same-session merges onto a partial base whole-replace instead of prefix-extending.
- parity/reorder test pipelines kept in sync; new adapter orphan + predicate tests.
Copy file name to clipboardExpand all lines: history.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,10 @@
1
1
# Changelog
2
2
3
+
## 1.7.16 (unreleased)
4
+
5
+
- fix(v2-read): **crash orphans finalize as completed deltas on cold reads** — a dead session's req-without-done now emits as a completed delta (`response:{body:null}`) instead of an inProgress placeholder, so the client reconstructor accumulates its message slice; previously the slice was skipped, every later entry failed its `_totalMessageCount` check and the batch slimmer's last-carrier merge blanked the whole chat. Live sessions keep the placeholder (liveness gate: owner pid + journal mtime).
6
+
- fix(chat): **degraded merge for broken carriers** — a `_reconstructBroken` entry that is its session's only carrier merges as a truthful prefix (create branches only, `_seqEpoch` three-part guard); the session is stamped `_partialData` and ChatView shows an "incomplete session" banner. Same-session merges onto a partial base whole-replace instead of prefix-extending (no tail duplication); anchor-hit merges clear the flag. Parity/reorder test pipelines kept in sync.
7
+
3
8
## 1.7.15 (2026-08-03)
4
9
5
10
- feat(chat): **render tool_result images from Claude Code 2.x session logs** — new `server/lib/v2-transcript-normalizer.js` (CLIENT-SAFE) converts the new top-level-`message` JSONL format into legacy entries (per-session grouping, `/clear` segmentation, `message.id` assistant-row merging, `uuid` dedup), wired into cold/local/live ingest. The existing `extractToolResultImages` → `ToolResultView` chain then renders base64 images unchanged.
0 commit comments