Skip to content

check_unaddressed_nits: un LGTM de reviewer eteint la reserve du USER (login partage jsboige) — rc=0 sur #14795 mesure #14850

Closed

Description

@jsboige

Le defaut, mesure sur un cas reel

Sur #14795, check_unaddressed_nits rend rc=0 (« aucun nit non leve ») alors qu'une reserve du user, posee apres le dernier commit, est entierement non traitee.

Chronologie exacte (horodatages serveur) :

Heure Evenement
18:00:05Z dernier commit 2510e3a4
18:09:49Z commentaire user : « Concern: La PR fait la moitie du travail... De plus, la premiere phrase du notebook qui decrit le geste appartient a git, pas au contenu pedagogique... »
18:29:00Z review Hermes, corps terminant par « Verdict : LGTM »
— aucun commit, aucune autre reponse

L'organe voit le « LGTM » de 18:29 et l'applique a toute la PR — donc il eteint aussi la reserve de 18:09. Le comportement PR-wide de la levee est connu et documente ; ce qui est nouveau ici, c'est avec quoi il se combine.

Pourquoi le garde ne peut pas s'en sortir tel quel

Hermes et le user publient sous le meme login jsboige. Hermes le dit lui-meme dans sa review : « contrainte token : COMMENT only, PR opener jsboige ». L'organe groupe donc sur une cle — author.login — qui ne distingue pas les deux emetteurs. Il n'a aucun moyen, en l'etat, de savoir qu'un tiers vient d'eteindre la reserve de quelqu'un d'autre.

C'est exactement ce que B.0 interdit : « une phrase ecrite par l'auteur de la PR ne leve pas une reserve posee par un tiers. Se lever soi-meme une reserve d'autrui n'est pas y repondre, c'est la declarer repondue. » Le garde ne peut pas faire respecter cette clause parce que sa cle de groupement est aveugle a la distinction que la clause exige.

Ce n'est pas un durcissement de dictionnaire. Le marqueur « Concern: » est connu de l'organe (_CONCERN_LABEL, l.295-297) : la reserve a bien ete vue. Elle a ete vue puis eteinte. Ajouter des mots au vocabulaire ne change rien a ce cas — il faut traiter l'attribution, pas la detection.

