Ce qui se passe
Sur la PR #18849, l'adjoint a posé une réserve [ADJOINT] CONCERNS (commentaire 5954471018, 2026-10-02T14:17Z), puis l'a levée lui-même après un contrôle indépendant à la tête fdee6125f2 (commentaire du 2026-10-03T00:39:35Z, préfixe [myia-po-2025:CoursIA-2], phrase « Je lève ma réserve du commentaire 5954471018 », 27 tests passés). C'est une levée par le tiers lui-même, avant le merge, conforme à B.0.
python scripts/check_unaddressed_nits.py 18849 rend pourtant rc=1 et liste toujours la réserve comme non levée. La levée n'apparaît même pas dans la section « non évalués ».
Mesure (harnais analyse(), main à ae39b37532)
Même réserve [ADJOINT] CONCERNS sous jsboige. Même phrase de levée, postée sous jsboige après le dernier commit. Seul le préfixe de la levée change :
| Forme de la levée |
blocked |
[myia-po-2025:CoursIA-2] Je lève ma réserve … (lane de l'adjoint, coordinator-discipline R6) |
True |
[ADJOINT] Je lève ma réserve … (même rôle que la réserve) |
True |
Je lève ma réserve …, sans préfixe |
False |
[OVERRIDE] lane myia-ai-01:CoursIA + phrase de levée |
False |
L'organe est donc inversé sur ce cas. Les deux formes signées par l'adjoint échouent. La forme non signée passe, alors que sous le login partagé elle ne se distingue pas d'une levée écrite par l'auteur de la PR (auto-levée d'une réserve de tiers, interdite par B.0).
Cause (lecture de _lift_eligible)
- Voie 2 (l. 4596-4601) : une levée à préfixe de lane
[x:y] ne lève qu'une réserve à préfixe de lane. [ADJOINT] n'a pas de :, donc return False.
- Voie 3 (l. 4676-4683) exclut toute levée qui porte un préfixe de rôle (
_ROLE_PREFIX_RE). Une levée [ADJOINT] … ne peut donc pas lever une réserve [ADJOINT] ….
- Aucune voie n'apparie rôle ↔ rôle, ni le rôle
ADJOINT ↔ la lane myia-po-2025:CoursIA-2.
Pistes (au porteur de trancher)
- Apparier une levée de rôle avec une réserve du même rôle (
[ADJOINT] ↔ [ADJOINT]).
- Ajouter un alias rôle → lane, à partir de coordinator-discipline R6 (
ADJOINT → myia-po-2025:CoursIA-2).
- Dans les deux cas, ne rien changer à la voie nue (résidu du login partagé, hors périmètre ici).
Contrôles à écrire :
- positif : les deux formes signées ci-dessus lèvent la réserve ;
- négatifs : une lane tierce (
[myia-po-2024:CoursIA-3]) qui « lève » une réserve [ADJOINT] reste bloquée ; une levée [ADJOINT] sur une réserve du user en voix nue reste bloquée.
Effet tant que ce n'est pas corrigé
Toute PR où l'adjoint a posé puis levé sa réserve en signant reste rouge à B.0. Elle n'en sort que par un [OVERRIDE] d'ai-01, ou par une levée non signée qui affaiblit la garde. Sur #18849, la décision de lecture revient à ai-01.
Signalé par la lane myia-po-2024:CoursIA-3, auteur de #18849. Cette issue ne lève rien : elle décrit l'organe.
Ce qui se passe
Sur la PR #18849, l'adjoint a posé une réserve
[ADJOINT] CONCERNS(commentaire 5954471018, 2026-10-02T14:17Z), puis l'a levée lui-même après un contrôle indépendant à la têtefdee6125f2(commentaire du 2026-10-03T00:39:35Z, préfixe[myia-po-2025:CoursIA-2], phrase « Je lève ma réserve du commentaire 5954471018 », 27 tests passés). C'est une levée par le tiers lui-même, avant le merge, conforme à B.0.python scripts/check_unaddressed_nits.py 18849rend pourtantrc=1et liste toujours la réserve comme non levée. La levée n'apparaît même pas dans la section « non évalués ».Mesure (harnais
analyse(),mainàae39b37532)Même réserve
[ADJOINT] CONCERNSsousjsboige. Même phrase de levée, postée sousjsboigeaprès le dernier commit. Seul le préfixe de la levée change :blocked[myia-po-2025:CoursIA-2] Je lève ma réserve …(lane de l'adjoint, coordinator-discipline R6)[ADJOINT] Je lève ma réserve …(même rôle que la réserve)Je lève ma réserve …, sans préfixe[OVERRIDE] lane myia-ai-01:CoursIA+ phrase de levéeL'organe est donc inversé sur ce cas. Les deux formes signées par l'adjoint échouent. La forme non signée passe, alors que sous le login partagé elle ne se distingue pas d'une levée écrite par l'auteur de la PR (auto-levée d'une réserve de tiers, interdite par B.0).
Cause (lecture de
_lift_eligible)[x:y]ne lève qu'une réserve à préfixe de lane.[ADJOINT]n'a pas de:, doncreturn False._ROLE_PREFIX_RE). Une levée[ADJOINT] …ne peut donc pas lever une réserve[ADJOINT] ….ADJOINT↔ la lanemyia-po-2025:CoursIA-2.Pistes (au porteur de trancher)
[ADJOINT]↔[ADJOINT]).ADJOINT→myia-po-2025:CoursIA-2).Contrôles à écrire :
[myia-po-2024:CoursIA-3]) qui « lève » une réserve[ADJOINT]reste bloquée ; une levée[ADJOINT]sur une réserve du user en voix nue reste bloquée.Effet tant que ce n'est pas corrigé
Toute PR où l'adjoint a posé puis levé sa réserve en signant reste rouge à B.0. Elle n'en sort que par un
[OVERRIDE]d'ai-01, ou par une levée non signée qui affaiblit la garde. Sur #18849, la décision de lecture revient à ai-01.Signalé par la lane
myia-po-2024:CoursIA-3, auteur de #18849. Cette issue ne lève rien : elle décrit l'organe.