the freenet layer: adapter, persona and profile services, the contracts bundled as commitments

This commit is contained in:
KeelrLeek committed 2026-09-02 13:43:16 -05:00
1 parent 63a0357651
commit 6dce4e2ac7
16 files changed
+3337 -10

No files matched your search

+34
View File
@@ -148,6 +148,40 @@ pub struct AppConfig {
/// their status and stats stream in while connected.
#[serde(default)]
pub buddies: Vec<String>,
/// The experimental Freenet social layer (crates/freenet-adapter).
/// None → false: strictly opt-in, and flipping it off is the kill
/// switch — the adapter drops its connection and stops retrying. A
/// missing or broken node never affects Soulseek or playback.
#[serde(default)]
pub freenet_enabled: Option<bool>,
/// WebSocket API port of the EXTERNAL local Freenet node. None → 7509.
#[serde(default)]
pub freenet_ws_port: Option<u16>,
/// Whether profile avatars fetched over Freenet may be decoded and
/// shown. None → true (the pipeline sanitizes them regardless); false
/// degrades every remote avatar to the identicon, no fetch at all.
#[serde(default)]
pub freenet_load_remote_images: Option<bool>,
/// The Community area's local view of a Soulseek contact: petname, group,
/// note and the two local marks. Private to this device by design — none
/// of it is ever published or sent to the person it describes.
#[serde(default)]
pub contacts: Vec<ContactMeta>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ContactMeta {
pub username: String,
#[serde(default)]
pub petname: Option<String>,
#[serde(default)]
pub group: Option<String>,
#[serde(default)]
pub note: Option<String>,
#[serde(default)]
pub trusted: bool,
#[serde(default)]
pub favorite: bool,
}
/// Default longest edge for embedded covers when the user hasn't chosen.