diff --git a/crates/tui/src/core/engine/tests.rs b/crates/tui/src/core/engine/tests.rs index 4ef41314..59d30617 100644 --- a/crates/tui/src/core/engine/tests.rs +++ b/crates/tui/src/core/engine/tests.rs @@ -460,6 +460,7 @@ fn turn_tool_registry_builder_keeps_plan_mode_read_only_for_files() { assert!(registry.contains("update_plan")); assert!(registry.contains("task_list")); assert!(registry.contains("task_read")); + assert!(registry.contains("recall_archive")); let plan_state_tools = [ "checklist_add", @@ -488,6 +489,26 @@ fn turn_tool_registry_builder_keeps_plan_mode_read_only_for_files() { ); } +#[test] +fn parent_turn_registry_includes_recall_archive_for_investigative_modes() { + let (engine, _handle) = Engine::new(EngineConfig::default(), &Config::default()); + + for mode in [AppMode::Plan, AppMode::Agent, AppMode::Yolo] { + let registry = engine + .build_turn_tool_registry_builder( + mode, + engine.config.todos.clone(), + engine.config.plan_state.clone(), + ) + .build(engine.build_tool_context(mode, false)); + + assert!( + registry.contains("recall_archive"), + "parent {mode:?} registry should expose recall_archive" + ); + } +} + #[test] fn agent_mode_can_build_auto_approved_tool_context() { let (engine, _handle) = Engine::new(EngineConfig::default(), &Config::default()); diff --git a/crates/tui/src/core/engine/tool_setup.rs b/crates/tui/src/core/engine/tool_setup.rs index 32a8bd69..799f4b44 100644 --- a/crates/tui/src/core/engine/tool_setup.rs +++ b/crates/tui/src/core/engine/tool_setup.rs @@ -61,7 +61,8 @@ impl Engine { builder = builder .with_review_tool(self.deepseek_client.clone(), self.session.model.clone()) .with_user_input_tool() - .with_parallel_tool(); + .with_parallel_tool() + .with_recall_archive_tool(); if mode != AppMode::Plan { builder = builder