Skip to content

v26.8.15

Latest

Choose a tag to compare

@flashosophy flashosophy released this 15 Aug 08:26

OpenSplit v26.8.15 — GLM 5.3 assist Fix Summary

Commit: 0dfc8fc on main · Verified with cargo check, cargo test (3/3), and svelte-check (0 errors)

1. Terminal freeze (main bug)

Heavy commands (pane_foreground_info, resolve_split_spec, detect_tools,
get_startup_action, get_shell_spec, spawn_pane) now run on Tauri's async
runtime instead of the UI thread.

  • Sync Tauri commands execute on the main thread, so the full process-table
    sweep done on every right-click was blocking keystrokes, output delivery,
    and context-menu actions — the exact "dead terminal, nothing responds" bug.
  • Slimmed the sysinfo refresh to just exe/cmd/cwd (previously collected
    unused per-process envs and disk counters).
  • Config read lock is now dropped before the process sweep, so set_*
    commands no longer block behind it.

2. Close Pane race

performClose now marks the pane as intentionally closed before killing it,
so the pane:exit handler can't respawn a fresh shell over the leaf you just
asked to close.

3. Output event flooding

PTY output now flows through a coalescing emitter thread (max one pane:data
event per 4 ms / 256 KB batch), so heavy output can no longer flood the
UI-thread event queue and degrade the app over long sessions.

4. UTF-8 corruption

Partial multi-byte characters split across read boundaries are now held back
and completed by the next chunk, instead of turning into � (this affected
box-drawing chars common in TUI tools). Covered by 3 unit tests.