- Rebuild the GPUI client against the 1:1 UI spec with all six modules, terminal context menu, SSE reveal, system tray and standalone windows. - Add an SFTP session self-healing layer: detect dead channels, drop the cached session, reconnect and retry across every file and transfer path. - Add a terminal refresh button that recreates the pane in place, with proper loading and error feedback in both GPUI and the Web console. - Route startup and autostart through vps-switch-gpui when it is present, and make repeated launches wake the existing window via a file lock. - Strip debuginfo in release, add a GitHub Actions matrix workflow for macOS and Linux, and refresh the Windows installers and README.
75 lines
2.1 KiB
TOML
75 lines
2.1 KiB
TOML
[workspace]
|
|
members = ["gpui-client"]
|
|
resolver = "2"
|
|
|
|
[package]
|
|
name = "vps-switch"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Lightweight VPS manager and MCP server"
|
|
authors = ["weidu12123"]
|
|
|
|
[dependencies]
|
|
tokio = { version = "1.40", features = ["full"] }
|
|
axum = { version = "0.7", features = ["ws", "macros"] }
|
|
tower-http = { version = "0.6", features = ["fs", "cors"] }
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
russh = { version = "0.63.0", default-features = false, features = ["flate2", "ring", "rsa", "legacy-ed25519-pkcs8-parser"] }
|
|
russh-sftp = "3.0.1"
|
|
alacritty_terminal = "0.26.0"
|
|
portable-pty = "0.9.0"
|
|
tokio-util = { version = "0.7", features = ["io"] }
|
|
bytes = "1"
|
|
rust-embed = { version = "8.13.0", features = ["debug-embed", "mime-guess"] }
|
|
mime_guess = "2.0"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
aes-gcm = "0.10"
|
|
scrypt = { version = "0.11", default-features = false, features = ["std"] }
|
|
rand = "0.8"
|
|
base64 = "0.22"
|
|
uuid = { version = "1.10", features = ["v4"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
anyhow = "1.0"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
futures = "0.3"
|
|
async-trait = "0.1"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
wry = "0.57.0"
|
|
tao = "0.37.1"
|
|
tray-icon = "0.26.1"
|
|
# 托盘驻留时把 WebView2 降到低内存档(ICoreWebView2_19::SetMemoryUsageTargetLevel)。
|
|
# 只用 wry 暴露的 controller() 拿原生接口,不碰 wry 内部实现。
|
|
webview2-com = "0.39.1"
|
|
windows-core = "0.62"
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winres = "0.1"
|
|
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
|
|
[profile.dev.package]
|
|
gpui-pre = { opt-level = 3 }
|
|
gpui-pre-platform = { opt-level = 3 }
|
|
gpui-pre-windows = { opt-level = 3 }
|
|
gpui-base = { opt-level = 3 }
|
|
gpui-component = { opt-level = 3 }
|
|
gpui-kit = { opt-level = 3 }
|
|
gpui-kit-assets = { opt-level = 3 }
|
|
cosmic-text = { opt-level = 3 }
|
|
rustybuzz = { opt-level = 3 }
|
|
swash = { opt-level = 3 }
|
|
taffy = { opt-level = 3 }
|
|
ttf-parser = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
usvg = { opt-level = 3 }
|
|
alacritty_terminal = { opt-level = 3 }
|
|
|
|
[profile.release]
|
|
strip = "debuginfo"
|