Quand on a plusieurs actions « récupérer le dernier état » et qu’on s’en sert dans d’autres étapes, la suppression d’un des « récupérer le dernier état » entraine parfois un décalage de numérotation des ‹ variables récupérées ›, et il faut reprendre toutes les étapes pour ajuster… la renumérotation devrait se ‹ propager › toute seule…
J’ai dû trier encore mes votes précédents pour celui ci ^^
C’est vrai que pour une longue scène c’est rapidement irritant si on supprime un bout.
Plutot que propager pourquoi ne pas avoir une case pour donner un nom a la variable comme ca plus de soucis celle ci est fixer par nous meme ??
@Prof_Techno pas fan de cette option, c’est une configuration supplémentaire qui n’a pas vraiment de sens.
En revanche, c’est vrai que jusque-là on utilisait un nom de variable qui est propre à sa position dans la scène, rien n’empêcherait de générer un nom de variable sans lien avec la position dans la scène
mutmut
Janvier 31, 2025, 11:27
5
Je pencherai pour un nom visible pour le front-end tel qu’il est maintenant (c’est bien pratique pour retrouver) et un UID (random?) pour le back-end, et Gladys se baserait sur l’UID pour les liens (c’est peut-être déjà le cas).
Par contre pour le front, ce serait bien que la numérotation se refasse si il y a une suppression ou un ajout.
De toute façon visuellement je ne parlais pas de changer le fonctionnement actuel, l’idée c’est que rien ne change.
J’ai édité cette demande ancienne pour que l’étiquette to-be-processed lui soit ajoutée, et qu’un devt avec l’IA soit peut-être entrepris…
Salut tout le monde !
Ce sujet est désormais en cours de développement .
Une PR a été ouverte pour propager la renumérotation des variables de scène quand une action est supprimée dans un groupe :
master ← claude/scene-variable-renumbering-4o6dvr
ouvert 09:40AM - 28 Aug 26 UTC
### Description
In the scene editor, the references to scene variables (e.g. `{… {0.1.last_value}}`) are position-based. The renumbering was already propagated when an action **group** is inserted, deleted, moved or reordered — but not when a single action is deleted **inside** a group ("at the same time" actions), nor when a condition is deleted inside an if/while block: the following actions of the group shift one index down, and every reference to their variables in the rest of the scene became stale, forcing the user to fix each step by hand.
`deleteAction` now reuses the exact same mechanism as group deletion:
- the sibling actions which follow the deleted one produce `prevPath → newPath` replacements (`0.2 → 0.1`, …), built from the smallest index up so a path is never rewritten twice;
- the variables map is rebuilt: the variables declared by the deleted action are dropped (including the ones nested in its if/then/else branches — they were previously left behind), and the variables of the shifted actions are renamed (including nested ones, which were previously not renamed at all);
- `replaceVariablePathsInActions` rewrites every reference to a renamed variable in the whole scene (texts, evaluate values, condition variable selectors, nested branches).
The now-unused `updatePathAfterDeletion` helper is removed.
The logic was validated against the real helper functions with simulations covering: deleting the middle of 3 parallel "get last state" actions, chained index shifts (no double rewrite), a shifted sibling if/then/else block with nested variables and references, deleting a block that declares nested variables, deleting a condition inside an `if` list, and 2-digit indexes (segment-boundary matching).
## Forum
Forum: ``https://community.gladysassistant.com/t/scene-propager-la-renumerotation-des-variables-recuperees-quand-lune-delles-est-supprimee``/9343
### Checklist
- [x] Tests pass: server untouched (front-only change); Cypress scene suite has no coverage of variable renumbering (unchanged)
- [x] Linter and prettier pass on both front and server (`npm run eslint`, `npm run prettier` on the changed file)
- [x] No undocumented breaking change
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01VTBWxzxbVWRGtveU28WuP8
---
_Generated by [Claude Code](https://claude.ai/code/session_01VTBWxzxbVWRGtveU28WuP8)_
N’hésitez pas à suivre la PR, à tester (optionnel, surtout pour les petites demandes) et à faire vos retours ici si besoin.