Skip to content

Commit 358f2a9

Browse files
abidlabsclaudegradio-pr-bot
authored
Fix alerts placeholder flashing on reports page (#444)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
1 parent 4919c31 commit 358f2a9

2 files changed

Lines changed: 23 additions & 17 deletions

File tree

.changeset/eleven-roses-wear.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"trackio": minor
3+
---
4+
5+
feat:Fix alerts placeholder flashing on reports page

trackio/ui/reports_page.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,8 @@ def display_reports(project: str | None, selected_run: str | None):
173173
gr.Markdown(report.content)
174174

175175
gr.Markdown("## Alerts")
176-
alerts_placeholder = gr.Markdown(visible=False)
177-
alerts_df = gr.Dataframe(
178-
value=pd.DataFrame(),
179-
label="Alerts",
180-
interactive=False,
181-
wrap=True,
182-
)
183-
184-
def refresh_alerts(project, selected_run, level_filter):
185-
df = load_alerts(project, run_name=selected_run, level_filter=level_filter)
186-
if df.empty:
187-
placeholder_text = """
176+
alerts_placeholder = gr.Markdown(
177+
"""
188178
No alerts have been logged yet. To log alerts during training:
189179
190180
```python
@@ -198,10 +188,21 @@ def refresh_alerts(project, selected_run, level_filter):
198188
trackio.alert("NaN loss", text="Training diverged at step 500", level="error")
199189
```
200190
"""
201-
return (
202-
gr.Markdown(value=placeholder_text, visible=True),
203-
gr.Dataframe(value=df, visible=False, label="Alerts (0)"),
204-
)
191+
)
192+
alerts_df = gr.Dataframe(
193+
value=pd.DataFrame(),
194+
label="Alerts",
195+
interactive=False,
196+
wrap=True,
197+
visible=False,
198+
)
199+
200+
def refresh_alerts(project, selected_run, level_filter, current_df):
201+
df = load_alerts(project, run_name=selected_run, level_filter=level_filter)
202+
if df.equals(current_df):
203+
return gr.skip(), gr.skip()
204+
if df.empty:
205+
return gr.Markdown(visible=True), gr.Dataframe(value=df, visible=False)
205206
return (
206207
gr.Markdown(visible=False),
207208
gr.Dataframe(value=df, visible=True, label=f"Alerts ({len(df)})"),
@@ -210,7 +211,7 @@ def refresh_alerts(project, selected_run, level_filter):
210211
gr.on(
211212
[timer.tick, reports_page.load, runs_dropdown.change, level_filter_cb.change],
212213
fn=refresh_alerts,
213-
inputs=[project_dd, runs_dropdown, level_filter_cb],
214+
inputs=[project_dd, runs_dropdown, level_filter_cb, alerts_df],
214215
outputs=[alerts_placeholder, alerts_df],
215216
show_progress="hidden",
216217
api_visibility="private",

0 commit comments

Comments
 (0)