lumbda/wasm
russell@unturf.com 84bd7cac8c
repl: preserve streamed output on cancel + mid-stream tier errors
attachStreaming.finalize() used to nuke every streamed line and
rebuild from the eval's final text whenever the streamed buffer
didn't match — which always happened on cancel (no final text)
and on tier errors fired mid-stream (asm 'index out of bounds'
5000 lines into a sieve, say). The user watched output scroll for
30 seconds, hit cancel, and saw it all disappear replaced by
'error: cancelled'.

New finalize logic:
  * success + streamed matches full output → keep DOM
  * success + no streaming happened        → rebuild from text
  * error  + prior streaming               → KEEP streamed divs,
    append the error as a single trailing line
  * error  + no streaming                  → show error only

Trailing error line gets an .err-line class so just the error is
tinted with --err, the preserved output stays the original colour.
2026-06-15 08:33:34 -04:00
..
app playground streaming: typed messages, no \n bytes on the wire 2026-06-15 06:30:10 -04:00
asm asm streaming: recycle the 64 KB output buffer after each flush 2026-06-15 06:36:00 -04:00
c repl portal: overwrite-guard, rename, export/import, cross-tab restore 2026-06-15 08:14:53 -04:00
dist-repl repl: preserve streamed output on cancel + mid-stream tier errors 2026-06-15 08:33:34 -04:00
python playground: stream tier output line-by-line during eval 2026-06-14 20:25:47 -04:00
repl repl: preserve streamed output on cancel + mid-stream tier errors 2026-06-15 08:33:34 -04:00
tests wasm asm: stream output line-by-line via new emit_chunk env import 2026-06-14 20:35:13 -04:00
Makefile repl: portal save/resume — vault-backed tier checkpoints 2026-06-15 07:43:07 -04:00