Files
nyaterm/Cargo.toml
T
Kang 5efce4e7cf feat(assets): vendor bundled icons from a pinned manifest
Icons were previously hand-added, so their provenance and licensing lived in
folklore and a mis-painted asset was invisible at runtime: GPUI's `svg()`
reduces a file to an alpha mask, and `img()` keeps its pixels, but nothing
complains when the two are swapped.

Assets are now described by `scripts/icons.manifest` and vendored by
`scripts/sync-icons.sh` from pinned upstream releases, keeping the tree
reproducible and reviewable. `icons/**` stays monochrome and `color/**` full
colour; `scripts/check-icon-references.sh` fails the build when a referenced
asset is missing or painted through the wrong element, and runs in CI.

The lookup tables move out of `formatting/` into a dedicated `features/icons`
module so a ~1000-line brand table is not rebuilt inside a render closure, and
saved connections gain `icon_auto_detect`, which fills in a blank icon from the
detected remote system without ever overwriting a deliberate choice.
2026-07-26 23:21:58 +08:00

84 lines
2.8 KiB
TOML

[workspace]
members = [
"crates/nyaterm-app",
"crates/nyaterm-core",
"crates/nyaterm-desktop",
"crates/nyaterm-legacy",
"crates/nyaterm-otp",
"crates/nyaterm-store",
"crates/nyaterm-terminal",
"crates/nyaterm-terminal-gpui",
"crates/nyaterm-transport",
"crates/nyaterm-ui",
]
resolver = "3"
exclude = [
"vendor/russh",
"vendor/russh-sftp",
"vendor/zmodem2",
]
[workspace.package]
version = "1.1.12"
edition = "2024"
authors = ["Kang"]
license = "Apache-2.0"
repository = "https://github.com/nyakang/nyaterm"
[workspace.dependencies]
aes-gcm = "0.11"
alacritty_terminal = "0.26.0"
anyhow = "1"
async-http-proxy = { version = "1.2.5", features = ["runtime-tokio", "basic-auth"] }
base64 = "0.22"
bytes = "1.7"
digest = "0.11.0-rc.5"
dirs = "6"
encoding_rs = "0.8"
futures = "0.3"
gpui = "0.2.2"
hex = "0.4"
hmac = "0.13"
log = "0.4.11"
md5 = "0.8"
nyaterm-core = { path = "crates/nyaterm-core" }
nyaterm-desktop = { path = "crates/nyaterm-desktop" }
nyaterm-legacy = { path = "crates/nyaterm-legacy" }
nyaterm-otp = { path = "crates/nyaterm-otp" }
nyaterm-terminal = { path = "crates/nyaterm-terminal" }
nyaterm-terminal-gpui = { path = "crates/nyaterm-terminal-gpui" }
nyaterm-transport = { path = "crates/nyaterm-transport" }
nyaterm-ui = { path = "crates/nyaterm-ui" }
portable-pty = "0.9"
rand = { version = "0.10", features = ["thread_rng"] }
redb = "4.1.0"
regex = "1.11.1"
russh = { path = "vendor/russh/russh", features = ["des", "dsa"] }
russh-sftp = { path = "vendor/russh-sftp" }
rust-embed = { version = "8.11", features = ["include-exclude", "debug-embed"] }
serialport = { version = "4", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
sha1 = { version = "0.11", features = ["oid"] }
sha2 = { version = "0.11", features = ["oid"] }
signature = "3.0.0-rc.10"
thiserror = "2"
time = { version = "0.3.47", features = ["formatting", "local-offset", "macros"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "fs", "process", "io-util"] }
tokio-socks = "0.5.2"
tracing = "0.1"
tracing-appender = "0.2.4"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Test-only. Feature set must mirror gpui's own usvg dependency (default-features
# = false) so asset tests cannot pass under capabilities the app does not build.
usvg = { version = "0.45", default-features = false }
uuid = { version = "1", features = ["v4", "serde"] }
vte = "0.14"
zmodem2 = { path = "vendor/zmodem2" }
zed_reqwest = { package = "zed-reqwest", version = "0.12.15-zed", default-features = false, features = [
"blocking",
"json",
"rustls-tls-native-roots",
] }
zip = { version = "8.2.0", default-features = false, features = ["deflate"] }