Feature: Content-hashed CSS filenames with --css=link
Problem
webui build --css=link outputs CSS files with static names (e.g., comp-a.css). Without a content hash in the filename, CDN caches must be invalidated on every deploy — even when the CSS hasn't changed.
Expected
CSS filenames should include a content hash, e.g., comp-a.d4e5f6.css, matching how esbuild handles JS output with --entry-names=[name]-[hash]. This enables immutable CDN caching (Cache-Control: immutable) — unchanged components keep the same URL across builds.
Context
For multi-app deployments where JS is already content-hashed via esbuild, CSS becomes the only artifact that can't be cached immutably. This forces either a cache-bust query param (weaker) or short cache TTLs across all CSS files.
Feature: Content-hashed CSS filenames with
--css=linkProblem
webui build --css=linkoutputs CSS files with static names (e.g.,comp-a.css). Without a content hash in the filename, CDN caches must be invalidated on every deploy — even when the CSS hasn't changed.Expected
CSS filenames should include a content hash, e.g.,
comp-a.d4e5f6.css, matching how esbuild handles JS output with--entry-names=[name]-[hash]. This enables immutable CDN caching (Cache-Control: immutable) — unchanged components keep the same URL across builds.Context
For multi-app deployments where JS is already content-hashed via esbuild, CSS becomes the only artifact that can't be cached immutably. This forces either a cache-bust query param (weaker) or short cache TTLs across all CSS files.