Repository navigation
Fix direct-open browser summary reports - #388
Merged
Merged
Conversation
Contributor
|
uriahf
marked this pull request as ready for review
August 24, 2026 15:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix the direct-open offline browser summary report introduced in #387 without changing statistics, ReportSpec, component identity semantics, or
rtichoke_vizitself.Reproduction and root cause
Using the real public call and real production PerformanceTable + ROC-v2 + calibration-v2 producers, the pre-fix artifact contained a valid canonical ReportSpec and rendered correctly when the same directory was served over localhost HTTP.
Direct
file://opening failed in headless Chrome with the report container left empty and this console error:Pre-fix executable regression result:
1 failed, 250 passed; the only failure was directfile://, while localhost passed.This establishes the defect as the external ES-module loading strategy, not ReportSpec,
renderReport(), CSS, or the canonical component producers.Fix
RtichokeBrowserReport.write_html()now embeds the exact vendored immutable v0.5.0rtichoke-viz.jsbundle inside the generated module script and still delegates report composition to the sharedrenderReport(spec)implementation. It retains the existing sibling JS/CSS output files for output compatibility.No renderer logic is reimplemented in Python, no component dispatcher is added, and no vendored
rtichoke_vizbytes are modified. A newrtichoke_vizrelease is not required because the existing compiled v0.5.0 bundle is self-contained and works when loaded inline.Regression proof
The new browser test crosses the boundary #387 missed:
create_summary_report(..., renderer="browser");file://in headless Chrome;#rtichoke-reportcontains rendered output;<table>;Post-fix
tests/test_summary_report_browser.py: all 6 tests pass inside the full suite.Compatibility
renderer="r": unchangedrtichoke-viz.jsandrtichoke-viz.css: still writtenChecks
Final Python-package CI matrix is green on Python 3.12, 3.13, and 3.14:
ty: pass251 passed(3.12 shown; matrix jobs all green)Documentation preview is tracked by the normal PR workflow.