Root cause (from the server trace: 69 banner bytes then immediate "to_browser
ended" = pty_exit): tmux spawned and exited instantly, writing its "sessions
should be nested with care" warning to stderr (not the PTY). The operator runs
the daemon inside their own tmux, so $TMUX was inherited and the spawned tmux
refused to nest → browser saw nothing.
- daemon (v0.2.2): spawn tmux on a DEDICATED socket (`tmux -L clawmates
new-session -A -s main`) and `env_remove("TMUX")`, so it can never collide with
or be refused by the operator's tmux.
- NodeTerminalApp: debounce the ResizeObserver (150ms). The pull-out animates
open, firing the observer on every pixel — previously ~80 resize frames per
open, each fit()+SIGWINCH. Now one resize after layout settles.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
29 lines
796 B
TOML
29 lines
796 B
TOML
[package]
|
|
name = "clawmates-node"
|
|
version = "0.2.2"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
publish.workspace = true
|
|
|
|
[[bin]]
|
|
name = "clawmates-node"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
tokio = { workspace = true, features = ["process"] }
|
|
tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] }
|
|
futures = "0.3"
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
sysinfo = "0.33"
|
|
portable-pty = "0.8"
|
|
base64 = "0.22"
|
|
cm-sandbox = { path = "../../cm-sandbox" }
|
|
# Linking cm-sandbox (bollard) brings a second rustls provider into the graph, so
|
|
# rustls can't auto-pick one — we install `ring` explicitly at startup.
|
|
rustls = { version = "0.23", default-features = false, features = ["ring"] }
|
|
|
|
[lints]
|
|
workspace = true
|