kittynode_core/application/
init_kittynode.rs

1use crate::domain::config::Config;
2use crate::infra::config::ConfigStore;
3use eyre::Result;
4use tracing::info;
5
6/// Initializes Kittynode, preserving onboarding state
7pub fn init_kittynode() -> Result<()> {
8    // Load existing config to preserve onboarding_completed
9    let existing_config = ConfigStore::load().unwrap_or_default();
10    let onboarding_completed = existing_config.onboarding_completed;
11
12    // Create fresh config but preserve onboarding state
13    let mut config = Config {
14        onboarding_completed,
15        ..Default::default()
16    };
17
18    ConfigStore::save_normalized(&mut config)?;
19    info!(
20        "Initialized Kittynode, preserved onboarding_completed: {}",
21        onboarding_completed
22    );
23    Ok(())
24}