wraith/src-tauri/Cargo.toml
Vantz Stockwell 09c2f1a1ff
All checks were successful
Build & Sign Wraith / Build Windows + Sign (push) Successful in 3m59s
feat: RDP dynamic resize on window resize (MobaXTerm-style)
When the Wraith window is resized, the RDP session now resizes to fill
the entire canvas area — matching MobaXTerm behavior.

Implementation:
- Enabled ironrdp displaycontrol feature for Display Control Virtual Channel
- Added Resize input event to RDP session thread
- ActiveStage::encode_resize() sends monitor layout PDU to server
- Server re-renders at new resolution and sends updated frames
- Frontend ResizeObserver on canvas wrapper, debounced 500ms
- Canvas CSS changed from max-width/max-height to width/height: 100%
- Mouse coordinate mapping uses canvas.width/height (actual resolution)
  instead of initial rdpWidth/rdpHeight
- Image and front buffer reallocated on resize to match new dimensions
- Width constrained to even numbers per RDP spec, min 200px

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:44:43 -04:00

74 lines
1.8 KiB
TOML

[package]
name = "wraith"
version = "0.1.0"
edition = "2024"
default-run = "wraith"
[lib]
name = "wraith_lib"
crate-type = ["lib", "cdylib", "staticlib"]
[[bin]]
name = "wraith-mcp-bridge"
path = "src/bin/wraith_mcp_bridge.rs"
[features]
default = []
devtools = ["tauri/devtools"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-shell = "2"
tauri-plugin-updater = "2"
anyhow = "1"
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
rusqlite = { version = "0.32", features = ["bundled"] }
aes-gcm = "0.10"
argon2 = "0.5"
rand = "0.9"
hex = "0.4"
uuid = { version = "1", features = ["v4"] }
base64 = "0.22"
dashmap = "6"
tokio = { version = "1", features = ["full"] }
tokio-util = "0.7"
zeroize = { version = "1", features = ["derive"] }
async-trait = "0.1"
log = "0.4"
env_logger = "0.11"
thiserror = "2"
russh = "0.48"
russh-sftp = "2.1.1"
ssh-key = { version = "0.6", features = ["ed25519", "rsa"] }
# EC key PEM decryption (all already in dep tree via russh)
md5 = "0.7"
aes = "0.8"
cbc = "0.1"
block-padding = "0.3"
pem = "3"
pkcs8 = { version = "0.10", features = ["pem"] }
sec1 = { version = "0.7", features = ["pem"] }
# Local PTY for AI copilot panel
portable-pty = "0.8"
# MCP HTTP server (for bridge binary communication)
axum = "0.8"
ureq = "3"
png = "0.17"
# RDP (IronRDP)
ironrdp = { version = "0.14", features = ["connector", "session", "graphics", "input", "displaycontrol"] }
ironrdp-tokio = { version = "0.8", features = ["reqwest-rustls-ring"] }
ironrdp-tls = { version = "0.2", features = ["rustls"] }
tokio-rustls = "0.26"
x509-cert = { version = "0.2", default-features = false, features = ["std"] }
sspi = { version = "0.18", features = ["network_client"] }