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:
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(