cmarteepants opened a new issue, #54961:
URL: https://github.com/apache/airflow/issues/54961
### Description
We need to make “Needs Review” clearer, more actionable, and consistent
across the UI. Right now, open and resolved reviews are lumped together under
“Required Actions,” and signals are subtle or inconsistent (purple vs. amber,
icons that don’t match, buried tabs).
This issue explores two approaches for how users interact with reviews
(separate tabs vs. modal), and also outlines improvements that should be
implemented in either case:
- **DAG graph nodes**
- For open reviews: show an amber dashed border around the purple node
plus a ✋ badge icon.
- For ApprovalOperator in older DAG runs: show 👤✔️ if approved or 👤❌ if
rejected.
- **Home page:**
- Use the ✋ badge icon instead of the stopwatch icon since that is too
similar to deferred tasks
- Pull Required Actions (rename to Needs Review) out of “Stats” and into
its own callout bar.
- **DAG list page:** Add a Needs Review (n) badge with icon inline, so
stalled DAGs are immediately visible.
These visibility changes ensure users can see human-blocked tasks without
needing to drill into tabs.
### Use case/motivation
<img width="1237" height="622" alt="Image"
src="https://github.com/user-attachments/assets/6c14a2ee-81c2-4ed7-b8c0-85e165fb9a20"
/>
### Option A: Separate Tabs (clearer, inbox-like)
- **DAG Run & DAG Overview views**
- Show **Needs Review (n)**
- as the default tab when n > 0 (else hidden)
- Always show a second tab: **Review History**
- **Needs Review rows*
- Subject (click -> modal)
- Run After
- Approver / Assignee (@Lee-W to confirm if that's a thing)
- Task ID
**Pros**
- Clear mental model: inbox vs archive
- Easy to scan counts (`Needs Review (n)`)
- Audit trail cleanly separated
**Cons**
- Adds one more tab to already crowded UI
### Option B: Review (n) button in the header with modal
(Leaning towards this after writing it out)
- Add a **Review (n)** button in the DAG and Task Instance Headers (next to
"Add a note")
- Opens a modal with accordion list of open items
- Include secondary *History* tab for resolved items with the same
information as above
- Apply the same pattern should be used for global option under Browse
<img width="1234" height="497" alt="Image"
src="https://github.com/user-attachments/assets/1687a467-0aef-4bae-a1aa-cda2c264bc94"
/>
**Pros:**
- Avoids increasing tab count
- Modal pattern emphasizes "take action now"
- History still accessible just less prominent
**Cons:**
- Mixing open and resolved in one place could dilute clarity, even with
separate tabs
- More clicks if a user wants to audit history frequently
### Applies to both options
- **Graph nodes**
- For open reviews: Show an **amber dashed border** around the purple node
and a ✋ badge icon.
- For Approval Operator specifically: For graphs nodes of dags that have
already run, if approved show :bust_in_silhouette::heavy_check_mark: if
rejected :bust_in_silhouette::heavy_multiplication_x:
- **Home page**: Use the ✋ badge icon and pull "Required Actions" (rename to
"Needs Review") out of Stats to its own callout bar.
- **DAG list page**: Add "Needs Review (n)" badge with icon inline, so
stalled DAGs are immediately visible
This issue is primarily about choosing between Option A and Option B, but we
should move forward with the graph node, homepage, and DAG list improvements
regardless.
### Related issues
_No response_
### Are you willing to submit a PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]