The clear-on-CrdtOp change broke the producer's incremental-update contract. The producer ships dirty-range spans only on `full=false` frames; the frontend is expected to retain non-dirty spans across edits. Emptying both vectors meant the frontend ended up with only the small dirty-range spans, missing the rest of the viewport — all colors disappeared after an edit. Reverting here. The proper fix lives in pmacs core (T M11.7): producer must force `full=true` on generation transitions so the frontend gets a complete replacement set on every text edit. Once that lands, session-5's CrdtOp handler doesn't need to clear anything — the next frame's `full=true` does it via `replace_style_spans` / `replace_decorations`. This reverts commit 49785c4. Returns the consumer behavior to session-5's original "one-frame stale" artifact pending the core fix. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fonts | ||
| src | ||
| Cargo.toml | ||