Pre-flight
Summary
Workbench.show_surface() calls show_actions(view.actions) to sync each ViewAction button's label/variant/disabled state, but the two in-place refresh paths used by refresh_view() never called show_actions()
when a page is rendered via show_view(), subsequent refresh_view() calls leave action buttons stuck at whatever state they had on first render, even if the view's actions change on every refresh
Reproduction
run a long job with a button
Actual behaviour
add self.show_actions(view.actions) to both refresh_rows() and update_loading() in src/groundskeeping/widgets/workbench.py
Expected behaviour
show_actions(view.actions) is called every time a view is refreshed so that downstream consumers don't need to keep calling refresh as per the old flickering refresh path
Error output
System info
Pre-flight
Summary
Workbench.show_surface()callsshow_actions(view.actions)to sync each ViewAction button's label/variant/disabled state, but the two in-place refresh paths used byrefresh_view()never calledshow_actions()when a page is rendered via
show_view(), subsequentrefresh_view()calls leave action buttons stuck at whatever state they had on first render, even if the view'sactionschange on every refreshReproduction
run a long job with a button
Actual behaviour
add
self.show_actions(view.actions)to bothrefresh_rows()andupdate_loading()insrc/groundskeeping/widgets/workbench.pyExpected behaviour
show_actions(view.actions) is called every time a view is refreshed so that downstream consumers don't need to keep calling refresh as per the old flickering refresh path
Error output
System info