@@ -53,22 +53,27 @@ def on_load(self) -> None:
5353
5454 def on_mount (self ) -> None :
5555 """Initialize components."""
56- from .runner import BorgRunner
57-
5856 self .query_one ("#logo" ).styles .animate ("opacity" , 1 , duration = 1 )
5957 self .query_one ("#slogan" ).styles .animate ("opacity" , 1 , duration = 1 )
6058
61- self .start_time = time .monotonic ()
62- self .process_running = True
63- args = getattr (self , "borg_args" , ["--version" ]) # Default to safe command if none passed
64- self .runner = BorgRunner (args , self .handle_log_event )
65- self .runner_task = asyncio .create_task (self .runner .start ())
59+ # Delay runner start until after widgets are fully mounted
60+ self .call_after_refresh (self .start_runner )
61+
62+ def start_runner (self ) -> None :
63+ """Start the Borg runner after all widgets are mounted."""
64+ from .runner import BorgRunner
6665
6766 # Speed tracking
6867 self .total_lines_processed = 0
6968 self .last_lines_processed = 0
7069 self .speed_timer = self .set_interval (1.0 , self .compute_speed )
7170
71+ self .start_time = time .monotonic ()
72+ self .process_running = True
73+ args = getattr (self , "borg_args" , ["--version" ]) # Default to safe command if none passed
74+ self .runner = BorgRunner (args , self .handle_log_event )
75+ self .runner_task = asyncio .create_task (self .runner .start ())
76+
7277 def compute_speed (self ) -> None :
7378 """Calculate and update speed (lines per second)."""
7479 current_lines = self .total_lines_processed
0 commit comments