Un </div> fantôme dans le bloc Content view (local_workspace.html) fermait content-area puis app-layout AVANT les balises #context-menu et #ws-context-menu. Les deux menus tombaient en enfants directs de <body>, hors du scope Alpine x-data="appState()" : directives :class/:style/ @click.outside jamais montées → menu contextuel invisible (showWsContext mettait bien wsCtx.visible=true, mais rien ne réagissait). Retiré le </div> excédentaire — le bloc se referme désormais sur tags → item → template → list. Vérifié e2e (Playwright) : menu dans app-layout, visible au clic droit, 4 items, 0 pageerror.