Wide characters shifted everything after them one column to the right: - render.rs: vt100's empty wide-continuation cell was padded to a space, making wide chars occupy 2+1 columns — skip it entirely - ipc.rs buffer_to_ansi: same bug for daemon frames — skip cells covered by a preceding wide symbol (unicode-width) - app.rs: clamp virtual terminals to >= 2 columns (vt100 0.16 has a subtraction underflow panic on wide chars in a 1-col grid) and give content_area a sane 80x24 default so windows spawned before the first layout pass aren't degenerate - main.rs: use try_send for display frames so one slow/stalled client can no longer freeze the whole WM - integration test: new end-to-end check that emoji do not shift the row, plus fix a false match against the window title Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
26 lines
554 B
TOML
26 lines
554 B
TOML
[package]
|
|
name = "tui-wm"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[[bin]]
|
|
name = "tui-wm"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
crossterm = { version = "0.29", features = ["event-stream", "serde"] }
|
|
ratatui = "0.30"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
toml = "0.8"
|
|
toml_edit = "0.22"
|
|
portable-pty = "0.9"
|
|
vt100 = "0.16"
|
|
anyhow = "1"
|
|
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif", "bmp", "webp"] }
|
|
interprocess = "2.4"
|
|
unicode-width = "0.2"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|