fix: valid-XML favicon + JMH percentile roll-up#471
Merged
Conversation
…ks, not averaged The JMH parser aggregated a run's p50/p90/p95/p99 as a sample-weighted AVERAGE of each benchmark's percentiles. Averaging percentiles across heterogeneous benchmarks is statistically invalid: the tail collapses onto the mean, so a run "p99" could read lower than the slowest benchmark's median (gotmpl4j run showed p50..p99 all ~0.26ms while TableBenchmark.gotmpl4jRender[n=1000] alone is ~1.01ms). Take the max across benchmarks per percentile instead, so the run line tracks the slowest operation's tail and stays monotone. The mean stays sample-weighted (linear -> the pooled mean is exact). JMeter (HdrHistogram merged) and k6 (own summary) already compute correct pooled percentiles; this was JMH-only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QmnyrHG366UPQTbtsimzkj
…he tab icon The SVG carried only a viewBox, no width/height. Chrome's favicon rasterizer needs intrinsic dimensions: with viewBox alone the icon renders fine when opened as a URL (the browser supplies a default viewport) but shows blank as a *tab* icon. The sibling builder app's favicon works in the same browser precisely because its <svg> declares width="32" height="32" — mirror that. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QmnyrHG366UPQTbtsimzkj
The favicon's header comment contained CSS-token names with double
hyphens (--bg, --border, --radius). XML forbids "--" inside a comment,
so a strict SVG/XML parser rejects the whole document ("Unexpected
token '--'"). Browsers rasterize favicons through that strict parser,
so the tab icon came up blank even though the file served 200 and
rendered leniently elsewhere. Reword the comment to drop the "--".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QmnyrHG366UPQTbtsimzkj
UniTrack — ✅ gate passed
|
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.
Three small fixes, all validated against the lab.
fix(ui)favicon renders in the browser tabThe
favicon.svgheader comment contained CSS-token names with double hyphens (--bg,--border,--radius). XML forbids--inside a comment, so a strict SVG/XML parser (which browsers use to rasterize favicons) rejected the whole document — blank tab icon despite a 200 response. Reworded the comment; also gave the<svg>intrinsicwidth/height(matching the sibling builder app, a Chrome favicon requirement). Verified live:/favicon.svgnow parses as valid XML.fix(perf)JMH run-level percentilesThe JMH parser aggregated a run's p50/p90/p95/p99 as a sample-weighted average of each benchmark's percentiles — statistically invalid across heterogeneous benchmarks (the tail collapses onto the mean; a run "p99" could read lower than the slowest benchmark's median). Now takes the max across benchmarks per percentile, so the run line tracks the slowest operation's tail and stays monotone. Mean stays sample-weighted (correct). JMeter (HdrHistogram) and k6 (own summary) were already correct — JMH only.
Existing lab perf runs were backfilled from stored per-transaction percentiles.
🤖 Generated with Claude Code