What a change may do to the speed, weight and stability of the dispatch shells and remotes, and what happens when it goes over.
metrics.json at the repository root, and the table below is generated from that file, so it shows what the checks enforce.
A blocking check fails its job on the pull request when a change:
metrics.json marks it as blocking, and it then appears in the table below. Data from real sessions never can. Whether a failing check also stops the merge is set in branch protection; the metrics guide explains the enforcement field.
| Metric | Kind | Applies to | Limit | Basis |
|---|---|---|---|---|
| Bundle size, brotli | growth | shell, remote | 5% | carried-over |
| Remote bytes loaded inside a shell | growth | remote | 3% and +3072 bytes | measured |
| DOM nodes left after unmount | increase | remote, shell | 0 count | deterministic |
| Event listeners left after unmount | increase | remote, shell | 0 count | deterministic |
| Uncaught errors during lab flows | increase | remote, shell | 0 count | deterministic |
These blocking checks pass or fail, so they have no budget:
metrics.json or to an exception file. The review pipeline requires the owning team's approval for those files. A limit is never raised to make a change pass, and limits are read from trunk rather than from the change, so a change cannot loosen the gate it is judged by.