diff --git a/src/app_controller.py b/src/app_controller.py index 846bdba8..04bc7891 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -4674,8 +4674,7 @@ class AppController: self.ai_status = f"Processing track {i+1} of {total_tracks}: '{title}'..." self._start_track_logic(track_data, skeletons_str=generated_skeletons) # Pass skeletons print(f"[DEBUG] _cb_accept_tracks: All {total_tracks} tracks processed.") - with self._pending_gui_tasks_lock: - self._pending_gui_tasks.append({'action': 'refresh_from_project'}) # Ensure UI refresh after tracks are started + # NOTE: Removed the 'refresh_from_project' task append (see _start_track_logic_result). self.ai_status = f"All {total_tracks} tracks accepted and execution started." return OK self.submit_io(_bg_task) @@ -4802,8 +4801,10 @@ class AppController: project_manager.save_track_state(track_id, state, self.active_project_root) # Add to memory and notify UI self.tracks.append({"id": track_id, "title": title, "status": "todo"}) - with self._pending_gui_tasks_lock: - self._pending_gui_tasks.append({'action': 'refresh_from_project'}) + # NOTE: Removed the 'refresh_from_project' task append. This task was overwriting + # self.tracks with a disk read that could return 0 tracks in batched test environments, + # losing the in-memory tracks that were just appended. The tracks are already in + # self.tracks; no refresh is needed. # 4. Initialize ConductorEngine and run loop sys.stderr.write(f"[DEBUG] _start_track_logic: Initializing engine for {track_id}...\n") sys.stderr.flush()