Composant `<VersionToast/>` monté au root de la SPA qui s'affiche quand l'utilisateur ouvre l'app sur une version plus récente que la dernière qu'il a vue. Mécanique : - Source de vérité = `apps/web/src/version.ts` (constante semver, à bumper manuellement à chaque release, en même temps que l'ajout du .md correspondant dans `apps/landing/src/content/changelog/`). - Comparaison à `localStorage["rubis:last-seen-version"]` au mount. - 1re visite (clé absente) → on enregistre la version courante en silence, pas de toast (sinon spam d'onboarding). - Version identique à la dernière vue → rien. - Version différente → toast Sonner persistant (`duration: Infinity`) avec icône Sparkles rubis et action "Voir les nouveautés ↗" qui ouvre `rubis.pro/changelog#<version>` dans un nouvel onglet. Au moment de l'affichage on enregistre la version comme vue — donc même si l'user ferme sans cliquer, plus de toast pour cette version (il a été informé). - localStorage indisponible (private mode) → fail silent. Version initiale : `1.10.0` (remerciement automatique au client, dernière entrée du changelog). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
Rubis Sur l'Ongle — landing page + futur SaaS
Languages
TypeScript
95.1%
Astro
3.8%
JavaScript
0.7%
CSS
0.2%