Bundle Optimization Report
Bundle Optimization Report
Section titled “Bundle Optimization Report”Summary
Section titled “Summary”- Frontend locales were moved from
app/frontend/src/i18n/*.jsontoapp/frontend/public/locales/*.json. app/frontend/src/i18n/index.tsnow lazy-loads locale bundles over/locales/{lng}.json, preloads only the initial language, and keeps fallback toen.app/frontend/vite.config.tsnow emits stable vendor chunks for React, i18n, and Zustand.- Main bundle budget target is met with large margin:
247.88 kB gzip -> 122.18 kB gzip.
Bundle Sizes
Section titled “Bundle Sizes”Before
Section titled “Before”- Main JS:
assets/index-*.js->851.86 kB raw,247.88 kB gzip assets/CartesianChart-*.js->355.69 kB raw,106.33 kB gzipassets/ComparisonDashboard-*.js->39.20 kB raw,11.19 kB gzipassets/PosteriorPlot-*.js->15.62 kB raw,5.76 kB gzipassets/PowerCurveChart-*.js->3.97 kB raw,1.56 kB gzipassets/SequentialBoundaryChart-*.js->2.08 kB raw,0.91 kB gzipassets/LineChart-*.js->4.62 kB raw,1.93 kB gzipassets/WebhookManager-*.js->10.14 kB raw,2.64 kB gzipassets/ApiKeyManager-*.js->6.46 kB raw,2.08 kB gzip
- Main JS:
assets/index-CN1OTjcd.js->445.73 kB raw,122.18 kB gzip assets/vendor-i18n-CbAhzFG_.js->63.55 kB raw,21.08 kB gzipassets/vendor-react-DEzZDo-A.js->3.66 kB raw,1.39 kB gzipassets/vendor-state-DbJSIkhz.js->0.66 kB raw,0.41 kB gzipassets/CartesianChart-DCN3aMQR.js->355.73 kB raw,106.36 kB gzipassets/ComparisonDashboard-CvXz6hS0.js->39.31 kB raw,11.25 kB gzipassets/PosteriorPlot-H2LXTtxZ.js->15.73 kB raw,5.81 kB gzipassets/PowerCurveChart-DMkPh0w1.js->4.07 kB raw,1.61 kB gzipassets/SequentialBoundaryChart-Dzyn0bkt.js->2.18 kB raw,0.97 kB gzipassets/LineChart-JjK_dXED.js->4.63 kB raw,1.94 kB gzipassets/WebhookManager-CvGeAmWW.js->10.25 kB raw,2.69 kB gzipassets/ApiKeyManager-TpwB5ndC.js->6.57 kB raw,2.13 kB gzip
Verification
Section titled “Verification”npm --prefix app/frontend exec tsc -- --noEmit -p .-> passnpm --prefix app/frontend run test:unit-> passnpm --prefix app/frontend run build-> pass- Static preview + Playwright locale check -> pass
- initial locale requests: only
http://127.0.0.1:4173/locales/en.json - after switching to French:
http://127.0.0.1:4173/locales/fr.jsonloaded on demand
- initial locale requests: only
Blockers Outside Task Scope
Section titled “Blockers Outside Task Scope”cmd /c scripts\verify_all.cmd --with-e2eis blocked before frontend/e2e/smoke completion by unrelated dirty-tree backend changes:app/backend/app/repository.pyapp/backend/app/config.pyapp/backend/tests/test_config.pyapp/backend/tests/test_postgres_backend.py
- Current failure:
AttributeError: type object 'ProjectRepository' has no attribute '_create_history_tables'
- Because backend startup fails, these commands are also blocked for reasons outside this bundle task:
python scripts/run_frontend_e2e.py --skip-buildpython scripts/run_local_smoke.py --skip-buildpython scripts/run_lighthouse_ci.py
app/backend/app/frontend_routes.pydid not need changes: it already serves arbitrary files fromdist, so/locales/*.jsonworks once Vite copiespublic/localesintodist/locales.- To keep
vitest runstable under normal parallelism, several long-running frontend tests were given larger per-test timeouts; no test behavior or assertions were relaxed.