fix(mma): Add explicit reload logic when _cb_load_track fails in _cb_start_track
The test clicks btn_mma_start_track twice with different track_ids. When _cb_load_track fails for track_a, self.active_track remains None or wrong. Then track_b loads but we can't distinguish if a later call is for track_a retry or track_b (which already has an engine). This adds an explicit reload path when loaded track doesn't match requested track.
This commit is contained in:
+13
-1
@@ -2913,7 +2913,7 @@ class AppController:
|
||||
# Ensure it's loaded as active
|
||||
if not self.active_track or self.active_track.id != track_id:
|
||||
self._cb_load_track(track_id)
|
||||
if self.active_track:
|
||||
if self.active_track and self.active_track.id == track_id:
|
||||
# Use the active track object directly to start execution
|
||||
print(f"[DEBUG] _cb_start_track: track_id={self.active_track.id}, desc={self.active_track.description}")
|
||||
self._set_mma_status("running")
|
||||
@@ -2923,6 +2923,18 @@ class AppController:
|
||||
full_md, _, _ = aggregate.run(flat)
|
||||
threading.Thread(target=engine.run, kwargs={"md_content": full_md}, daemon=True).start()
|
||||
self._set_status(f"Track '{self.active_track.description}' started.")
|
||||
elif self.active_track and self.active_track.id != track_id:
|
||||
# load_track failed but active_track is still wrong - reload explicitly
|
||||
print(f"[DEBUG] _cb_start_track: load failed, trying reload track_id={track_id}")
|
||||
self._cb_load_track(track_id)
|
||||
if self.active_track and self.active_track.id == track_id:
|
||||
self._set_mma_status("running")
|
||||
engine = multi_agent_conductor.ConductorEngine(self.active_track, self.event_queue, auto_queue=not self.mma_step_mode)
|
||||
self.engines[self.active_track.id] = engine
|
||||
flat = project_manager.flat_config(self.project, self.active_discussion, track_id=self.active_track.id)
|
||||
full_md, _, _ = aggregate.run(flat)
|
||||
threading.Thread(target=engine.run, kwargs={"md_content": full_md}, daemon=True).start()
|
||||
self._set_status(f"Track '{self.active_track.description}' started.")
|
||||
return
|
||||
idx = 0
|
||||
if isinstance(user_data, int):
|
||||
|
||||
Reference in New Issue
Block a user