validateBrandingAssets was always pointed at options.staticPath. In dev
mode that resolves to <repo>/static (the TS source dir), but the branding
assets live in public/ and are served by the webpack dev middleware from
there. So in dev mode (extraBodyClass='dev') validation always failed and
crashed startup, even though favicon-dev.ico / site-logo-dev.svg exist and
serve fine. This broke the Cypress job, the only CI job that boots the full
server in dev mode.
Add getBrandingAssetDir, which picks public/ in dev and staticPath (where
webpack has copied public/) in prod, and validate that directory. Add a
regression test that exercises the dev path and asserts the real public/
ships favicon + logo for every deployed environment.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>