  
          runningtask = tk.BooleanVar()
          runningtask.set(False)
  
          actioncommand = tk.StringVar()
          actioncommand.set(None)
  
          generatecommand = tk.StringVar()
          generatecommand.set(None)
 
</s> remove         lbl.pack(padx=5, pady=5, side=tk.LEFT, anchor=tk.N, expand=True)
 </s> add         lbl.pack(pady=5, side=tk.LEFT, anchor=tk.N, expand=True) </s> remove         tbox = ttk.Entry(ctl_frame, width=8, textvariable=tk_var, justify=tk.RIGHT)
 </s> add         tbox = ttk.Entry(ctl_frame, width=6, textvariable=tk_var, justify=tk.RIGHT)
        istraining = tk.BooleanVar()
        istraining.set(False)

  
          runningtask = tk.BooleanVar()
          runningtask.set(False)
  
        istraining = tk.BooleanVar()
        istraining.set(False)

          actioncommand = tk.StringVar()
          actioncommand.set(None)
  
          generatecommand = tk.StringVar()
          generatecommand.set(None)
keep keep keep add keep keep keep keep keep
 GUI responsiveness and feature updates

- Add error handling to LongRunningTask
- Analysis: Fix timestats bug for missing session data
- Training: Update training graph inside LongRunningTask
- Training: Smoothing Amount Slider geometry fix
- Training: Auto update Analysis tab on training start and save interval
- Scripts: Keep control of the UI when terminating by terminating using LongRunningTask 
lib/gui/utils.py