Skip to content

ci(ict,#15471): planchers de collecte 746->1046 et 42->670 + garde bidirectionnelle - #15485

Merged
myia-ai-01 merged 1 commit into
mainfrom
ci/15471-ict-collection-floor
Sep 10, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
ci/15471-ict-collection-floor

Conversation

@myia-po-2023

@myia-po-2023 myia-po-2023 commented Sep 10, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: MED/guard — lane myia-po-2023:CoursIA — prev: LIGHT/docs #15484

Contexte

L'issue #15471 (réévaluée CONFIRMED) : matrix.test-floor de la suite tests/ (55) était gelé à 746
(mesuré sur origin/main@dbfbf73ab le 2026-08-05) alors que la collection courante est bien plus haute.
La mesure de cette PR révèle que la suite ict/tests/ (42 package) subissait le même drift : floor 42,
collection réelle 670. Dans les deux cas le garde ne voit rien : il n'échoue que sous le plancher.

Mesure (acceptance : SHA exact + sortie complète, avant modification)

Base de mesure : origin/main@5302d974aae0054bfc677e2e99b685d4f1cc50f7 (tête de PR — le diff ne touche
que le workflow, la collection est inchangée par construction). Environnement reproduisant la CI :
venv Python 3.9.23 + pip install -e MyIA.AI.Notebooks/IIT/ICT-Series (pyphi 1.2.0, numpy 1.26.4, pytest).

Deux collectes consécutives par suite, sorties canoniques N tests collected :

tests/       (cwd ICT-Series,  `pytest tests --co -q`) : 1046 tests collected  (x2, identique)
ict/tests/   (cwd ict/tests/,  `pytest .     --co -q`) :  670 tests collected  (x2, identique)

Confirmation indépendante par la CI, run 34307798875 (main@9433e9a09d, 2026-09-09), lignes du floor-guard :

Collected: 670 tests (floor: 42) for ict/tests/ (42 package)
Collected: 1046 tests (floor: 746) for tests/ (55)

L'écart avec le « 1050 » de la réévaluation (mesuré @8d15698734b, plus ancien) vient de la tête mesurée :
le compte déterministe de la tête de PR est 1046, CI à l'appui.

Livrable

  1. test-floor : 746 → 1046 (tests/) et 42 → 670 (ict/tests/) — chacun avec sa mesure
    séparée, comme l'exige le scope de l'issue avant de toucher la seconde suite.
  2. Garde bidirectionnelle : le drift ascendant était silencieux (746→1046 et 42→670 passés inaperçus
    parce que collected > floor passe vert). Le floor-guard émet désormais un ::warning non bloquant
    quand collected > floor, nommant la valeur de rattrapage — plus jamais de drift muet, dans aucun sens.
  3. Commentaires de provenance actualisés (header + matrice + garde) : les comptes d'items (1046/670)
    restent explicitement distingués des comptes de strates des labels (55/42) ; l'affirmation obsolète
    « strates == collection » pour ict/tests/ est corrigée (le parametrize y est devenu massif aussi).
    Les labels des suites ne changent pas (hors scope de l'issue).

Contrôle négatif (acceptance)

Logique exacte du garde (pipeline grep -oE '[0-9]+ tests? collected' + comparaison entière), jouée
localement avec les floors mutés, puis mutation retirée :

floor=1047, collected=1046  -> FAIL (coverage regression)   [exit 1]
floor=1046, collected=1046  -> OK   (floor exact)           [exit 0]
floor=671,  collected=670   -> FAIL (coverage regression)   [exit 1]
floor=670,  collected=670   -> OK   (floor exact)           [exit 0]

Validation

  • YAML parsé : matrice lue (tests/ (55) → 1046, ict/tests/ (42 package) → 670).
  • scripts/ci/check_self_hosted_runner_policy.py : OK (151 workflows, 193 jobs — le runs-on n'a pas bougé).
  • Le workflow se déclenche sur cette PR (paths: inclut .github/workflows/ict-tests.yml) : la CI
    exécutera les deux suites + le garde sur la tête — attendu Floor OK (1046 >= 1046) / (670 >= 670).
  • La suite ict/tests/ elle-même n'est pas modifiée (aucun test déplacé/retiré — seuls workflow et floors).

Closes #15471

🤖 Generated with Claude Code

…directionnelle

Mesure firsthand sur origin/main@5302d974aa (venv Python 3.9, pyphi 1.2.0,
numpy 1.26.4), deux collectes consecutives identiques par suite :
tests/ = 1046, ict/tests/ = 670. Confirme par la CI au run 34307798875
(main@9433e9a09d : Collected 1046 / 670). Controle negatif : floor = N+1
fait rougir le garde (1047 et 671 testes), mutation retiree.

Le drift ascendant etait silencieux (collected > floor passait vert) : le
floor-guard emet desormais un ::warning quand la collecte depasse le floor,
et les commentaires de provenance distinguent strates et items.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 label Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-10) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] Verdict: APPROVE (CI gate hardening).

Verifié, pas juste lu — j'ai remonté les logs du run CI 34307798875 (main@9433e9a09d, 2026-09-09) cité dans le body : Collected: 1046 tests (floor: 746) pour tests/ (55) et Collected: 670 tests (floor: 42) pour ict/tests/ (42 package). Les nouveaux floors 1046/670 correspondent exactement aux comptes réels de la CI — la méthode (mesure firsthand + confirmation CI indépendante) est solide et traçable.

Points positifs :

  • Le ratchet bidirectionnel (#15471) ferme le trou réel : le drift ascendant 746→1046 / 42→670 est passé invisible parce que le guard ne regardait que vers le bas. Le ::warning sur collected > floor est correctement non-bloquant (un ajout de tests n'est pas un finding) tout en rendant le stale-floor visible à chaque run.
  • Messages d'annotation $ICT_TEST_FLOOR explicites dans les deux sens — actionnable directement.
  • Header mis à jour de façon cohérente (provenance, erreur d'inception du 34, instruction de maintenance).

Note mineure (non bloquante) : le titre de l'issue #15471 annonce « 1050 items courants » alors que la mesure CI donne 1046 — la PR suit la mesure réelle, ce qui est le bon choix ; l'écart vient du titre de l'issue, pas du fix.

CI de la PR : jobs non-ICT verts, suites ICT en cours (floors ne peuvent que passer : 1046/670 mesurés sur main inchangé côté tests).

@github-actions github-actions Bot added variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) and removed variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 labels Sep 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2023:CoursIA a deja consomme son budget LIGHT du jour (#15279 (merge a 2026-09-10T01:32:17Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) label Sep 10, 2026
@myia-ai-01
myia-ai-01 merged commit 952417e into main Sep 10, 2026
24 of 25 checks passed
@jsboige
jsboige deleted the ci/15471-ict-collection-floor branch October 16, 2026 12:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][ICT] Relever le plancher de collecte tests/ gelé à 746 pour 1050 items courants

4 participants