You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
B.0 sur-accusation — répondre à une réserve en la citant crée une nouvelle réserve (cas #16441, laissé hors du fix #17065) #17071
Title: B.0 sur-accusation — répondre à une réserve en la citant crée une nouvelle réserve (cas #16441, laissé hors du fix #17065)
Le cas
Sur #16441, un item blocking de check_unaddressed_nits.py provient d'une réponse à une réserve, qui cite la réserve traitée :
Re: @myia-ai-01 CHANGES_REQUESTED au head 432520cb — les deux blockers sont traités
CHANGES_REQUESTED y est en position de citation d'adresse (« la réserve que tu as posée au head X »), pas d'émission. L'organe le compte comme une réserve posée : une lane ne peut pas se dé-bloquer en répondant — la forme même de la réponse recrée le bloquant. C'est un piège sans sortie pour la lane porteuse.
Pourquoi hors du fix #17065 (décision du critère 4 de #17065)
Le fix #17070 traite le cas structurel : le délimiteur machine-lisible [ADJOINT PREFLIGHT]…[/ADJOINT PREFLIGHT]. Ici le discriminateur candidat serait la forme de la réponse (« Re: », mention @, « au head ») — c'est une heuristique de prose, exactement la classe que la mesure #14682 a bornée (sur-accusation d'un facteur 5 quand l'organe lit la prose libre). Écarter « CHANGES_REQUESTED » derrière un « Re: » écarterait aussi les vraies réponses qui RÉITÈRENT une réserve (« Re: … : le CHANGES_REQUESTED tient »).
Pistes candidates (à arbitrer avant implémentation)
CITERS étendu aux formes d'adresse : ajouter aux fenêtres de _is_cited les préfixes Re: / @<login> / « au head » comme indices de citation — risque : faux négatifs sur réponses qui réitèrent.
Voie de sortie côté lane (zéro changement d'organe) : répondre sans citer le mot (« Réponse à ta réserve du head 432520c : les deux blockers sont traités ») — documenter la forme sûre dans le protocole B.0 plutôt que d'élargir le scanner.
python scripts/check_unaddressed_nits.py 16441 --json → item [BOT-CONCERN]/[HUMAN] dont l'excerpt commence par Re: @myia-ai-01 CHANGES_REQUESTED.
Ampleur
Mesurée sur le sweep des 263 PRs ouvertes du fix #17065 (2026-09-20, pré-fix) : 1 PR porte un item blocking de cette forme (#16441 exactement, l'exemplaire mesuré par ai-01). Classe confinée mais piège sans sortie pour la lane porteuse — à arbitrer entre les trois pistes.
Title: B.0 sur-accusation — répondre à une réserve en la citant crée une nouvelle réserve (cas #16441, laissé hors du fix #17065)
Le cas
Sur #16441, un item
blockingdecheck_unaddressed_nits.pyprovient d'une réponse à une réserve, qui cite la réserve traitée :CHANGES_REQUESTEDy est en position de citation d'adresse (« la réserve que tu as posée au head X »), pas d'émission. L'organe le compte comme une réserve posée : une lane ne peut pas se dé-bloquer en répondant — la forme même de la réponse recrée le bloquant. C'est un piège sans sortie pour la lane porteuse.Pourquoi hors du fix #17065 (décision du critère 4 de #17065)
Le fix #17070 traite le cas structurel : le délimiteur machine-lisible
[ADJOINT PREFLIGHT]…[/ADJOINT PREFLIGHT]. Ici le discriminateur candidat serait la forme de la réponse (« Re: », mention @, « au head ») — c'est une heuristique de prose, exactement la classe que la mesure #14682 a bornée (sur-accusation d'un facteur 5 quand l'organe lit la prose libre). Écarter « CHANGES_REQUESTED » derrière un « Re: » écarterait aussi les vraies réponses qui RÉITÈRENT une réserve (« Re: … : le CHANGES_REQUESTED tient »).Pistes candidates (à arbitrer avant implémentation)
_is_citedles préfixesRe:/@<login>/ « au head » comme indices de citation — risque : faux négatifs sur réponses qui réitèrent.isResolved: true) — vérifier si fix(iit,#2161): ICT-25 Ex1 + ICT-15e Ex1/Ex2 visibles au compteur — print-idiom C.1 #16441 avait un thread résoluble qui aurait dû lever l'item (la Voie 2 de B.0 existe déjà).Reproduction
python scripts/check_unaddressed_nits.py 16441 --json→ item[BOT-CONCERN]/[HUMAN]dont l'excerpt commence parRe: @myia-ai-01 CHANGES_REQUESTED.Ampleur
Mesurée sur le sweep des 263 PRs ouvertes du fix #17065 (2026-09-20, pré-fix) : 1 PR porte un item
blockingde cette forme (#16441 exactement, l'exemplaire mesuré par ai-01). Classe confinée mais piège sans sortie pour la lane porteuse — à arbitrer entre les trois pistes.Grain: LIGHT/guard — lane myia-po-2025:CoursIA-2