fix(assistant): bootstrap empty persona dirs; re-run bootstrap after workspace reset by wsp1911 · Pull Request #236 · GCWing/BitFun

Expand Up @@ -17,7 +17,9 @@ use crate::agentic::image_analysis::ImageContextData; use crate::agentic::session::SessionManager; use crate::agentic::tools::pipeline::{SubagentParentInfo, ToolPipeline}; use crate::agentic::WorkspaceBinding; use crate::service::bootstrap::is_workspace_bootstrap_pending; use crate::service::bootstrap::{ initialize_workspace_persona_files, is_workspace_bootstrap_pending, }; use crate::util::errors::{BitFunError, BitFunResult}; use log::{debug, error, info, warn}; use std::path::{Path, PathBuf}; Expand Down Expand Up @@ -633,7 +635,11 @@ Update the persona files and delete BOOTSTRAP.md as soon as bootstrap is complet workspace_path: String, ) -> BitFunResult<AssistantBootstrapEnsureOutcome> { let workspace_root = PathBuf::from(&workspace_path); if !is_workspace_bootstrap_pending(&workspace_root) { // Empty or partial assistant dirs may never have run create_assistant_workspace; fill only // missing persona stubs (never overwrite). Ensures BOOTSTRAP.md exists when appropriate. initialize_workspace_persona_files(&workspace_root).await?; let bootstrap_pending = is_workspace_bootstrap_pending(&workspace_root); if !bootstrap_pending { return Ok(AssistantBootstrapEnsureOutcome::Skipped { session_id, reason: AssistantBootstrapSkipReason::BootstrapNotRequired, Expand All @@ -649,7 +655,9 @@ Update the persona files and delete BOOTSTRAP.md as soon as bootstrap is complet } };
if self.session_manager.get_turn_count(&session_id) > 0 { let turn_count = self.session_manager.get_turn_count(&session_id);
if turn_count > 0 { return Ok(AssistantBootstrapEnsureOutcome::Skipped { session_id, reason: AssistantBootstrapSkipReason::SessionHasExistingTurns, Expand Down