- is_web_url sliced the string at byte 7/8, panicking (and killing every session) when a remote host printed an OSC 8 or plain link with a multi-byte character at that offset and the user hovered it. It now compares bytes. - Paste confirmation also triggers on control characters other than tab (readline's C-o runs a line with no newline), and the preview shows them escaped. - Remote clipboard toasts escape control characters and state the line count, so 'ls\ncurl … | sh' no longer reads as a harmless 'ls'. - Inline images: dimensions are read from the header first and anything over the 32 Mpx per-terminal budget is refused before decoding. - Toasts: repeats extend the visible toast and at most 8 are kept, so trigger or OSC 52 floods can't stall frames. - The URL regex is compiled once. - Enable eframe's 'links' feature: without it every 'open in browser' (Cmd/Ctrl+click, GitHub repo links, the update link) was a silent no-op. Adds webbrowser 1.2.4 to the lockfile.
35 lines
896 B
TOML
35 lines
896 B
TOML
[package]
|
|
name = "nexus"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
build = "build.rs"
|
|
|
|
[[bin]]
|
|
name = "nexus-terminal"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
nexus-core = { path = "../core" }
|
|
eframe = { version = "0.36", default-features = false, features = ["default_fonts", "glow", "wayland", "x11", "accesskit", "persistence", "links"] }
|
|
egui = "0.36"
|
|
parking_lot = "0.12"
|
|
zeroize = "1"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt", "env-filter", "std", "ansi"] }
|
|
egui-phosphor = "0.14"
|
|
rfd = "0.17"
|
|
image = { version = "0.25", default-features = false, features = ["png", "gif"] }
|
|
base64 = "0.22"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
regex = "1"
|
|
alacritty_terminal = "0.26.0"
|
|
chrono = "0.4.45"
|
|
arboard = "3.6.1"
|
|
|
|
[build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|