use tokio::sync::Mutex; #[derive(Default)] pub struct AppState { pub client: Mutex>, pub connected_as: Mutex>, /// Server-distributed excluded search phrases (message 160). A query /// containing one returns ZERO responses network-wide — the server simply /// never routes it — so the resolver strips these terms up front instead /// of discovering the silence by timeout. Lowercased on receipt. pub excluded_search_phrases: Mutex>, /// The experimental Freenet layer's one handle (default: disabled, inert). /// The privilege boundary: node operations never leave the Rust side. pub freenet: freenet_adapter::FreenetAdapter, /// The local Freenet peer THIS app launched (freenet.rs), if any. A node /// started by hand is not here — the adapter finds it all the same. pub freenet_node: std::sync::Mutex>, }