mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-07 04:12:04 +00:00
Cyrillic is two bytes per letter in UTF-8, so the Russian catalog is 240 KB gz against under 210 for the Latin-script ones. The reason and the numbers are in the budget file.
123 lines
6.3 KiB
JSON
123 lines
6.3 KiB
JSON
{
|
|
"$comment": "Client-bundle budgets, enforced by scripts/check-bundle-budget.mjs --check after `pnpm build` in CI; the script header describes the method. Numbers are KB gzip. routeBaselineKbGz is the measured first load of every page (the shared rootMainFiles plus the page's client-reference chunks, each file counted once by content hash), written with --write-baselines; a page fails when it is more than routeDriftAllowanceKbGz over its baseline, and a page without a baseline fails until one is written in the same change. firstLoadP95KbGz and firstLoadMaxKbGz cap the distribution across pages. uniqueClientKbGz caps the distinct client code: every module counted once by its module id, the lazy message catalogs excluded. maxCatalogKbGz holds each catalog, maxRechartsChunks the one shared chart chunk. The summed-chunk aggregate the gate used up to v1.44.0 (3875 KB there, capped at 3900) is still printed but no longer gated: it counted a module once per chunk group it landed in, so it rose whenever a page moved code into on-demand chunks and needed a raise in most releases while no reader downloaded more. Re-based at v1.45.0 from the v1.44.0 build, measured on a local arm64 machine: 110 pages, first load p50 336, p95 437, max 451 KB; unique client code 1904 KB in 1224 modules. The five pages watched before keep their numbers within a kilobyte (/ 359, /measurements 339, /insights/mood 337, /insights 323, /settings/[section] 311), and the metric pages that no watched route covered before are gated now too (/insights/weight 339, /insights/pulse 339). Caps: p95 447 and max 461 KB (10 KB over the measurement), unique client code 1930 KB (about 25 KB, roughly two releases of new client code). A raise or a re-base is a reviewed change with the measured numbers and the reason written here; earlier re-bases are in the history of this file. v1.47.0 raised maxCatalogKbGz from 210 to 250 for the Russian catalog: Cyrillic is two bytes per letter in UTF-8, so the same key set is 1.12 MB raw against about 0.8 MB for the Latin-script locales, 240 KB gz as an emitted chunk where the largest Latin one is under 210. A reader downloads one catalog, once; nothing else in the budget moved.",
|
|
"routeDriftAllowanceKbGz": 20,
|
|
"firstLoadP95KbGz": 447,
|
|
"firstLoadMaxKbGz": 461,
|
|
"uniqueClientKbGz": 1930,
|
|
"maxRechartsChunks": 1,
|
|
"maxCatalogKbGz": 250,
|
|
"routeBaselineKbGz": {
|
|
"/_global-error/page": 133,
|
|
"/_not-found/page": 282,
|
|
"/about/page": 282,
|
|
"/achievements/page": 292,
|
|
"/admin/[section]/page": 451,
|
|
"/admin/page": 297,
|
|
"/auth/claim/page": 298,
|
|
"/auth/login/page": 290,
|
|
"/auth/register/page": 288,
|
|
"/c/[token]/page": 284,
|
|
"/checkups/page": 365,
|
|
"/checkups/practitioners/page": 289,
|
|
"/claim/[token]/page": 282,
|
|
"/coach/conversations/page": 294,
|
|
"/coach/page": 355,
|
|
"/coach/plans/page": 288,
|
|
"/confirm-access/page": 287,
|
|
"/custom-metrics/[id]/page": 303,
|
|
"/custom-metrics/[id]/values/page": 311,
|
|
"/cycle/page": 412,
|
|
"/documents/deleted/page": 291,
|
|
"/documents/page": 378,
|
|
"/enroll-mfa/page": 305,
|
|
"/illness/[id]/page": 447,
|
|
"/illness/page": 421,
|
|
"/insights/active-energy/page": 336,
|
|
"/insights/audio-events/page": 337,
|
|
"/insights/blood-glucose/page": 340,
|
|
"/insights/blood-pressure/page": 336,
|
|
"/insights/bmi/page": 331,
|
|
"/insights/body-fat/page": 336,
|
|
"/insights/body-temperature/page": 336,
|
|
"/insights/body-water/page": 336,
|
|
"/insights/bone-mass/page": 336,
|
|
"/insights/breathing-disturbances/page": 337,
|
|
"/insights/cardio-fitness/page": 336,
|
|
"/insights/cardio-recovery/page": 337,
|
|
"/insights/catalog/page": 317,
|
|
"/insights/daylight/page": 336,
|
|
"/insights/double-support-time/page": 336,
|
|
"/insights/ecg/[id]/page": 316,
|
|
"/insights/ecg/page": 316,
|
|
"/insights/environmental-audio/page": 337,
|
|
"/insights/falls/page": 336,
|
|
"/insights/fat-free-mass/page": 336,
|
|
"/insights/fat-mass/page": 336,
|
|
"/insights/flights-climbed/page": 336,
|
|
"/insights/grip-strength/page": 337,
|
|
"/insights/headphone-audio/page": 336,
|
|
"/insights/health-score/page": 315,
|
|
"/insights/hrv/page": 337,
|
|
"/insights/lean-body-mass/page": 336,
|
|
"/insights/medications/page": 338,
|
|
"/insights/mood/page": 337,
|
|
"/insights/muscle-mass/page": 337,
|
|
"/insights/nutrients/page": 319,
|
|
"/insights/oxygen/page": 337,
|
|
"/insights/page": 323,
|
|
"/insights/pain/page": 336,
|
|
"/insights/pulse-wave-velocity/page": 336,
|
|
"/insights/pulse/page": 339,
|
|
"/insights/recovery/page": 330,
|
|
"/insights/respiratory-rate/page": 336,
|
|
"/insights/resting-pulse/page": 337,
|
|
"/insights/scores/[metric]/page": 328,
|
|
"/insights/six-minute-walk/page": 336,
|
|
"/insights/skin-temperature/page": 338,
|
|
"/insights/sleep/page": 337,
|
|
"/insights/sources/page": 321,
|
|
"/insights/stair-ascent-speed/page": 336,
|
|
"/insights/stair-descent-speed/page": 336,
|
|
"/insights/step-length/page": 336,
|
|
"/insights/steps/page": 337,
|
|
"/insights/values/[type]/page": 350,
|
|
"/insights/vascular-age/page": 337,
|
|
"/insights/visceral-fat/page": 336,
|
|
"/insights/waist-to-height/page": 336,
|
|
"/insights/waist/page": 336,
|
|
"/insights/walking-asymmetry/page": 336,
|
|
"/insights/walking-distance/page": 336,
|
|
"/insights/walking-heart-rate/page": 337,
|
|
"/insights/walking-speed/page": 336,
|
|
"/insights/walking-steadiness/page": 336,
|
|
"/insights/weight/page": 339,
|
|
"/insights/workouts/[id]/page": 437,
|
|
"/insights/workouts/page": 437,
|
|
"/insights/wrist-temperature/page": 336,
|
|
"/invite/[token]/page": 282,
|
|
"/labs/[biomarkerId]/page": 327,
|
|
"/labs/[biomarkerId]/values/page": 335,
|
|
"/labs/page": 423,
|
|
"/measurements/page": 339,
|
|
"/medications/[id]/history/page": 283,
|
|
"/medications/[id]/page": 402,
|
|
"/medications/new/page": 282,
|
|
"/medications/page": 355,
|
|
"/mental-wellbeing/page": 297,
|
|
"/mood/page": 438,
|
|
"/notifications/page": 289,
|
|
"/onboarding/[step]/page": 445,
|
|
"/onboarding/handover/page": 295,
|
|
"/onboarding/page": 286,
|
|
"/page": 359,
|
|
"/privacy/page": 282,
|
|
"/profile/page": 285,
|
|
"/settings/[section]/page": 311,
|
|
"/settings/layout/[module]/page": 380,
|
|
"/settings/modules/[module]/page": 374,
|
|
"/settings/page": 282,
|
|
"/timeline/page": 331,
|
|
"/vaccinations/page": 327
|
|
}
|
|
}
|