Skip to content

Add renderer bundle and runtime performance regression budgets #218

Description

@woksin

Problem

Components 4 verifies renderer resolution correctness, render counts in focused specs, package graphs, and aggregate CSS budgets. The original renderer plan also proposed an explicit bundle-cost gate for consumers that never select an adapter. That one-time target was not converted into a durable runtime/bundle regression budget.

Direction

Measure and guard the costs that matter without optimizing against synthetic microbenchmarks:

  • setup-only root and one basic-control import with no adapter;
  • stable @cratis/components/renderer façade imported explicitly;
  • provider mount-time resolution for built-in and one nine-slot adapter;
  • Button/Tooltip hot-path render counts and rerenders;
  • memory/initialization cost of frozen slot tables;
  • production minified+gzip closure and tree-shaking behavior.

Record hardware/runtime/tool versions and distinguish package install size, application bundle size, and runtime cost.

Acceptance criteria

  • Reproducible baselines exist for zero-config, stable-renderer-import, and selected-adapter profiles.
  • CI fails on a reviewed percentage/absolute regression budget and emits an inspectable report.
  • Benchmarks prove resolution remains mount-time and per-render lookup does not renegotiate.
  • Tree-shaking keeps adapter/vendor packages out of consumers that do not import/select them.
  • The budget does not require weakening accessibility, diagnostics, parts/state, or fallback semantics.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions