Repository navigation
test(web): warm the traces tier in C9 so arm (b) claims at adoption - #4461
Conversation
C9 (b) reads a container-trace arg, whose materializer is the frames client's traces tier (plan step C3, `tierLoaders.trace`, a dynamic import). The spec never warmed it, so the marker held the occurrence (frame-client.ts `needsTrace`) until the import landed, a module load that two fixed `quiesce()` rounds only sometimes outlast. When it lost, (b) saw no fill, and the orphaned held frame then mounted on the late install's flush during (c), logging (b)'s key miss into (c)'s page. Warm it once in `beforeAll`, as C19 and C11 do; the cold hold keeps its own pin (tier-trace-hold.spec). Assertions unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hPxMkC3jg3Uivh65gvaf2
|
Size (brotli, eager entry chunk)
|
Coverage Report for CI Build 41060593170Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage remained the same at 78.1%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will not alter performance1 warning
Comparing Footnotes
|
Before: the hydrate spec
test/consistency/c09-no-phantom.spec.tsxfailed in about half of runs on a cleannext(12 of 20 runs). The failures showed up as redjobCI on unrelated PRs (#4454). Case (b) saw 0 fill invocations, and case (c) sometimes saw a stray "Hydration key miss".After: the spec passes 25 of 25 runs, and 20 of 20 with every core busy. No assertion changed.
Case (b)'s container-trace arg is materialized by the frames client's traces tier, which loads by dynamic import (
tierLoaders.trace). C9 never loaded it ahead of time. So the fill's read found the tier missing and held the occurrence until the import landed, which is the intended cold-load behaviour (pinned bytier-trace-hold.spec.tsx). Two fixedquiesce()rounds can't wait out a module load, so (b) lost that race under load. When (b) lost, its held frame stayed live, and the trace import landing during (c) mounted it against the torn-down DOM. That key miss landed in (c)'s warning spy, which is why (c) only failed alongside (b).How:
beforeAll(() => prepareTier("trace")), the same warm-up C19 and C11 already use, plus a module-doc paragraph saying why. Test-only; no runtime source changed.Generated by Claude Code