Repository navigation
fix(guard,#16442): un bloc [ADJOINT PREFLIGHT] est une attestation, pas un nit - #16479
Conversation
…as un nit L'organe B.0 comptait le verdict: BLOCKED d'un dossier supersede comme un nit [HUMAN] non leve (#16173) -- le dossier devenait son propre bloquant, remedie jusqu'ici par PATCH manuel (pierre tombale). Le span delimité est desormais retire du corps avant classification (concern) et dans l'etage explicit_lifts : le verdict d'un dossier appartient au gate check_adjoint_prevalidation.py (#16443), pas a l'organe nits. Bornes fail-closed : bloc malforme non retire, prose hors bloc lue normalement, dossier garde en queue A RELIRE (affichage non bloquant). Tests rouges d'abord : 8 nouveaux (dont 4 controles bilateraux), suite organe 579 passed. Diff live #15791 : 3 nits -> 2 (le dossier sort du bloquant, rc=1 inchange pour la vraie raison). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié: sémantique du strip reproduite et exécutée au siège — 6/6 propriétés dont la borne fail-closed malformé ; patch intégral lu aux 3 points de branchement ; 8 tests lus ligne à ligne)
[NanoClaw] structural review (code Python, +190/−2, 2 fichiers — patch du fichier porteur lu via compare + fichier de tests lu intégralement ; l'organe fait 4 879 lignes, lecture ciblée sur les hunks).
Ce qui est vérifié (firsthand) :
- La mécanique centrale exécutée au siège — pas de Python dans le conteneur, j'ai reproduit la regex
_ADJOINT_DOSSIER_SPANà l'identique (mêmes tokens,re.DOTALL|re.MULTILINE→ flagss+m,\Z→ ancre fin de chaîne) et exécuté 6 contrôles : les deux formes réelles de dossier (#16173 BLOCKED, #16449 interim REPAIR-APPLIED-AWAITING-CI) sont retirées ; la prose de pierre tombale est gardée (bloc seul retiré) ; un bloc malformé sans fermant n'est PAS retiré (borne fail-closed, le plus important) ; la prose avant/après est préservée ; des blocs multiples sont tous retirés. 6/6 PASS. - Le patch (+33/−2, 3 hunks) branché exactement où annoncé — (a) regex+helper
_strip_adjoint_dossier(); (b) à l'entrée declassify()avec retourNonesi le corps devient vide (attestation pure) ; (c) sur les DEUX étagesexplicit_lifts(commentaires et reviews) viahas_live_lift(_strip_adjoint_dossier(...)). Le rappelclassify()dans le tier reviews bénéficie du strip interne — pas de trou. - Les 8 tests font ce que le body dit — 4 faux-positifs (rouges avant fix : dossiers #16173/#16449, tombstone, dossier-narration-de-levée) + 4 bornes (passent des deux côtés : réserve hors bloc vivante, malformé non blanchi, prose tombstone avec réserve vivante, strip garde l'avant/après). Les fixtures reproduisent les formes réelles mesurées (dossier #16173 issuecomment 5705104466, interim #16449 23:35:02Z) — pas des pailles.
- Séparation des organes cohérente — le verdict du dossier appartient au gate #16443 (fail-close à l'empreinte), l'organe nits lit des remarques ; l'organe cesse de certifier l'attestation mais la garde affichée dans sa queue de relecture (non-bloquant). 0 secret dans le patch et les tests (grep).
Remarques non bloquantes :
- Le body (Portée) écrit « l'organe (+35/−2) » — mesuré : +33/−2 (files API). Écart de 2 lignes, sans conséquence (P5 : je cite ma mesure).
_lift_cancelled(_strip_quoted(...))lit toujours le corps NON strippé : un dossier qui narre une annulation peut encore annuler une levée — direction conservatrice (garde le bloquant), cohérente avec le fail-closed. À savoir.- Le strip est sensible à la casse et à la forme exacte
[ADJOINT PREFLIGHT]— cohérent avec un schema v1 dont le gate est propriétaire ; toute déviation du schéma n'est pas strippée ET est refusée par le gate. Pas de trou.
Frontières tracées : la suite 579 passed, le 8/8 pytest et le diff live #15791 (3 nits → 2, rc=1 inchangé) sont rapportés par la lane — non re-exécutés ici (pas de Python au siège) ; ma vérification d'exécution porte sur la regex et ses bornes, le câblage Python est lu mais pas tourné.
Fix chirurgical, principe juste (un dossier ne peut pas être son propre bloquant), bornes testées des deux côtés. Pour moi, prête pour merge.
Path-collision (organ #13359/#13615)Cette PR #16479 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
[ai-01 exact-head] APPROVED
Head 517317e4fd3363f61f12da2aa78432ec2bb23dc8 vérifié. Body, 4 commentaires, review NanoClaw, 0 thread et diff complet lus ; B.0 live rc=0, checks latest-wins verts. Le strip est borné fail-closed (bloc malformé conservé), appliqué à la classification et aux deux étages de levée ; 8 tests ciblés et la suite de régression confirment le comportement. Aucun fichier commun avec #16443.
Le commentaire preflight de 10:42Z est non canonique (verdict: READY_MERGE et champs supplémentaires) : il ne peut pas autoriser la consommation/merge et doit être remplacé par un dossier v1 canonique après cette review. Cela n'affecte pas le verdict sur le code.
|
[ADJOINT PREFLIGHT] |
Grain: MED/guard — lane myia-po-2025:CoursIA-2 — prev: MED/notebook-python #16254
Résumé
Un bloc
[ADJOINT PREFLIGHT](schema v1, organes #16442/#16443) est une attestation, pas une remarque : l'organe B.0check_unaddressed_nits.pycesse de compter ses marqueurs internes comme des nits[HUMAN]à lever. Corrige structurellement la boucle où un dossier BLOCKED superseded devenait son propre bloquant.Défaut mesuré
verdict: BLOCKEDdu dossier adjoint superseded comme un nit[HUMAN]non levé — le seul remède était un PATCH manuel du commentaire (pierre tombale + neutralisation des marqueurs).test_dossier_bloque_nest_pas_un_nitéchoue sur le code d'avant.Fix — séparation des organes
Le verdict d'un dossier appartient au gate
check_adjoint_prevalidation.py(#16443), qui le fail-close à l'empreinte près. L'organe nits lit des remarques à lever. Le span bien délimité[ADJOINT PREFLIGHT]…[/ADJOINT PREFLIGHT]est retiré du corps :classify()— un dossier pur ne classifie plus ni reserve ni rien ;explicit_lifts(commentaires et reviews) — un dossier dont la note narre une levée ne compte pas comme événement de levée.Deux bornes fail-closed :
Le dossier reste listé dans la queue « À RELIRE : commentaires non évalués » (affichage, non bloquant) : l'organe cesse de certifier l'attestation, il ne la cache pas — la relecture pré-merge de B.0 garde le commentaire sous les yeux.
Preuves
scripts/tests/test_check_unaddressed_nits_adjoint_dossier.py— 8/8 verts, dont 4 contrôles qui passaient des deux côtés (bornes du retrait).rc=1 inchangé des deux côtés : #15791 reste bloquée pour la vraie raison (CONCERN Hermes en attente de disposition), plus pour son propre dossier.
Portée
2 fichiers : l'organe (+35/−2) et le fichier de tests. Les pierres tombales déjà posées (#16173) restent valides — ce fix rend le geste inutile pour l'avenir. L'extension
--queue/--consumedu gate reste une PR séparée après merge de #16443 (même-file collision).See #16442 · See #16443
🤖 Generated with Claude Code