NO-JIRA: General payload-monitor improvements and improved UX - #248
NO-JIRA: General payload-monitor improvements and improved UX#248vimauro wants to merge 7 commits into
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: vimauro The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughChangesPayload Monitor reporting flow
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 10 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/label tide/merge-method-squash |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
payload-monitor/payload_monitor/report/templates/scripts.js (1)
226-241: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winAdd a failure handler to the clipboard copy
navigator.clipboard.writeText(text)can reject in insecure contexts or when permissions are denied, leaving the click with no user feedback. Add a.catch()so failures are handled explicitly.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@payload-monitor/payload_monitor/report/templates/scripts.js` around lines 226 - 241, Add a rejection handler to the promise returned by navigator.clipboard.writeText in the action-cell click listener. Handle copy failures explicitly with appropriate user feedback, while preserving the existing success tooltip behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@payload-monitor/payload_monitor/report/templates/scripts.js`:
- Around line 226-241: Add a rejection handler to the promise returned by
navigator.clipboard.writeText in the action-cell click listener. Handle copy
failures explicitly with appropriate user feedback, while preserving the
existing success tooltip behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: eea58109-60f5-4a27-be7b-1c2190bb0456
📒 Files selected for processing (12)
payload-monitor/payload_monitor/__main__.pypayload-monitor/payload_monitor/collectors/release_controller.pypayload-monitor/payload_monitor/collectors/timing.pypayload-monitor/payload_monitor/report/generator.pypayload-monitor/payload_monitor/report/templates/_analysis_card.htmlpayload-monitor/payload_monitor/report/templates/dashboard.htmlpayload-monitor/payload_monitor/report/templates/scripts.jspayload-monitor/payload_monitor/report/templates/styles.csspayload-monitor/payload_monitor/report/timing_section.pypayload-monitor/tests/test_collectors_release_controller.pypayload-monitor/tests/test_report_generator.pyplugins/edge-ocp-ci/skills/generate-dashboard/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@payload-monitor/payload_monitor/analyzer.py`:
- Line 83: Update the failure-selection logic around latest_prow_url to track
whether the newest failure has been seen independently via a latest_failure_seen
flag, so an empty newest prow_url prevents older failure URLs from being
selected; add a regression test using distinct URLs with an empty URL on the
newest failure.
In `@payload-monitor/payload_monitor/report/templates/dashboard.html`:
- Line 15: Fix or remove the broken documentation link in the dashboard
template’s meta section. Update the anchor URL to a valid Edge CI Payload
Manager responsibilities document if the correct destination is known; otherwise
remove the link while preserving the surrounding metadata.
In `@plugins/edge-ocp-ci/.claude-plugin/plugin.json`:
- Line 4: Update the corresponding plugin entry in
.claude-plugin/marketplace.json to version 1.2.1, matching the version declared
by the plugin.json change. Ensure the marketplace metadata for the edge-ocp-ci
plugin uses the same version.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: b8f6416e-5d0f-4760-9fe3-eb92cb160dd4
📒 Files selected for processing (8)
payload-monitor/payload_monitor/analyzer.pypayload-monitor/payload_monitor/models.pypayload-monitor/payload_monitor/report/templates/dashboard.htmlpayload-monitor/payload_monitor/report/timing_section.pypayload-monitor/tests/test_analyzer.pypayload-monitor/tests/test_models_timing.pypayload-monitor/tests/test_report_generator.pyplugins/edge-ocp-ci/.claude-plugin/plugin.json
💤 Files with no reviewable changes (1)
- payload-monitor/tests/test_models_timing.py
🚧 Files skipped from review as they are similar to previous changes (2)
- payload-monitor/payload_monitor/report/timing_section.py
- payload-monitor/tests/test_report_generator.py
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@payload-monitor/tests/test_analyzer.py`:
- Line 292: Wrap the test docstring in the relevant analyzer test so no line
exceeds Ruff’s 88-character limit, preserving its existing wording and meaning.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 1ce12250-0ddb-4f9b-9e2e-c95844729948
📒 Files selected for processing (2)
payload-monitor/payload_monitor/analyzer.pypayload-monitor/tests/test_analyzer.py
🚧 Files skipped from review as they are similar to previous changes (1)
- payload-monitor/payload_monitor/analyzer.py
Neilhamza
left a comment
There was a problem hiding this comment.
Thanks for this PR — there's a lot of genuinely good work here. A few things I especially appreciated while reading through it:
- The Sippy link fix (
_job_analysis_urlbuildingjobs/{version}/analysis?filters=…) resolves the "no rows" issue I hit on the last dashboard — and the URL-shape test locks it in. - The
patch_analysis_htmlrewrite is a real robustness win: the explicit<!-- /claude-suggestion -->terminator, the HTML-unescape handling with the ampersand test, and idempotent badge insertion all close failure modes the old.*?</div>\s*</div>matching had. - Moving the findings-summary counting and trend math out of Jinja
namespace()logic into_build_template_context()makes it testable — much nicer. - Adding
job_nameto the analysis cards directly addresses the "hard to tell which job a summary belongs to" feedback. Thank you for that.
I've left a handful of inline comments — all questions/suggestions, nothing I'd consider blocking. The one I'd most like your thoughts on is the removal of the failures table (see the dashboard.html comment): with the payload tag/date now hidden inside the collapsed rows, I'm finding cross-payload comparison — which is most of what we do on payload-manager duty — a bit harder than before, and I've suggested a small summary-line tweak that I think recovers it. Happy to pair on any of these if useful!
|
General UI/readability suggestions — not blocking at all, just "ease of the eyes" thoughts while using the dashboard daily. Take or leave any of them:
|
Summary by CodeRabbit
ci:prow-job-analysis.