Repository navigation
fix(guard,#15193): un login suivi d'un point (fin de phrase) matche la frontiere d'identite - #15243
Conversation
…a frontiere d'identite Le `.` etait dans la classe des frontieres (lookbehind ET lookahead) de _override_scopes_reserve : "la reserve de <login>." (login en fin de phrase) ne matchait jamais. L'idiome recommande par l'organe lui-meme etait donc rejete a l'ecole -- mesure sur #15049 (3 overrides successifs refutes). Fix : retirer `.` des deux classes ; seul un caractere de MOT (alnum/_) ou un hyphen continue le token (anti sous-chaine `Myia` dans `clusterManager-Myia`, anti `jsboige2`/`jsboige-backup`). Preuve : 489 tests verts (387 + 102 sur les fichiers nits) + regression test test_15193_login_suivi_du_point_matche avant/apr\u00e8s. Closes #15193 Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
Une Pour passer ce gate, réécrivez le champ |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
fix(guard,#15193): un login suivi d'un point (fin de phrase) matche la frontiere d'identite
Grain: MED/guard — lane myia-po-2023:CoursIA-2 — prev: MED/lean #15150 (c.327b)
Symptome
_override_scopes_reserve(scripts/check_unaddressed_nits.py) construit lafrontiere d'identite du login ainsi :
Le
.est dans la classe du lookahead (et du lookbehind) negatif. Unlogin suivi d'un point — donc en fin de phrase — ne matche jamais.
finditerne rend aucune occurrence,_scope_lifted_sentencene voie pas laphrase, l'override est rejete.
Pourquoi ca coute
Le diagnostic emis par l'organe lui-meme recommande cet idiome :
Ecrite telle quelle, la phrase se termine par le login. Suivre la consigne a
la lettre produit un non-match — et le message d'erreur redemande exactement
la forme qui vient d'echouer. Mesure sur #15049 : trois commentaires
d'override successifs, tous rejetes, avant que la cause soit isolee.
Correctif
Retirer
.des deux classes de frontieres, en conservant-:.exclu : un login suivi d'un point (fin de phrase) est une frontiered'identite legitime et doit matcher.
-conserve : protege la sous-chaine (MyiadansclusterManager-Myia—test
test_14216_unite_scope_login_persona_et_anonyme)._conserves : antijsboige2/jsboige_x.Preuve (offline, contre le code de l'organe)
_override_scopes_reserve(...,'jsboige')… je leve aussi la reserve de jsboige.— l'idiome recommandeTrue(etaitFalse)… je leve aussi la reserve de jsboige elle-meme.True(inchangé)… je leve aussi la reserve de jsboige, posee a 23:11Z.True(inchangé)… je leve aussi la reserve de jsboige2.False(anti sous-chaine)… je leve aussi la reserve de jsboige-backup.False(anti sous-chaine)… je leve aussi la reserve de clusterManager-Myia.('Myia')False(anti sous-chaine)reserve Hermes levee(persona alias)True(inchangé)Validation
python -m pytest scripts/tests/test_check_unaddressed_nits.py: 387 passepython -m pytest scripts/tests/test_check_unaddressed_nits_{dismissal,followup,hold,mention,unevaluated}.py: 102 passetest_15193_login_suivi_du_point_matchereproduit le bug (etait
False) et le leve apres fix.Note genre (G-VAR-1)
Grain
guard= classe META : ne tient pas a lui seul le plancherG-VAR-1 (pas de capacite CONTENU livree). Toutefois il s'attaque a la cause
racine de la PR rouge #15073 de cette lane (organe qui refusait la levee
F1/F2 nommee) et aide toutes les lanes (surcharge d'overrides rejetes). Le
grain CONTENU qui portera le prochain cycle de cette lane est nomme dans le
rapport de cycle : #15176 (Lean ProgramGames L1, noyau borne).
Cross-reference
Closes #15193