[package] name = "mnw-cli" version = "0.1.4" edition = "2024" license = "LicenseRef-PolyForm-Noncommercial-1.0.0" [dependencies] # russh defaults to the aws-lc-rs backend (a C crypto library); `ring` is the # pure-Rust alternative it offers, matching the reqwest side below. russh = { version = "0.62", default-features = false, features = ["ring", "flate2", "rsa"] } russh-sftp = "2.1" ratatui = "0.30" crossterm = "0.29" # The family's design system. `makeover` holds the themes and resolves a # selection; `makeover-tui` is the terminal renderer, and its `theme` feature is # the intents-to-ratatui-colours mapping. No colour is named in this crate. makeover = "3.0" makeover-tui = { version = "0.41.0", features = ["theme"] } tokio = { version = "1", features = ["full"] } # `rustls-no-provider` rather than `rustls`: the latter is an alias for # `__rustls-aws-lc-rs`, which links a C crypto backend. The provider is ring # (pure Rust), installed process-wide by `crate::tls` before any client is built. reqwest = { version = "0.13", default-features = false, features = ["json", "rustls-no-provider", "query"] } rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "logging", "ring"] } serde = { version = "1", features = ["derive"] } serde_json = "1" rand = "0.10" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } anyhow = "1" bytes = "1" # The git-over-SSH command grammar, shared with the server's git_ssh door so # the two SSH doors cannot drift apart the way their hand-written parsers did. git-command = { path = "../shared/git-command" } hmac = "0.13.0" sha2 = "0.11.0" hex = "0.4.3" synckit-client = { git = "https://makenot.work/git/max/synckit.git", version = "0.10", default-features = false } uuid = "1" [lints.rust] unused = "warn" unreachable_pub = "warn" [lints.clippy] pedantic = { level = "warn", priority = -1 } # Allow-list tuned from a measured breakdown across server/multithreaded/pter # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything # else in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow" [dev-dependencies] tempfile = "3"