Streaming partials were appended to log.raw per chunk, each carrying the full cumulative content, so one response left dozens of partial lines persisted. GUI clients parsing the snapshot re-rendered the growing block once per partial (O(N^2)) and replayed all historical partials on every reconnect, causing intermittent rendering loops. Partials are no longer persisted: AppendBlock writes only finalized blocks to log.raw; SetPartial broadcasts the in-flight block without storing it. New chat.raw StreamRaw file is the authoritative live JSONL source (finalized history replay, then live deltas); log.raw is a finalized-only one-shot snapshot. GUI streams chat.raw, never polls log.raw. |
||
|---|---|---|
| .. | ||
| blockid_e2e_test.sh | ||
| cache.go | ||
| cache_test.go | ||
| dispatch_test.go | ||
| doc.go | ||
| newroot.go | ||
| spec.go | ||
| support.go | ||