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. |
||
|---|---|---|
| .. | ||
| design | ||
| img | ||
| architecture-9p.md | ||
| architecture-core.md | ||
| architecture-embedding.md | ||
| architecture-ide.md | ||
| architecture-kde.md | ||
| architecture-prompting.md | ||
| architecture-remote.md | ||
| architecture-tools.md | ||
| architecture-toolsrv.md | ||
| architecture-virtfs.md | ||
| architecture.md | ||
| compatibility-roadmap.md | ||
| embedding.conf.sample | ||
| event-topics.md | ||
| evolution.md | ||
| lessons-learned.md | ||
| nerv-outreach-draft.md | ||
| streaming-rdwr.md | ||
| usage.md | ||