app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit 8e7b52ca0edad7a8f560ad64d43d41564f00f886
parent 243886c1de9d624db38ea04b51f72c6e47bfffe2
Author: triesap <tyson@radroots.org>
Date:   Sun, 24 May 2026 09:53:46 +0000

core: use shared local events path contract

Diffstat:
MCargo.lock | 1+
MCargo.toml | 1+
Mcrates/shared/core/Cargo.toml | 1+
Mcrates/shared/core/src/paths.rs | 28+++++++++++++---------------
4 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -5088,6 +5088,7 @@ version = "0.1.0" dependencies = [ "chrono", "radroots_app_models", + "radroots_runtime_paths", "serde", "serde_json", "thiserror 2.0.18", diff --git a/Cargo.toml b/Cargo.toml @@ -34,6 +34,7 @@ radroots_nostr = { path = "../lib/crates/nostr", features = ["client"] } radroots_nostr_accounts = { path = "../lib/crates/nostr_accounts" } radroots_nostr_connect = { path = "../lib/crates/nostr_connect" } radroots_protected_store = { path = "../lib/crates/protected_store" } +radroots_runtime_paths = { path = "../lib/crates/runtime_paths" } radroots_secret_vault = { path = "../lib/crates/secret_vault", default-features = false, features = ["std"] } radroots_sql_core = { path = "../lib/crates/sql_core", features = ["native"] } radroots_app_core = { path = "crates/shared/core", version = "0.1.0" } diff --git a/crates/shared/core/Cargo.toml b/crates/shared/core/Cargo.toml @@ -10,6 +10,7 @@ publish = false [dependencies] chrono.workspace = true radroots_app_models.workspace = true +radroots_runtime_paths.workspace = true serde.workspace = true serde_json.workspace = true thiserror.workspace = true diff --git a/crates/shared/core/src/paths.rs b/crates/shared/core/src/paths.rs @@ -6,6 +6,17 @@ use std::{ path::{Path, PathBuf}, }; +pub use radroots_runtime_paths::{ + DEFAULT_SHARED_LOCAL_EVENTS_DB_FILE_NAME as SHARED_LOCAL_EVENTS_DB_FILE_NAME, + DEFAULT_SHARED_LOCAL_EVENTS_NAMESPACE as SHARED_LOCAL_EVENTS_NAMESPACE, + DEFAULT_SHARED_LOCAL_EVENTS_NAMESPACE_KIND as SHARED_LOCAL_EVENTS_NAMESPACE_KIND, + DEFAULT_SHARED_LOCAL_EVENTS_NAMESPACE_VALUE as SHARED_LOCAL_EVENTS_NAMESPACE_VALUE, +}; +use radroots_runtime_paths::{ + default_shared_local_events_database_path_from_data_root, + default_shared_local_events_database_path_from_shared_accounts_data_root, +}; + pub const APP_RUNTIME_NAMESPACE_KIND: &str = "apps"; pub const APP_RUNTIME_NAMESPACE_VALUE: &str = "app"; pub const APP_RUNTIME_NAMESPACE: &str = "apps/app"; @@ -17,10 +28,6 @@ pub const SHARED_IDENTITIES_NAMESPACE_KIND: &str = "shared"; pub const SHARED_IDENTITIES_NAMESPACE_VALUE: &str = "identities"; pub const SHARED_IDENTITIES_NAMESPACE: &str = "shared/identities"; pub const SHARED_IDENTITY_FILE_NAME: &str = "default.json"; -pub const SHARED_LOCAL_EVENTS_NAMESPACE_KIND: &str = "shared"; -pub const SHARED_LOCAL_EVENTS_NAMESPACE_VALUE: &str = "local_events"; -pub const SHARED_LOCAL_EVENTS_NAMESPACE: &str = "shared/local_events"; -pub const SHARED_LOCAL_EVENTS_DB_FILE_NAME: &str = "local_events.sqlite"; pub const APP_PATHS_PROFILE_ENV: &str = "RADROOTS_APP_PATHS_PROFILE"; pub const APP_PATHS_REPO_LOCAL_ROOT_ENV: &str = "RADROOTS_APP_PATHS_REPO_LOCAL_ROOT"; @@ -208,20 +215,11 @@ impl AppDesktopRuntimePaths { pub fn shared_local_events_database_path_from_shared_accounts( paths: &AppSharedAccountsPaths, ) -> Option<PathBuf> { - Some( - paths - .data_root - .parent()? - .join(SHARED_LOCAL_EVENTS_NAMESPACE_VALUE) - .join(SHARED_LOCAL_EVENTS_DB_FILE_NAME), - ) + default_shared_local_events_database_path_from_shared_accounts_data_root(&paths.data_root).ok() } fn shared_local_events_database_path_from_data_root(data_root: &Path) -> PathBuf { - data_root - .join(SHARED_LOCAL_EVENTS_NAMESPACE_KIND) - .join(SHARED_LOCAL_EVENTS_NAMESPACE_VALUE) - .join(SHARED_LOCAL_EVENTS_DB_FILE_NAME) + default_shared_local_events_database_path_from_data_root(data_root) } fn resolve_desktop_base_roots(