conductor(checkpoint): Checkpoint end of Phase 4

This commit is contained in:
2026-05-02 19:00:28 -04:00
parent 68d18f45a6
commit 2441ea64a3
3 changed files with 80 additions and 5 deletions
+21 -2
View File
@@ -235,6 +235,7 @@ class AppController:
self.ui_global_system_prompt: str = ""
self.ui_base_system_prompt: str = ""
self.ui_use_default_base_prompt: bool = True
self._show_base_prompt_diff_modal: bool = False
self.ui_project_context_marker: str = ""
self.ui_agent_tools: Dict[str, bool] = {}
self.available_models: List[str] = []
@@ -358,6 +359,7 @@ class AppController:
'project_system_prompt': 'ui_project_system_prompt',
'base_system_prompt': 'ui_base_system_prompt',
'use_default_base_prompt': 'ui_use_default_base_prompt',
'show_base_prompt_diff_modal': '_show_base_prompt_diff_modal',
'global_preset_name': 'ui_global_preset_name',
'project_preset_name': 'ui_project_preset_name',
'ui_active_tool_preset': 'ui_active_tool_preset',
@@ -414,6 +416,7 @@ class AppController:
'project_system_prompt': 'ui_project_system_prompt',
'base_system_prompt': 'ui_base_system_prompt',
'use_default_base_prompt': 'ui_use_default_base_prompt',
'show_base_prompt_diff_modal': '_show_base_prompt_diff_modal',
'global_preset_name': 'ui_global_preset_name',
'project_preset_name': 'ui_project_preset_name',
'ui_active_tool_preset': 'ui_active_tool_preset',
@@ -515,6 +518,8 @@ class AppController:
'btn_approve_mma_step': lambda: self._handle_mma_respond(approved=True),
'btn_approve_spawn': lambda: self._handle_mma_respond(approved=True),
'btn_prune_logs': self.cb_prune_logs,
'btn_reset_base_prompt': self._cb_reset_base_prompt,
'btn_show_base_prompt_diff': self._cb_show_base_prompt_diff,
}
self._predefined_callbacks: dict[str, Callable[..., Any]] = {
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file,
@@ -1413,10 +1418,12 @@ class AppController:
# Clear response area for new turn
self.ai_response = ""
csp = filter(bool, [self.ui_global_system_prompt.strip(), self.ui_project_system_prompt.strip()])
ai_client.set_custom_system_prompt("\n\n".join(csp))
custom_prompt = "\n\n".join(csp)
ai_client.set_custom_system_prompt(custom_prompt)
ai_client.set_base_system_prompt(self.ui_base_system_prompt)
ai_client.set_use_default_base_prompt(self.ui_use_default_base_prompt)
ai_client.set_project_context_marker(self.ui_project_context_marker)
self.last_resolved_system_prompt = ai_client.get_combined_system_prompt()
ai_client.set_model_params(self.temperature, self.max_tokens, self.history_trunc_limit, self.top_p)
ai_client.set_agent_tools(self.ui_agent_tools) # Force update adapter path right before send to bypass potential duplication issues
self._update_gcli_adapter(self.ui_gemini_cli_path)
@@ -1971,6 +1978,13 @@ class AppController:
models.save_config(self.config)
self._set_status("config saved")
def _cb_reset_base_prompt(self, user_data=None) -> None:
self.ui_base_system_prompt = ai_client._SYSTEM_PROMPT
self.ui_use_default_base_prompt = False
def _cb_show_base_prompt_diff(self, user_data=None) -> None:
self._show_base_prompt_diff_modal = True
def _cb_disc_create(self) -> None:
nm = self.ui_disc_new_name_input.strip()
if nm:
@@ -2547,7 +2561,11 @@ class AppController:
discussion_text = aggregate.build_discussion_text(history)
csp = filter(bool, [self.ui_global_system_prompt.strip(), self.ui_project_system_prompt.strip()])
self.last_resolved_system_prompt = "\n\n".join(csp)
ai_client.set_custom_system_prompt("\n\n".join(csp))
ai_client.set_base_system_prompt(self.ui_base_system_prompt)
ai_client.set_use_default_base_prompt(self.ui_use_default_base_prompt)
ai_client.set_project_context_marker(self.ui_project_context_marker)
self.last_resolved_system_prompt = ai_client.get_combined_system_prompt()
self.last_aggregate_markdown = full_md
return full_md, path, file_items, stable_md, discussion_text
@@ -2894,3 +2912,4 @@ class AppController:
)
project_manager.save_track_state(self.active_track.id, state, self.active_project_root)