7099c817db
Refactor FestipodDataContext to use only the useShape ORM API: - Remove ng.sparql_update, sessionPromise, ensureGraphNuri imports - Use privateNuri (useShape scope) directly as @graph for adds - Create/join are now synchronous (no async wrapper needed) - Leave uses ngSet.delete() — known limitation: doesn't persist (@wip) Add event lifecycle e2e scenarios (cycle-de-vie-evenement.feature): - Create event via form and verify on home screen - Created event persists after reconnexion - Consult event detail from home - Join an event - Modify event location and verify - Leave + persistence tagged @wip (ngSet.delete doesn't persist) Fix DemoMode external navigation: sync initialScreenId prop changes to internal state via useEffect (was ignored after first mount). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>