1.2.3
Terminal fixes.
The garbled terminal
Every terminal showed a line of %%%%%%% and a small stray box above the prompt, and typed characters smeared across it.
The cause was not terminal output at all. xterm.js ships internal helper elements — a character-measurement probe whose text content is literally 32 percent signs, plus an offscreen input textarea — and relies on its own stylesheet to hide them. That stylesheet (@xterm/xterm/css/xterm.css) was never imported, so both rendered as visible page content in normal flow, directly above the prompt.
Also fixed
- The pty is now spawned at the renderer's measured viewport size instead of a hardcoded 80×24 followed by a resize. The shell prints its first prompt immediately, and zsh pads its end-of-line marker to exactly one terminal width before erasing it — so starting at the wrong width left stray marks and desynchronized the shell's cursor model.
- Opening a terminal on a project whose folder no longer exists (moved, renamed, deleted, or on an unmounted drive) now shows a clear explanation instead of a raw
Error invoking remote methodbanner.
Hardening
- The path guard that restricts terminals to known project directories is unchanged and still strict, but it no longer echoes the requested filesystem path back to the renderer.
- Pty dimensions crossing the IPC boundary must now be integers within [1, 1000] on both create and resize. Previously only finiteness was checked, so values like
2.5and1e9reached node-pty.