Skip to content

Commit e6514df

Browse files
feat(interrupt-rotation): clarify required work vs reference views (#75)
Make it visually clear which dashboard sections the person on Interrupt must handle. Group the mandatory sections under an "Action required" header and move the informational sections under a collapsed "For reference" zone. Since new community PRs are no longer accepted, demote the Community PRs section to a read-only, informational view with a banner stating no action is required. Disambiguate the "Confirmed bugs without a reproducible script" help text: a "reproducible script" means a runnable repro committed to st-issues or the agent wiki, not the "Reproducible Code Example" snippet that most issues carry from the bug-report template. This resolves recurring confusion about why issues with a code snippet still appear in the list. Also apply Streamlit design guidance: drop heavy dividers, use Material Symbols icons over emojis, sentence casing, and lighter captions for empty states.
1 parent c01e9ec commit e6514df

1 file changed

Lines changed: 22 additions & 26 deletions

File tree

app/interrupt_rotation.py

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,6 @@ def render_issue_action_items(selected_since: date, selected_refresh_nonce: int)
225225
"Assignees": st.column_config.ListColumn("Assignees"),
226226
},
227227
)
228-
st.divider()
229228

230229
st.subheader(
231230
"Issues that need triage",
@@ -270,11 +269,10 @@ def render_issue_action_items(selected_since: date, selected_refresh_nonce: int)
270269
"Author": st.column_config.TextColumn("Author"),
271270
},
272271
)
273-
st.divider()
274272

275273
st.subheader(
276274
"Issues missing feature label",
277-
help="Every issue is expected to have atleast one `feature:{the_feature}` or `area:{the_area}` label.",
275+
help="Every issue is expected to have at least one `feature:{the_feature}` or `area:{the_area}` label.",
278276
)
279277
missing_labels_df = action_items["missing_labels_issues"]
280278
if missing_labels_df.empty:
@@ -292,12 +290,11 @@ def render_issue_action_items(selected_since: date, selected_refresh_nonce: int)
292290
"Labels": st.column_config.ListColumn("Labels"),
293291
},
294292
)
295-
st.divider()
296293

