发布

  • perf(react-ui): code-split bundle, speed up coverage suite (#10042)

    frostbyte_neo 发布于 2026-05-28 11:43:15 +00:00

    • Curate the highlight.js build to ~29 languages (lib/core + the
      common set) instead of the full ~190-grammar default: -787 KB raw /
      -230 KB gz on the base bundle.
    • Code-split every route via React.lazy with a per-layout
      in App.jsx so the sidebar stays mounted on navigation. Initial entry
      chunk drops from 3194 KB raw / 887 KB gz to 397 KB / 122 KB (-87%).
      Warm chunks on sidebar hover/focus/touch via a preload registry so
      the click finds the chunk already in flight or cached.
    • Migrate Playwright coverage from istanbul (build-time counters) to
      native Chromium V8 coverage, with per-worker accumulation +
      conversion. Suite drops from 71s to 30s at 20 workers (~58%) at the
      non-instrumented floor.
    • Keep the coverage gate bundling-invariant: the coverage build inlines
      dynamic imports so every shipped source file lands in the denominator
      (otherwise untested page chunks silently drop out and inflate the
      percentage). Production builds stay code-split.
    • Add UI_TEST_WORKERS=N Makefile knob; tighten coverage tolerance to
      0.8pp now that jitter sits near istanbul's ~0.5pp again.

    Assisted-by: Claude:claude-opus-4-7 [Claude Code]

    Signed-off-by: Richard Palethorpe io@richiejp.com

    下载附件