- Erreur critique: @contextmenu.prevent="onContextMenu" manquait → le handler n'était JAMAIS appelé par Alpine - Rajouté @contextmenu.prevent sur ws-split (entre @keydown et @click.self) - ctxMenu utilise mutations individuelles (pas de remplacement d'objet) pour une meilleure réactivité Alpine - @click.self conserve la fermeture en cliquant sur le fond du workspace