297294
st.subheader(
298295
"Confirmed bugs without a priority",
299296
help="""
300-
Every confirmed bug is expected to be labled with a `priority:P{0,1,2,3,4}` label.
297+
Every confirmed bug is expected to be labeled with a `priority:P{0,1,2,3,4}` label.
301298
302299
### P0
303300
@@ -353,7 +350,6 @@ def render_issue_action_items(selected_since: date, selected_refresh_nonce: int)
353350
"Author": st.column_config.TextColumn("Author"),
354351
},
355352
)
356-
st.divider()
357353

358354
st.subheader(
359355
"Open Dependabot PRs",
@@ -379,7 +375,6 @@ def render_issue_action_items(selected_since: date, selected_refresh_nonce: int)
379375
"Created": st.column_config.DatetimeColumn("Created", format="distance"),
380376
},
381377
)
382-
st.divider()
383378

384379
st.subheader(
385380
"Issues waiting for team response",
@@ -493,7 +488,9 @@ def render_confirmed_bugs_without_repro(selected_since: date, selected_refresh_n
493488
help="""
494489
Confirmed bugs (`status:confirmed` & `type:bug`) created in the selected timeframe that don't have a reproducible script.
495490
496-
This isn't a requirement for all issues. If the issue is not easily reproducible via the [streamlit/st-issues](https://github.com/streamlit/st-issues) app, you can skip this step.
491+
**"Reproducible script" here means a runnable repro committed by the team**, either a `gh-<issue-id>` folder in [streamlit/st-issues](https://github.com/streamlit/st-issues) or an `issues/<issue-id>/repro_app.py` in the agent wiki. It does **not** mean the "Reproducible Code Example" snippet in the issue body - most issues have that from the bug-report template, so it doesn't count here.
492+
493+
**Reviewing this list is required during your rotation.** Adding a reproducible script itself is best-effort: if a bug isn't easily reproducible via the [streamlit/st-issues](https://github.com/streamlit/st-issues) app, it's fine to skip writing a script, but you should still confirm the bug is triaged and prioritized correctly.
497494
498495
**How to add a new repro case to [streamlit/st-issues](https://github.com/streamlit/st-issues):**
499496
1. [Create a new folder in `issues`](https://github.com/streamlit/st-issues/new/main/issues) with this naming pattern: `gh-<GITHUB_ISSUE_ID>`.
@@ -596,13 +593,19 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
596593
refresh_nonce=selected_refresh_nonce,
597594
)
598595

596+
st.info(
597+
"We no longer accept new community PRs. The views below are read-only and "
598+
"informational - no action is required from the person on Interrupt.",
599+
icon=":material/info:",
600+
)
601+
599602
st.subheader(
600603
"Community PRs missing labels",
601604
help="Every community PR is expected to be labeled with a `change:*` and `impact:*` label.",
602605
)
603606
missing_labels_prs_df = action_items["missing_labels_prs"]
604607
if missing_labels_prs_df.empty:
605-
st.success("Congrats, everything is done here!", icon="🎉")
608+
st.caption("Nothing to show right now.")
606609
else:
607610
st.dataframe(
608611
missing_labels_prs_df,
@@ -615,7 +618,6 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
615618
"Labels": st.column_config.ListColumn("Labels"),
616619
},
617620
)
618-
st.divider()
619621

620622
st.subheader(
621623
"Community feature PRs needing product approval labels",
@@ -628,7 +630,7 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
628630
)
629631
prs_needing_approval_df = action_items["prs_needing_approval"]
630632
if prs_needing_approval_df.empty:
631-
st.success("Congrats, everything is done here!", icon="🎉")
633+
st.caption("Nothing to show right now.")
632634
else:
633635
st.dataframe(
634636
prs_needing_approval_df,
@@ -641,7 +643,6 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
641643
"Labels": st.column_config.ListColumn("Labels"),
642644
},
643645
)
644-
st.divider()
645646

646647
st.subheader(
647648
"Community PRs ready for review",
@@ -652,15 +653,12 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
652653
- Has both `change:*` and `impact:*` labels
653654
- No blocking labels (`do-not-merge`, `status:needs-product-approval`, `status:awaiting-user-response`)
654655
655-
These PRs are ready for code review and can be prioritized for technical feedback.
656-
657-
Before reviewing, its recommended to approve and run the CI (check that the code doesn't contain obvious
658-
security issues) and assign Copilot for an automated review.
656+
This view is informational only - no action is required. It is shown for visibility into existing open community PRs.
659657
""",
660658
)
661659
community_prs_ready_df = action_items["community_prs_ready_for_review"]
662660
if community_prs_ready_df.empty:
663-
st.success("Congrats, everything is done here!", icon="🎉")
661+
st.caption("Nothing to show right now.")
664662
else:
665663
st.dataframe(
666664
community_prs_ready_df,
@@ -701,27 +699,25 @@ def render_community_pr_action_items(selected_since: date, selected_refresh_nonc
701699
# fetches overlap instead of running one after another on the main thread.
702700
render_ci_metrics(since, refresh_nonce)
703701

704-
with st.expander("**🔄 Helpful Processes**"):
702+
with st.expander("Helpful processes", icon=":material/menu_book:"):
705703
st.markdown("""
706704
- [Issues on Community Cloud](https://www.notion.so/snowflake-corp/Streamlit-OS-Issues-Community-Cloud-dfa2c315cafd434081166f33077c3eb2)
707705
- [Evaluating Memory Leaks in Streamlit](https://www.notion.so/snowflake-corp/Evaluating-Memory-Leaks-in-Streamlit-2af7170bb41680ed8634dbd5ee414f57)
708706
""")
709707

710-
st.header("Action Items")
708+
st.header(":material/checklist: Action required")
711709

712710
render_issue_action_items(since, refresh_nonce)
713-
st.divider()
714711

715712
render_flaky_tests(since, refresh_nonce)
716-
st.divider()
717713

718714
render_monitored_repo_prs(refresh_nonce)
719-
st.divider()
720715

721716
render_confirmed_bugs_without_repro(since, refresh_nonce)
722-
st.divider()
723717

724-
render_reported_bugs(since, refresh_nonce)
725-
st.divider()
718+
st.header(":material/visibility: For reference")
719+
st.caption("Informational views only. No action is required from the person on Interrupt.")
720+
with st.expander("Show reference views", expanded=False):
721+
render_reported_bugs(since, refresh_nonce)
726722

727-
render_community_pr_action_items(since, refresh_nonce)
723+
render_community_pr_action_items(since, refresh_nonce)

0 commit comments

Comments
 (0)