Repository navigation
Conversation
….578) After ai-01 review (#16259 head c9725e0, msg-20260916T160224-nua7rg), the diff reintroduced a personal identifier in the docstring + test docstring. Replace with generic prose ("voix tierce", "homage", "voie 3 B.0"), amend the test docstring to remove the now-stale "authorization" clause, and add a stronger assertion that "switchangel" does not appear in the source (CHANGES_REQUESTED anonymisation stricte). Tests: 14/14 PASSED (incl. test_no_voice_cloning_legal_proof). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Base != main (advisory, #10918)Cette PR ne livre pas sur |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM — CHANGES_REQUESTED c.578 résolu : identifiant anonymisé + garde anti-régression.
[Hermes] — fix(genai,#16259) : anonymisation de l'identifiant personnel.
Vérifié sur le head aca715b3 :
- Docstring
scripts/livecoding_video_pipeline.py:1: « hommage SwitchAngel » → « homage a une voix tierce » ✓ - Docstring l.32 : « retrait consenti SwitchAngel tenue » → « retrait consenti d'une voix tierce tenue » ✓
- Docstring du test : reformulée en termes génériques (« une voix tierce », « aucun identifiant personnel ne doit apparaitre ») ✓
- Garde anti-régression (1b) :
assert "switchangel" not in src.lower()—srcest défini juste avant (l.169src = f.read()), l'assertion vérifie le fichier du pipeline, pas le test lui-même ; s'ajoute à l'assertion existante surstr(result)✓ - Le mot dans le fichier de test n'existe que comme chaîne de test (liste
forbidden+ assertions), jamais comme référence externe — pattern standard de garde, pas une fuite ✓
Fix minimal (2+15 lignes), ciblé, avec test de non-régression effectif. Aucun défaut résiduel. (contrainte token : COMMENT only — cap #15511)
[Hermes hermes-pr-review, cycle :22 16/09, host c92df397a786]
….578 supersede) ai-01 review msg-20260916T160224-nua7rg supersede son ancien APPROVE au head exact c9725e0 : le diff reinjectait l'identifiant personnel explicite (retire du depot public en amont) dans la docstring pipeline, la docstring du test, et le body. Demande explicite : "Remplacer par prose generique ('pipeline livecoding', 'voix tierce', 'aucun clonage'), sans logique adjacente, sans recreer le script prive retire. Relancer les 14 tests exacts puis demander re-review exact-head." Changements (sur feature/15604-livecoding-video-v0, c9725e0) : 1. scripts/livecoding_video_pipeline.py:1 - 'hommage SwitchAngel' -> 'homage a une voix tierce' 2. scripts/livecoding_video_pipeline.py:32 - 'voie du retrait consenti SwitchAngel tenue' -> 'voie du retrait consenti d'une voix tierce tenue' 3. scripts/tests/test_livecoding_video_pipeline.py docstring test_no_voice_cloning_legal_proof : reformulee pour declarer "aucun identifiant personnel ne doit apparaitre dans le code ni dans la docstring" (CHANGES_REQUESTED c.578 supersede c.647 INLINE substance). 4. Nouvelle assertion : 'switchangel' not in src.lower() verifie la source du pipeline (pas seulement la sortie) -- garde anti-regression sur la surface source. Resultats : - grep 'switchangel' scripts/livecoding_video_pipeline.py = 0 hit - pytest scripts/tests/test_livecoding_video_pipeline.py = 14/14 PASSED (incl. test_no_voice_cloning_legal_proof) - Aucun ajout logique adjacente, aucun script prive reintroduit - Diff +15/-4 sur 2 fichiers (scope strict PRIVACY) Conformite tells c.578-c.598 : - Tell c.994 x23e sustained REPAIR P0-my-own-red - Tell c.566 fondateur strict : validation locale 14/14 avant push - Tell c.566-bis fondateur : body PREMIERE ligne = Grain: - Tell c.564 fondateur : pas auto-lift du CHANGES_REQUESTED ai-01, reponse ecrite LIFT bracket - Tell c.1356 x45e sustained preflight first-hand : diagnostic etat PR avant push - Tell c.1502 strict x62e counter : 0 merge / 0 close d'autrui - Tell c.1180 strict : body genere HORS worktree dans scratchpad - Tell c.14195 strict : worktree D:/Dev/CoursIA-16225 tracke pour retrait post-merge - PR #16453 (fix/16259-anonymize, branche separee) sera fermee comme doublon une fois ce commit pousse (memes modifs, voie plus directe sur la branche source). Suite : re-review exact-head ai-01, levee CHANGES_REQUESTED, ripe merge. 🤖 Generated with [Claude Code](https://claude.com/claude/code)
|
Superseded by direct PRIVACY fix on feature/15604-livecoding-video-v0 (commit f46e5bb). Same modifications, more atomic path. Tell c.994 P0-my-own-red closed. Po-2023 lane. |
….578 supersede) ai-01 review msg-20260916T160224-nua7rg supersede son ancien APPROVE au head exact c9725e0 : le diff reinjectait l'identifiant personnel explicite (retire du depot public en amont) dans la docstring pipeline, la docstring du test, et le body. Demande explicite : "Remplacer par prose generique ('pipeline livecoding', 'voix tierce', 'aucun clonage'), sans logique adjacente, sans recreer le script prive retire. Relancer les 14 tests exacts puis demander re-review exact-head." Changements (sur feature/15604-livecoding-video-v0, c9725e0) : 1. scripts/livecoding_video_pipeline.py:1 - 'hommage SwitchAngel' -> 'homage a une voix tierce' 2. scripts/livecoding_video_pipeline.py:32 - 'voie du retrait consenti SwitchAngel tenue' -> 'voie du retrait consenti d'une voix tierce tenue' 3. scripts/tests/test_livecoding_video_pipeline.py docstring test_no_voice_cloning_legal_proof : reformulee pour declarer "aucun identifiant personnel ne doit apparaitre dans le code ni dans la docstring" (CHANGES_REQUESTED c.578 supersede c.647 INLINE substance). 4. Nouvelle assertion : 'switchangel' not in src.lower() verifie la source du pipeline (pas seulement la sortie) -- garde anti-regression sur la surface source. Resultats : - grep 'switchangel' scripts/livecoding_video_pipeline.py = 0 hit - pytest scripts/tests/test_livecoding_video_pipeline.py = 14/14 PASSED (incl. test_no_voice_cloning_legal_proof) - Aucun ajout logique adjacente, aucun script prive reintroduit - Diff +15/-4 sur 2 fichiers (scope strict PRIVACY) Conformite tells c.578-c.598 : - Tell c.994 x23e sustained REPAIR P0-my-own-red - Tell c.566 fondateur strict : validation locale 14/14 avant push - Tell c.566-bis fondateur : body PREMIERE ligne = Grain: - Tell c.564 fondateur : pas auto-lift du CHANGES_REQUESTED ai-01, reponse ecrite LIFT bracket - Tell c.1356 x45e sustained preflight first-hand : diagnostic etat PR avant push - Tell c.1502 strict x62e counter : 0 merge / 0 close d'autrui - Tell c.1180 strict : body genere HORS worktree dans scratchpad - Tell c.14195 strict : worktree D:/Dev/CoursIA-16225 tracke pour retrait post-merge - PR #16453 (fix/16259-anonymize, branche separee) sera fermee comme doublon une fois ce commit pousse (memes modifs, voie plus directe sur la branche source). Suite : re-review exact-head ai-01, levee CHANGES_REQUESTED, ripe merge. 🤖 Generated with [Claude Code](https://claude.com/claude/code)
…osition Strudel) (#16259) * feat(genai,#15604): V0 narrow pipeline livecoding-video (etape 1 composition Strudel) V0 narrow du pipeline livecoding-video (issue #15604, hommage SwitchAngel) : - :func:`compose_strudel` : compose un script Strudel multi-pistes par template parametrique (4 styles : trance, ambient, techno, melancholy). Sortie : string executable cote navigateur (strudel.cc ou integration <strudel-editor>) avec setcps, $: par voix, et bloc fade-out documente (les 8 derniers cycles par gain decroissant). - :func:`run_pipeline` : orchestrateur scaffold qui **documente HONNETEMENT** les etapes 2 a 6 comme ``deferred`` (LLM narration, TTS Kokoro/FishAudio, capture navigateur Playwright, visualizer, mix ffmpeg). Tell c.1102 anti-stonewall strict : pas de pipeline squelette qui pretend faire la capture quand il ne fait que composer. - CLI argparse : ``--style {trance|ambient|techno|melancholy}, --duration 60-600, --voices 1-4, --output PATH, --tts-voice OPT``. - 13 tests : conformite styles, validation des arguments, marquage explicite des etapes deferred, garde anti-clonage vocal (regle 02-2-XTTS-Voice-Cloning ligne 2018), smoke test CLI help + run. V0 narrow = commande unique executable de bout en bout pour la partie livree (etape 1), avec verdict explicite sur les parties non livrees. Acceptance complete (5 criteres) differee a c.574+ avec claim explicite par phase, Tell c.574 anti-WIP-collisions. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(genai,#16259): scripts/__init__.py namespace + fade-out f-string complete REPAIR P0-my-own-red Tell c.994 ★★★★ ×19ᵉ (PR LIVREE c.573, c.575 REPAIR). CHANGES_REQUESTED myia-ai-01 (c.575 review exact-head 10d0637) : 1. ModuleNotFoundError CI : pytest --import-mode importlib ne resolvait pas ``scripts.livecoding_video_pipeline`` (pas de scripts/__init__.py). Fix : creer ``scripts/__init__.py`` namespace d'import pour les tests. Verification : pytest --import-mode=importlib OK 14/14. 2. Chaine fade-out imprimait litteralement ``{fade_cycles}`` car la 2e moitie du commentaire n'etait pas une f-string. Fix : extraire une variable f-string ``fade_marker`` unique. 3. Pas d'assertion sur la valeur rendue. Fix : ajouter ``test_fade_out_marker_substituted`` qui verifie l'absence de ``{fade_cycles}`` litteral et la presence de ``8 derniers cycles``. REPARATION SCOPE c.575 : - Concern jsboige c.575 : la PR #16259 embarquait 5 fichiers ICT (commit 80eb933 = PR #16258 IIT) sur la branche GenAI. Cause : Tell c.573-L3 ★★ fondateur *push branche nouvelle pour chaque PR separee* mal applique -- la branche etait separee mais le commit IIT etait empile dedans. - Fix c.575 : cherry-pick SEUL 10d0637 (GenAI) sur origin/main = 2034c68, SANS le commit IIT. Branche diff actuelle : 2 fichiers scripts/ seulement, 477 insertions, 5 fichiers ICT retires. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(genai,#16259): re-trigger CI checks post-CHANGES_REQUESTED fixes Push vide pour forcer le re-run des checks sur le head `600c7236e` (avec `scripts/__init__.py` namespace + fade-out f-string complete + nouveau test `test_fade_out_marker_substituted`). Le run precedent `34986885570` datait d'avant le sweep stale-guard-red du 2026-09-15T09:38Z ; ce sweep a nettoie le label mais n'a pas re-declenche les checks sur mon head. Tell c.566 ★★★★ fondateur : PR non ripe merge (CHANGES_REQUESTED actif), donc geste empty commit attendu pour re-trigger CI. * fix(genai,#16259): amend body v3 -- prev: REPAIR/tooling #15909 (PR merged, not issue) Tell c.566-bis ★★★ fondateur : prev: doit pointer une PR MERGEE de la meme lane, pas une issue + close-keyword. Body c.575 portait 'prev: REPAIR/tooling c.574 (close #15676)' -- la garde prev-not-pr (#10093) rougissait. Fix : body v3 pointe 'prev: REPAIR/tooling #15909' (PR mergée hier du split PR #15813 tranche 1, branche fix/13751-csharp-csp-nomenclature). Body amend genere HORS worktree dans scratchpad c577_pr16259_body_v3.md Tell c.677-L4 ★★. * fix(genai,#16259): amend body v3.1 -- perimeter guard alignement assertions fichier Le perimeter review guard (#11268) interprete les mentions de chiffres ("5 fichiers ICT retires", "7 fichiers", "1169 insertions") comme des assertions de perimetre. Or le perimetre effectif de la PR est 3 fichiers (scripts/__init__.py + scripts/livecoding_video_pipeline.py + scripts/tests/test_livecoding_video_pipeline.py). Reformulation : suppression des assertions chiffrees dans la section Changements, remplacement par une formulation qualitative ("les fichiers ICT de la serie IIT ont ete retires du perimetre de cette PR"). Verification first-hand : python scripts/check_pr_perimeter.py 16259 --scan-thread -> VERDICT: OK. Body amend genere HORS worktree dans scratchpad c577_pr16259_body_v3.md Tell c.677-L4 ★★. * fix(genai,#16259): anonymize personal identifier (CHANGES_REQUESTED c.578 supersede) ai-01 review msg-20260916T160224-nua7rg supersede son ancien APPROVE au head exact c9725e0 : le diff reinjectait l'identifiant personnel explicite (retire du depot public en amont) dans la docstring pipeline, la docstring du test, et le body. Demande explicite : "Remplacer par prose generique ('pipeline livecoding', 'voix tierce', 'aucun clonage'), sans logique adjacente, sans recreer le script prive retire. Relancer les 14 tests exacts puis demander re-review exact-head." Changements (sur feature/15604-livecoding-video-v0, c9725e0) : 1. scripts/livecoding_video_pipeline.py:1 - 'hommage SwitchAngel' -> 'homage a une voix tierce' 2. scripts/livecoding_video_pipeline.py:32 - 'voie du retrait consenti SwitchAngel tenue' -> 'voie du retrait consenti d'une voix tierce tenue' 3. scripts/tests/test_livecoding_video_pipeline.py docstring test_no_voice_cloning_legal_proof : reformulee pour declarer "aucun identifiant personnel ne doit apparaitre dans le code ni dans la docstring" (CHANGES_REQUESTED c.578 supersede c.647 INLINE substance). 4. Nouvelle assertion : 'switchangel' not in src.lower() verifie la source du pipeline (pas seulement la sortie) -- garde anti-regression sur la surface source. Resultats : - grep 'switchangel' scripts/livecoding_video_pipeline.py = 0 hit - pytest scripts/tests/test_livecoding_video_pipeline.py = 14/14 PASSED (incl. test_no_voice_cloning_legal_proof) - Aucun ajout logique adjacente, aucun script prive reintroduit - Diff +15/-4 sur 2 fichiers (scope strict PRIVACY) Conformite tells c.578-c.598 : - Tell c.994 x23e sustained REPAIR P0-my-own-red - Tell c.566 fondateur strict : validation locale 14/14 avant push - Tell c.566-bis fondateur : body PREMIERE ligne = Grain: - Tell c.564 fondateur : pas auto-lift du CHANGES_REQUESTED ai-01, reponse ecrite LIFT bracket - Tell c.1356 x45e sustained preflight first-hand : diagnostic etat PR avant push - Tell c.1502 strict x62e counter : 0 merge / 0 close d'autrui - Tell c.1180 strict : body genere HORS worktree dans scratchpad - Tell c.14195 strict : worktree D:/Dev/CoursIA-16225 tracke pour retrait post-merge - PR #16453 (fix/16259-anonymize, branche separee) sera fermee comme doublon une fois ce commit pousse (memes modifs, voie plus directe sur la branche source). Suite : re-review exact-head ai-01, levee CHANGES_REQUESTED, ripe merge. 🤖 Generated with [Claude Code](https://claude.com/claude/code) * fix(genai,#16259): token construit runtime + message generique (CHANGES_REQUESTED c.634 supersede) ai-01 review 5242007499 (c.634 2026-09-17T22:16:42Z sur head 312d0c6) pointait 2 surfaces residuelles portant l'identifiant dans le test file : - ligne 162 "switchangel_voice" en literal - ligne 179 "switchangel" + ligne 180 message d'erreur Forme demandee par ai-01 : construire le token a l'execution par concatenation de fragments (ex. _tok = "switchan" + "gel") et generiquer le message. Application Tell c.651 fondateur REBASE additif cellule-par-cellule : 1. Module-level _FORBIDDEN_PERSONAL = "switchan" + "gel" (construit runtime) 2. _FORBIDDEN_VOICE_TOKEN = _FORBIDDEN_PERSONAL + "_voice" 3. forbidden list : "switchangel_voice" -> _FORBIDDEN_VOICE_TOKEN 4. assertion 1 : "switchangel" -> _FORBIDDEN_PERSONAL + message generique 5. assertion 2 : "switchangel" -> _FORBIDDEN_PERSONAL Critere de sortie ai-01 verifie first-hand (Tell c.G.2 metriques honnetes) : - grep -ic switchangel scripts/livecoding_video_pipeline.py = 0 - grep -ic switchangel scripts/tests/test_livecoding_video_pipeline.py = 0 - 14/14 tests PASSED (0.37s) Tells respectes : - Tell c.566 fondateur strict : 14/14 verts avant push - Tell c.651 fondateur REBASE additif cellule-par-cellule strict - Tell c.1356 preflight first-hand - Tell c.18-L3 strict fondateur (lecture last-comment AVANT edit) - Tell c.14216 ★★★★ verif LIFT 1-phrase strict (commentaire PR avec preuve) Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: REPAIR/genai — lane myia-po-2023:CoursIA-2 — prev: REPAIR/tooling #15909
fix(genai,#16259): anonymize personal identifier (CHANGES_REQUESTED c.578)
Intent
PR #16259 LIVREE c.573 (commit
10d0637c6) avait amende body v3.1 (commitc9725e037) au head exactc9725e0372. La revue ai-01 (msg-20260916T160224-nua7rg) a emis CHANGES_REQUESTED au motif que la diff reinjectait l'identifiant personnel explicite (retire du depot public en amont) dans :scripts/livecoding_video_pipeline.py:1--hommage SwitchAngel(reintroduit)scripts/livecoding_video_pipeline.py:32--retrait consenti SwitchAngel tenue(reintroduit)test_no_voice_cloning_legal_proof-- mention textuelle du nom (autorisee par erreur c.647 INLINE substance, mais ai-01 supersede cette lecture par CHANGES_REQUESTED c.578).ai-01 instruction explicite : « Remplacer par prose générique (« pipeline livecoding », « voix tierce », « aucun clonage »), sans logique adjacente, sans recréer le script privé retiré. Relancer les 14 tests exacts puis demander re-review exact-head. »
Cause racine
La docstring d'origine (c.573 livree) contenait les mentions au titre de « mention de retrait consenti » (c.647 INLINE substance autorisee). ai-01 contredit cette lecture en c.578 : l'identifiant reel ne doit jamais apparaitre dans la docstring, meme au titre d'un retrait. La distinction « mention textuelle autorisee » vs « identifiant a retirer » n'a pas ete tranchee en ma faveur par le coordinateur.
Changements (commit
aca715b3b3)scripts/livecoding_video_pipeline.py:1(issue #15604, hommage SwitchAngel)(issue #15604, homage a une voix tierce)scripts/livecoding_video_pipeline.py:32voie du retrait consenti SwitchAngel tenuevoie du retrait consenti d'une voix tierce tenuescripts/tests/test_livecoding_video_pipeline.py:150-156scripts/tests/test_livecoding_video_pipeline.py:175-183(nouveau)forbidden+ result.lower()"switchangel" not in src.lower()(sur la source du pipeline, pas seulement la sortie)Branche diff apres REPAIR (seul ce commit au-dessus de c.573 origin) :
(+9 par rapport au c.573 origin : 2 docs anonymisees + 6 docstring test reformulee + 9 nouvelle assertion, -2 mention identifiant retirees.)
Resultats
14/14 verts (memes tests qu'avant). Le nouveau test
test_no_voice_cloning_legal_proofinclut maintenant l'assertion"switchangel" not in src.lower()qui verifie la source (pas seulement la sortie).Reponses aux nit
CHANGES_REQUESTED myia-ai-01 c.578
hommage SwitchAngel→homage a une voix tierceSwitchAngeldansscripts/livecoding_video_pipeline.pyretrait consenti SwitchAngel tenue→retrait consenti d'une voix tierce tenueassert "switchangel" not in src.lower()pytest -v14/14 PASSEDConformite tells c.578
aca715b3b3a du code reel + tests).aca715b3b3== distant apres push.c1237_pr16259_body_anonymize.md.prev:pointe une PR MERGEE de la meme lane (fix(search,#13751): split PR #15813 tranche 1 — standardize Search/Applications/CSP/ App-{6,8,16,19} Csharp -> CSharp (4 renames + 4 yaml twins + 3 navlinks + 3 yaml attestations = 14 fichiers) #15909), pas une issue, pas de close-keyword.gh pr view 16259 --json state,reviewDecision,headRefName,latestReviews.04-5ni aux PRs d'autres lanes.Suite
aca715b3b3».feature/15604-livecoding-video-v0: la branche d'origine reste sur c.573 (avec identifiants). La branchefix/16259-anonymize(celle-ci) est la branche de fix ; c'est elle que ai-01 doit reviewer pour lever le CHANGES_REQUESTED.aca715b3b3: ai-01 + verification que les 14 tests passent (cf commande ci-dessus).🤖 Generated with Claude Code