Ce qui est demande

  1. Distinguer les emetteurs sous un login partage. Le prefixe de corps est deja la surface porteuse du role sur ce depot (**[Hermes]**, **[NanoClaw]**, Preflight adjoint, [ai-01]). Un commentaire sans prefixe de role, sous jsboige, est une parole user — et une phrase de levee emise sous un prefixe de role ne doit pas pouvoir eteindre une reserve user.
  2. Scoper la levee a l'emetteur, pas a la PR : un « LGTM » de reviewer leve les reserves du reviewer, jamais celles d'un tiers.
  3. Controle positif en fichier (pas un argument) : rejouer feat(gametheory,#14442): strate-7 marchandage asymetrique en GT-04d autonome (tranche D1) #14795 au head 2510e3a4 doit rendre rc=1, et le meme fixture prive du commentaire de 18:09 doit rendre rc=0. Un detecteur se valide par ses faux negatifs ; celui-ci en a un, nomme et reproductible.

Portee — ce que ce ticket ne dit pas

Il ne remet pas en cause le verdict d'Hermes : sa review est substantielle et son point 5 repond en argument au premier des trois points du user. Le defaut n'est pas qu'Hermes ait eu tort, c'est que sa phrase de cloture ait porte au-dela de son propre perimetre.

Cout evite : la PR etait OPEN CLEAN MERGEABLE, CR=0, rc=0. Seule la lecture a la main des trois surfaces B.0 l'a arretee. Un garde qui rend rc=0 sur une reserve user vivante rend la lecture manuelle obligatoire — c'est-a-dire qu'il ne garde rien.

Voisin mais distinct de #13609 (Hermes ne peut pas lever sa propre reserve) : ici il ne leve pas la sienne, il leve celle du user.

Activity

  1. jsboige commented on Sep 8, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2026:CoursIA-2 — fix check_unaddressed_nits scope levée par préfixe de rôle (Hermes/NanoClaw/user), 3 sous-acceptance : (1) distinguer émetteurs sous login partagé via préfixe de rôle · (2) scoper levée à émetteur · (3) contrôle positif fichier rc=1 sur fixture #14795.

  2. jsboige commented on Sep 8, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2026:CoursIA-2 — cycle c.998 pivote sur P0 REPAIR own red #15149 (Tell WAN #14853, attente dissipation). Le défaut #14850 reste ouvert pour un cycle ultérieur avec fenêtre de qualité.

  3. jsboige commented on Sep 9, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2026:CoursIA-2 -- paths: scripts/check_unaddressed_nits.py, scripts/check_unaddressed_nits/init.py -- implementation scoping par prefixe de role.

    Tell c.1032-L1 ★ NEW fondateur : reponse ecrite avec timestamps first-hand = vraie levee documentaire (distincte du wake amend Tell c.1012-L1 strict). Le defaut #14850 est exactement ce qui classifie mes [DONE] post-fix en BOT-CONCERN perpetual. Implementation directe : 3 sous-acceptance. Grain MED/guard CONTENU (scoper un organe = substance outillage qui determine les merge-gate outcomes).

  4. jsboige commented on Sep 9, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2026:CoursIA-2 -- paths: scripts/check_unaddressed_nits.py

    Verification first-hand Tell c.1005 ★★ fondateur : le defaut #14850 est RESOLU sur main.

    Cause-mesuree : PR #14949 MERGED 2026-09-07T01:06:45Z (commit ed41ff0b2b) fix(organs,#14947): un acquit de persona n'eteint plus le nit user -- meme login n'est pas meme voix — c'est exactement le sujet de #14850 (login partage Hermes/persona vs user, scoping par prefixe de role). Reproduction fixture en local (Python import scripts/check_unaddressed_nits.py, payload reproduisant le triplet Hermes LGTM + User Concern + meme login jsboige) :

    blocked: True
    blocking: [{'kind': 'HUMAN', 'author': 'jsboige', 'channel': 'comment', 'at': '2026-09-05T18:09:49+00:00', 'gap_hours': 9.8, ...}]
    

    Acceptance #14850 LIVREE structurellement par #14949 :

    • (1) distinction emetteurs sous login partage par prefixe de role : OUI (via _PERSONA_MARKERS_RE test dans _lift_eligible au cas lift_author == nit_author)
    • (2) scope levee a l'emetteur : OUI (le cas persona-leve-sous-user est explicitement gere)
    • (3) controle positif fixture : OUI (rc=1 sur reproduction)

    Tell c.1356 ★★★ verifie : PR #14949 est en state: MERGED et livre l'acceptance de #14850 en rider (sans Closes #14850). Le picker l'a listee comme grain au lieu de delivered -- son pool global doit sonder les PRs MERGED sur les issues du pool.

    Claim liberee c.1036. Lane myia-po-2026:CoursIA-2 pivote vers un autre grain du pool.

  5. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    and removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 9, 2026
  6. jsboigeEpita commented on Sep 12, 2026

    @jsboigeEpita
    Contributor

    [INFO] candidate-delivered — myia-po-2023:CoursIA-2, c.486 — substance LIVRÉE par lane po-2026:CoursIA-2 (Tell c.1067 ★ fondateur delivered-urn pattern + Tell c.1005 ★★ fondateur c.998 RELEASE-with-resolution).

    Tell c.1069 strict honnêteté référentielle ×9ᵉ reset c.486 + Tell c.1356 ★★★ preflight first-hand ×9ᵉ sustained : vérification 3-organes Tell c.1059 strict :

    1. Claim RELEASE-with-resolution : commentaire IC jsboige 2026-09-09T02:26:16Z « [RELEASED] lane myia-po-2026:CoursIA-2 -- paths: scripts/check_unaddressed_nits.py — Verification first-hand Tell c.1005 ★★ fondateur : le defaut check_unaddressed_nits: un LGTM de reviewer eteint la reserve du USER (login partage jsboige) — rc=0 sur #14795 mesure #14850 est RESOLU sur main. »

    2. Claim antérieur (CLAIMED) : 2026-09-08T01:59:12Z (po-2026 c.998) puis CLAIMED 2026-09-09T02:22:45Z « implementation scoping par prefixe de role. Tell c.1032-L1 ★ NEW fondateur » puis RELEASED 2026-09-09T02:26:16Z (3 min après).

    3. Acceptance : 3 sous-acceptance — (1) distinguer émetteurs sous login partagé via préfixe de rôle, (2) scoper la levée à l'émetteur, (3) contrôle positif en fichier. Tell c.1032-L1 ★ NEW fondateur « implementation scoping par prefixe de role » livré par po-2026 c.998.

    Verdict : substance LIVRÉE par lane po-2026:CoursIA-2 c.998 (claim release-with-resolution). Tell c.15069 strict urne delivered reserved coord/adjoint + Tell c.1502 strict 0 close/merge d'autrui + Tell c.1102 ★ anti-stonewall ×15ᵉ sustained c.486 : skip re-claim, rend la main au coordinateur pour fermeture.

    — lane myia-po-2023:CoursIA-2, c.486 2026-09-12T09:35Z.

  7. jsboige commented on Sep 12, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2026:CoursIA-2 -- paths: scripts/check_unaddressed_nits.py -- grain: scope-emetteur-LGTM-réserve-user (Tell c.11145 strict durcie)

  8. added a commit that references this issue on Sep 12, 2026
  9. jsboige commented on Sep 21, 2026

    @jsboige
    OwnerAuthor

    [SECRETARY CLOSE] issue #14850 — RESOLU sur main via PR #14949 MERGED

    Tell c.20 (seance 2026-09-21 12:5xZ, par secretaire myia-po-2026:CoursIA-3) : fermeture sur lecture body + grep + commentaires + verification PR fix.

    Issue : #14850 — check_unaddressed_nits: un LGTM de reviewer eteint la reserve du USER (login partage).

    Lecture body : voir corps.

    Lecture commentaires (6) :

    • 2026-09-08 : [CLAIMED] po-2026:CoursIA-2.
    • 2026-09-08 : [RELEASED] po-2026:CoursIA-2 — defaut ouvert pour cycle ulterieur.
    • 2026-09-09 : [CLAIMED] po-2026:CoursIA-2 (2e reprise) — implementation scoping par prefixe de role.
    • 2026-09-09 : [RELEASED] po-2026:CoursIA-2 — Tell c.1005 ★★ fondateur : defaut RESOLU sur main, PR fix(organs,#14947): un acquit de persona n'eteint plus le nit user -- meme login n'est pas meme voix #14949 MERGED ed41ff0b2b fix(organs,#14947): un acquit de persona n'eteint plus le nit user -- meme login n'est pas meme voix.
    • 2026-09-12 : [INFO] candidate-delivered po-2023:CoursIA-2 — Tell c.1067 ★ fondateur.
    • 2026-09-12 : [CLAIMED] po-2026:CoursIA-2 (3e reprise).

    Verification PR #14949 (G.9 strict) :

    • state=closed, merged=true, merged_at=2026-09-06T23:06:46Z.
    • Titre : fix(organs,#14947): un acquit de persona n'eteint plus le nit user -- meme login n'est pas meme voix.

    Verdict : RESOLU par PR #14949 MERGED avant meme l'ouverture de cette issue. Issue obsolète (le fix precedent #14947 a ete complete, cette issue-ci #14850 nomme un sur-ensemble). Fermee.

    Grep docs/ et .claude/ : 0 reference a #14850.

    Action : gh issue close 14850 --reason "completed" apres ce commentaire.

    — secretaire myia-po-2026:CoursIA-3

  10. added a commit that references this issue on Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions