v4.20.2
·
41 commits
to main
since this release
Focus: Stale-deploy resilience and hydration-safe persisted state.
Changes
- 🔄 Added first-paint recovery from stale deploys: when cached HTML references redeployed chunk hashes, the module entry dies on strict MIME checking before any app code runs — an inline head script now detects the failure and reloads once (session-guarded, re-armed when the app boots)
- 🗄️ Documents now ship
Cache-Control: public, max-age=0, must-revalidateand hashed assetsimmutable— a refresh after a redeploy always gets fresh HTML - 🤖 Fixed a hydration mismatch (and an empty open drawer) for visitors with a persisted assistant panel: the store boots with server-parity values and the persisted state applies right after mount
- ✅ Validated by simulating both scenarios: a 404-ing module entry auto-recovers in one reload, and a persisted-assistant profile hydrates with zero mismatches (335 passing tests)