Drexo v0.2.1 — Correctifs partages + retrait de l'Inbox
Boucle de redirection après login corrigée, plantage de la fiche tableau de bord corrigé, Inbox tenant retirée au profit de /partages.
Drexo v0.2.1 — Correctifs partages + retrait de l'Inbox
Sortie de stabilisation suivant la v0.2.0. Trois bugs trouvés après la mise en production des partages unifiés, plus un nettoyage UX cohérent avec la nouvelle architecture.
Correctifs
- Boucle de redirection
/ ↔ /loginaprès connexion. Une policy RLS introduite par mégarde surpersonal_dashboardsconsultaitshare_grants(lui-même protégé par RLS), créant une récursion infinie (42P17). Le SDK Supabase JS avalait l'erreur commedata: nullet la page/retombait sur le fallback « rediriger vers/login» au lieu d'ouvrir le tableau de bord. Migration 0079 restaure la policy propriétaire-uniquement ; les destinataires de partages voient toujours les tableaux partagés via le RPCget_dashboard_for_view(SECURITY DEFINER, sans RLS). - Cookies de session non posés sur la redirection
/auth/confirm(magic link et OAuth Google/Microsoft). Next 16 ne fusionne pas automatiquement les cookies écrits viacookies()denext/headersdans une réponseNextResponse.redirect()construite manuellement. Les routes d'authentification capturent maintenant les cookies dans une liste locale et les attachent explicitement auresponse.cookies.set()avant retour. - Plantage de la fiche tableau de bord lors de la
connexion. Le RPC
list_dashboard_share_grantsintroduit en Priority A déclarait une colonneid uuiddans sonreturns table (…), créant un conflit ambigu avecpersonal_dashboards.iddans le corps de la fonction (42702). Chaque rendu de/dashboards/<id>rejetait sa requête parallèle. Correctif via qualification explicite (pd.idau lieu deidnu). - Plafond de couleur du dégradé heatmap — fixé sur le pic 90 jours par compteur au lieu d'un plafond global, comme promis par la v0.2.0 mais cassé par une régression du même cycle. Restauré.
Retrait
-
L'Inbox du tenant est retirée (migration 0080). Auparavant le rail gauche affichait sous chaque organisation un dossier orange « Inbox » regroupant les appareils possédés non placés et les appareils partagés à l'organisation non placés. Les deux flux sont désormais couverts par la nouvelle architecture :
- Appareils partagés —
/partages→ « Zones partagées avec moi » → ouvrir la zone → bouton « Placer dans mon arbre » sur chaque appareil. - Appareils possédés non placés —
/settings/org/<slug>/locations(l'éditeur d'arbre) ou l'éditeur de placement sur/devices/<id>.
Garder l'Inbox dupliquait ces surfaces et confondait le parcours destinataire.
- Appareils partagés —
Migration
Aucune action manuelle requise. Les migrations 0079 (revert récursion RLS) et 0080 (retrait Inbox) sont rétro-compatibles avec le front-end existant.