Repository navigation
fix(guard,#19810): proxy CRLF serre - HUMAN seulement si prose UI web - #19812
Conversation
Le proxy CRLF dans classify() (728146a, #11044) considerait tout corps avec \r\n comme un nit user UI web. Il attrapait les VRAIS nits UI web (corpus USER_NIT, bullet lists, "Il reste un souci") mais sur-firait sur les posts CLI Windows : un commentaire multi-ligne ecrit via Path.write_text (mode texte, \n -> \r\n) devenait HUMAN sans aucun marqueur de reserve. Cas fondateur #19704 (2026-10-08, po-2026) : la lane s'est auto-bloquee au merge-gate sur son propre commentaire, 0.1 h apres l'avoir poste, gap = transport CRLF seul. Fix : helper _looks_like_ui_web_nit() detecte une STRUCTURE de plainte (bullet-list, phrase-repere plainte EN/FR). Le CRLF proxy tient HUMAN seulement si live_concern OU cette structure est presente. Tests : 8 cas (5 cas Windows CLI non-HUMAN, 3 cas UI web preserves), 483 passed, 1 skipped (test_check_unaddressed_nits). Corpus 16700, 14850, 15651, 15837, 15920, 16103, 16799, 16876, 18149, 18336, 18937, 19132, adjoint_dossier, dismissal, followup, hold, mention, unevaluated : tous verts. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] |
Path-collision (organ #13359/#13615)Cette PR #19812 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] Derivation live READY a la tete vive : le dossier BLOCKED anterieur attestait des jambes alors en cours ; jambes latest-wins vertes, B.0 clear, aucun thread non resolu. |
Grain: LIGHT/guard -- lane myia-ai-01:CoursIA-2 -- prev: DEEP/research-code c.249 #19811
#19810 -- proxy CRLF serre : HUMAN seulement si prose UI web
Le proxy CRLF dans
classify()(728146a, #11044/#11045, ai-01, 2026-08-15)considerait tout corps avec
\r\ncomme un nit user UI web. Il attrapait lesVRAIS nits UI web (corpus USER_NIT, bullet lists, "Il reste un souci") mais
sur-firait sur les posts CLI Windows : un commentaire multi-ligne ecrit via
Path.write_text(mode texte,\n -> \r\n) devenait HUMAN sans aucunmarqueur de reserve.
Cas fondateur #19704 (2026-10-08, po-2026)
Lane po-2026 repond a une demande du coordinateur par un commentaire
multi-ligne poste via
gh pr comment --body-file. Le fichier ecrit enmode texte Windows produit du CRLF (15
\r\nconstates en live). Le gateB.0 rend
BLOCKED ... 1 nit(s) non leve(s)-- le nit etant lecommentaire de la lane elle-meme, gap 0.1 h, classifie
HUMANpar laseule presence de CRLF (aucun marqueur de reserve :
CONCERN_MARKERS= 0 hit).
Reparation mesuree : PATCH du corps en LF ->
classifyrendNone->le gate rend
OK ... aucun nit non leve.Solution choisie (option 1 revisee)
classify()distingue maintenant UI-web-nit d'un artefact de transport.Le CRLF tient HUMAN si et seulement si :
live_concern(le corps porte unCONCERN_MARKERSvivant -- marqueurformel de reserve, pas de faux-positif possible), OU
_looks_like_ui_web_nit(body): structure de plainte UI web :\r\n\s*[-*]\sou\r\n\s*\d+\.\sattention,heads-up,warning,please,bug,wrong,broken,nit,reserve,souci,probleme,manque,casse,faut, ...) et FR (il va falloir,il reste,il y a,pourrais-tu,ne pas, ...)attention ; test_controle_positif_vrai_nit_user_crlf B.0 : une levee ecrite sous l'identite jsboige devient elle-meme un nit non levable (distinct de #16688) #16700 l.150
"souci" ; test_rapport_verdict_ok_ne_flagge_pas l.248 "Verdict : OK"
deja couvert par
_HUMAN_VERDICT_RE).Tests ajoutes (8)
Mesure
python -m pytest scripts/tests/test_check_unaddressed_nits.py483 passed, 1 skipped (+8 nouveaux tests).
fratries, aucune regression.
Ce que le fix ne change PAS
_HUMAN_VERDICT_RE(Verdict : OK, LGTM, etc.) -- toujours court-circuite._POSITIVE_MARKERS,_LIFT_MARKERS,SEVERITY_GLYPHS-- intact.BOT_LOGINS,LIFT_OVERRIDE_LOGINS,AGENT_PREFIXES-- intact._HUMAN_VERDICT_REcourt-circuite).Cout / risque
nits (bullet lists, phrases plainte, marqueurs vivants).
(rare) reste HUMAN via
_UI_WEB_NIT_PHRASE_RE. Testtest_19810_windows_cli_crlf_attention_phrase_humancouvre ce casexplicitement.
Liens
🤖 Generated with Claude Code