chore(mma): Deterministic track IDs, worker spawn hooks, and improved simulation reliability
This commit is contained in:
22
gui_2.py
22
gui_2.py
@@ -387,6 +387,8 @@ class App:
|
||||
'btn_mma_plan_epic': self._cb_plan_epic,
|
||||
'btn_mma_accept_tracks': self._cb_accept_tracks,
|
||||
'btn_mma_start_track': self._cb_start_track,
|
||||
'btn_approve_tool': self._handle_approve_tool,
|
||||
'btn_approve_spawn': self._handle_approve_spawn,
|
||||
}
|
||||
self._predefined_callbacks: dict[str, Callable[..., Any]] = {
|
||||
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file
|
||||
@@ -886,6 +888,8 @@ class App:
|
||||
if item in self._settable_fields:
|
||||
attr_name = self._settable_fields[item]
|
||||
setattr(self, attr_name, value)
|
||||
if item == "current_provider" or item == "current_model":
|
||||
ai_client.set_provider(self.current_provider, self.current_model)
|
||||
if item == "gcli_path":
|
||||
if not ai_client._gemini_cli_adapter:
|
||||
ai_client._gemini_cli_adapter = ai_client.GeminiCliAdapter(binary_path=value)
|
||||
@@ -984,6 +988,22 @@ class App:
|
||||
else:
|
||||
print("[DEBUG] No pending dialog to reject")
|
||||
|
||||
def _handle_approve_tool(self) -> None:
|
||||
"""Logic for approving a pending tool execution via API hooks."""
|
||||
print("[DEBUG] _handle_approve_tool called")
|
||||
if self._pending_ask:
|
||||
self._handle_approve_ask()
|
||||
else:
|
||||
print("[DEBUG] No pending tool approval found")
|
||||
|
||||
def _handle_approve_spawn(self) -> None:
|
||||
"""Logic for approving a pending sub-agent spawn via API hooks."""
|
||||
print("[DEBUG] _handle_approve_spawn called")
|
||||
if self._pending_mma_spawn:
|
||||
self._handle_mma_respond(approved=True, prompt=self._mma_spawn_prompt, context_md=self._mma_spawn_context)
|
||||
else:
|
||||
print("[DEBUG] No pending spawn approval found")
|
||||
|
||||
def _handle_mma_respond(self, approved: bool, payload: str = None, abort: bool = False, prompt: str = None, context_md: str = None) -> None:
|
||||
if self._pending_mma_approval:
|
||||
dlg = self._pending_mma_approval.get("dialog_container", [None])[0]
|
||||
@@ -2054,7 +2074,7 @@ class App:
|
||||
step_mode=t_data.get("step_mode", False)
|
||||
)
|
||||
tickets.append(ticket)
|
||||
track_id = f"track_{uuid.uuid4().hex[:8]}"
|
||||
track_id = f"track_{uuid.uuid5(uuid.NAMESPACE_DNS, f'{self.active_project_path}_{title}_{now.isoformat()}').hex[:12]}"
|
||||
track = Track(id=track_id, description=title, tickets=tickets)
|
||||
# Initialize track state in the filesystem
|
||||
from models import TrackState, Metadata
|
||||
|
||||
Reference in New Issue
Block a user