diff --git a/FIDELITY.md b/FIDELITY.md index b854d79..000eea9 100644 --- a/FIDELITY.md +++ b/FIDELITY.md @@ -18,6 +18,18 @@ The committed PNGs under `testdata/renders/` back every claim here. Reproduce them with the commands at the bottom. The measured-vs-Chrome numbers live in [`bench/REPORT.md`](bench/REPORT.md). +## 2026-09-09 (round 71) — two real, independently-confirmed gaps in dynamic script loading closed (`onload`/`onerror` never existed on any element; a script appended during timer-draining could be silently stranded, never run) — neither alone closes react.dev's own `ChunkLoadError`, whose remaining root cause is a genuinely deeper, separate simplification flagged for a future round, not attempted here (engine#160) + +No fresh issue was filed this round (checked `gh issue list` again). en.wikipedia.org's own diffuse whole-page offset reconfirmed (not rediscovered) as the same external "Wiki Loves Monuments" banner noise from rounds 63/64/70. Continued round 69/70's `Engine.JSLog`-sweep methodology instead of a fresh visual scan, and dug into react.dev's own recurring `ChunkLoadError: Loading chunk 809 failed. (timeout: …)` — present in every prior sweep this session but never individually root-caused, always folded into the page's already-known, much bigger "reskin gap." + +- **Root-caused with direct, temporary Go-level instrumentation** (added, used, then fully removed before shipping — confirmed via `git diff`) rather than guessed from the minified bundle: traced the failing chunk's own dynamically-created `` + root, err := dom.Parse(src) + if err != nil { + t.Fatal(err) + } + var logs []string + sess := Begin(root, Options{PageURL: "https://demo.test/", Timeout: 3 * time.Second, + Log: func(l string) { logs = append(logs, l) }}) + defer sess.Close() + sess.RunInitial() + sess.RunPending() + mustHaveJS(t, logs, "ok-ran", "ok-onload", "bad-onerror") + joined := strings.Join(logs, "\n") + if strings.Contains(joined, "should not fire") { + t.Fatalf("a handler fired for the wrong outcome: %v", logs) + } +} + +// TestSessionRunPendingReportsPendingScriptAppendedDuringDrainTimers covers a +// narrower case than TestSessionRunPending above: a