DREXO

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 / ↔ /login après connexion. Une policy RLS introduite par mégarde sur personal_dashboards consultait share_grants (lui-même protégé par RLS), créant une récursion infinie (42P17). Le SDK Supabase JS avalait l'erreur comme data: null et 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 RPC get_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 via cookies() de next/headers dans une réponse NextResponse.redirect() construite manuellement. Les routes d'authentification capturent maintenant les cookies dans une liste locale et les attachent explicitement au response.cookies.set() avant retour.
  • Plantage de la fiche tableau de bord lors de la connexion. Le RPC list_dashboard_share_grants introduit en Priority A déclarait une colonne id uuid dans son returns table (…), créant un conflit ambigu avec personal_dashboards.id dans le corps de la fonction (42702). Chaque rendu de /dashboards/<id> rejetait sa requête parallèle. Correctif via qualification explicite (pd.id au lieu de id nu).
  • 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.

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.