community fixes

This commit is contained in:
jaberjaber23
2026-03-15 06:23:04 +03:00
parent 14c4c1d1f5
commit 80eed53305
5 changed files with 12 additions and 18 deletions
+1 -1
View File
@@ -925,7 +925,7 @@ impl ChannelBridgeHandle for KernelBridgeAdapter {
return "OFP peer network is disabled. Set network_enabled = true in config.toml."
.to_string();
}
match &self.kernel.peer_registry {
match self.kernel.peer_registry.get() {
Some(registry) => {
let peers = registry.all_peers();
if peers.is_empty() {
+1 -1
View File
@@ -4805,7 +4805,7 @@ pub async fn network_status(State(state): State<Arc<AppState>>) -> impl IntoResp
&& !state.kernel.config.network.shared_secret.is_empty();
let (node_id, listen_address, connected_peers, total_peers) =
if let Some(ref peer_node) = state.kernel.peer_node {
if let Some(peer_node) = state.kernel.peer_node.get() {
let registry = peer_node.registry();
(
peer_node.node_id().to_string(),
+1 -1
View File
@@ -45,7 +45,7 @@ pub async fn build_router(
let state = Arc::new(AppState {
kernel: kernel.clone(),
started_at: Instant::now(),
peer_registry: kernel.peer_registry.as_ref().map(|r| Arc::new(r.clone())),
peer_registry: kernel.peer_registry.get().map(|r| Arc::new(r.clone())),
bridge_manager: tokio::sync::Mutex::new(bridge),
channels_config: tokio::sync::RwLock::new(channels_config),
shutdown_notify: Arc::new(tokio::sync::Notify::new()),
+1 -1
View File
@@ -949,7 +949,7 @@ async fn handle_command(
let msg = if !state.kernel.config.network_enabled {
"OFP network disabled.".to_string()
} else {
match &state.kernel.peer_registry {
match state.kernel.peer_registry.get() {
Some(registry) => {
let peers = registry.all_peers();
if peers.is_empty() {
+8 -14
View File
@@ -141,10 +141,10 @@ pub struct OpenFangKernel {
pub hooks: openfang_runtime::hooks::HookRegistry,
/// Persistent process manager for interactive sessions (REPLs, servers).
pub process_manager: Arc<openfang_runtime::process_manager::ProcessManager>,
/// OFP peer registry — tracks connected peers.
pub peer_registry: Option<openfang_wire::PeerRegistry>,
/// OFP peer node — the local networking node.
pub peer_node: Option<Arc<openfang_wire::PeerNode>>,
/// OFP peer registry — tracks connected peers (OnceLock for safe init after Arc creation).
pub peer_registry: OnceLock<openfang_wire::PeerRegistry>,
/// OFP peer node — the local networking node (OnceLock for safe init after Arc creation).
pub peer_node: OnceLock<Arc<openfang_wire::PeerNode>>,
/// Boot timestamp for uptime calculation.
pub booted_at: std::time::Instant,
/// WhatsApp Web gateway child process PID (for shutdown cleanup).
@@ -1036,8 +1036,8 @@ impl OpenFangKernel {
auto_reply_engine,
hooks: openfang_runtime::hooks::HookRegistry::new(),
process_manager: Arc::new(openfang_runtime::process_manager::ProcessManager::new(5)),
peer_registry: None,
peer_node: None,
peer_registry: OnceLock::new(),
peer_node: OnceLock::new(),
booted_at: std::time::Instant::now(),
whatsapp_gateway_pid: Arc::new(std::sync::Mutex::new(None)),
channel_adapters: dashmap::DashMap::new(),
@@ -4184,14 +4184,8 @@ impl OpenFangKernel {
"OFP peer node started"
);
// SAFETY: These fields are only written once during startup.
// We use unsafe to set them because start_background_agents runs
// after the Arc is created and the kernel is otherwise immutable.
let self_ptr = Arc::as_ptr(self) as *mut OpenFangKernel;
unsafe {
(*self_ptr).peer_registry = Some(registry.clone());
(*self_ptr).peer_node = Some(node.clone());
}
let _ = self.peer_registry.set(registry.clone());
let _ = self.peer_node.set(node.clone());
// Connect to bootstrap peers
for peer_addr_str in &self.config.network.bootstrap_peers {