Skip to content

[EPIC] Support multiplateforme Linux/macOS — scripts .sh compagnons, notebooks et docs #10643

Description

@jsboige

État mesuré au 2026-10-05 (lane myia-po-2024:CoursIA, confrontation de la section « Ce qui reste » du 2026-09-02 contre le workflow livré). Les items 1 et 2 de cette section sont livrés ; elle datait de sa rédaction.

  • Item 1 (« Élargir bash-syntax-advisory.yml au-delà de scripts/ ») — livré le 2026-09-04. L'étape bash -n du workflow scanne git ls-files '*.sh' à l'échelle du dépôt (exclusions nommées : Vibe-Coding/, docs/archive/, _archive/), et son en-tête documente l'élargissement daté : « Scope repo-wide since [EPIC] Support multiplateforme Linux/macOS — scripts .sh compagnons, notebooks et docs #10643 (2026-09-04) : every tracked .sh, not just scripts/ — 46 of the 56 companions lived outside scripts/ ». Vérifié firsthand sur le workflow en tête de main.
  • Item 2 (« Exécuter plutôt que parser les compagnons P0 qui portent un mode sec ») — livré le 2026-10-05 par fix(ci,#10643): executer les compagnons a mode sec (1 en dur -> 5 decouverts) #19210 (ouverte à l'instant, CI verte sur ses jambes) : le garde exécute désormais tout compagnon déclarant un mode sec via une ligne d'en-tête # CI-CHECK: — 5 déclarants câblés à la livraison, mesurés en CI (companions declaring a dry mode: 5, executed: 5, non-zero: 2 rapportés en ::notice::, jamais fatals).
  • Ce qui reste : item 3 seul — les trois derniers critères d'acceptance (parcours utilisateur macOS/Linux de bout en bout, README croisés, cellules Setup bi-OS) n'ont toujours pas d'organe. Noter que la session cloud d'agnosticisme du mainteneur y livre activement (dernier pont : Fix(Z3-API): twins C# sous Linux et macOS Apple Silicon, libz3 chargée par Z3NativeLoader.cs (hors flotte) #18955 MERGED, Z3-API sous Linux/macOS Apple Silicon).

Portée du non-vérifié : les critères d'acceptance eux-mêmes n'ont pas été re-constatés ici — seule la section « Ce qui reste » a été confrontée aux artefacts livrés.

État mesuré au 2026-10-04 (lane myia-po-2024:CoursIA-2, organe epic_body_staleness.py, fenêtre élargie 2026-09-25 → 2026-10-04, tri à la main — signal 1 unrecorded_merged). Complète l'en-tête du 2026-10-03 ci-dessous : deux ponts frais (03-04/10) et la strate 25-27/09 (parcours d'installation sur clone vierge) échappaient à sa fenêtre 29/09 → 03/10.

Livraisons mergées non inscrites par le corps ci-dessous :

Portée du non-vérifié : l'organe n'examine que les 800 PRs mergées les plus récentes (fenêtre ci-dessus) ; la substance de chaque PR est lue depuis son titre et son body de merge, pas re-auditée fichier par fichier. Le tri à la main écarte les citations incidentelles sans lien de livraison.

État mesuré au 2026-10-03 (lane myia-po-2027:CoursIA, organe epic_body_staleness.py, fenêtre 2026-09-29 → 2026-10-03, tri à la main — signal 1 unrecorded_merged).

Livraisons mergées non inscrites par le corps ci-dessous (la couverture multiplateforme s'est étendue à Tweety/IKVM, GenAI et GameTheory depuis le 29/09) :

Travail en cours au 2026-10-03 : la PR #18955 est OUVERTE et couvre cette issue — lire le plateau (gh pr view 18955) avant toute reprise.

Portée du non-vérifié : les comptes par famille du corps historique (scripts .sh, notebooks restants par série) n'ont pas été recomptés ici ; seules les livraisons de la fenêtre 29/09 → 03/10 sont inscrites.

État au 2026-09-02 — le chantier est livré, et le garde censé le protéger ne regarde pas les fichiers qu'il a créés

Passe de curation (défaut #13906). Les cinq filles de cet EPIC sont fermées, 22 PRs sont mergées, l'inventaire du corps est entièrement périmé — et il reste un défaut réel, qui n'est pas dans la liste des orphelins.

Les cinq filles sont fermées, la sixième aussi

Fille État
#10645, #10646, #10647 fermées le 2026-08-14
#10644 fermée le 2026-08-16
#10648 fermée le 2026-08-24
#13270 (résidu) fermée le 2026-08-28

Aucune fille ouverte. gh pr list --state all --search "10643 in:body" → 22 mergées, 1 ouverte (#14009, un enrichissement de notebook qui cite l'EPIC sans être du multiplateforme).

L'inventaire du corps est périmé, dans le bon sens

Mesure du corps (12/08) Rejeu 2026-09-02
64 .ps1 / 54 .sh suivis 64 / 56
17 paires → ~47 orphelins 19 paires → 45 orphelins bruts
scripts/ racine : 12 .ps1 vs 3 .sh 0 .ps1, 0 .sh — tout est descendu en sous-répertoires
scripts/environment/ : 5 .ps1 (P0) 5 .ps1 / 5 .sh — apparié à 100 %
Launchers ML-Training-Pipeline : 3 (P1) 3 / 3
scripts/lean/ : 1 (P1) 1 / 1

Sur les 45 orphelins bruts, 39 sont hors scope par le corps lui-même (16 Vibe-Coding, 19 docs/archive/phase-12a, 4 _archive/). Six orphelins actifs restent, et aucun n'est un manque :

Fichier Pourquoi il n'a pas de .sh
GameTheory/scripts/setup_lean4_kernel.ps1 apparié par split-naming : setup_lean4_native.sh
GameTheory/scripts/setup_wsl_kernel.ps1 idem : setup_wsl_lean4.sh + setup_wsl_openspiel.sh
SymbolicAI/SmartContracts/scripts/setup_wsl_kernel.ps1 idem : setup_wsl_smartcontracts.sh
docker-configurations/scripts/setup-win-acme-renewal.ps1 win-acme — Windows par nature
docker-configurations/services/tts-multi/setup-iis-reverse-proxy.ps1 IIS — Windows par nature
scripts/genai-stack/Configure-IISAuthentication.ps1 IIS — Windows par nature

Un commentaire de synthèse du 2026-09-01 en compte cinq et oublie setup-iis-reverse-proxy.ps1. Six, pas cinq — et l'oubli ne change pas le verdict : aucun de ces .ps1 n'appelle un compagnon bash.

Le défaut réel : le garde CI ne couvre que 18 % des .sh

Le critère d'acceptance 4 dit :

« CI : un job advisory (non-bloquant initialement) exécute les .sh compagnons P0 sur ubuntu-latest pour empêcher le pourrissement du compagnon bash. »

bash-syntax-advisory.yml existe et tourne sur ubuntu-latest. Mais il fait deux choses de moins que ce que le critère demande :

  1. Il ne les exécute pas — il fait bash -n, c'est-à-dire une analyse syntaxique. Un compagnon qui parse parfaitement et appelle un binaire absent, un chemin Windows ou une commande non installée passe au vert.
  2. Il ne regarde que scripts/ — sa boucle est find scripts -name '*.sh'. Sur les 56 .sh suivis du dépôt, 10 sont sous scripts/ ; les 46 autres ne sont jamais lus, et ce sont précisément les compagnons P0/P1 que cet EPIC a créés :
MyIA.AI.Notebooks/GameTheory/scripts/setup_lean4_native.sh
MyIA.AI.Notebooks/GameTheory/scripts/setup_wsl_lean4.sh
MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/scripts/launchers/*.sh
MyIA.AI.Notebooks/SymbolicAI/SmartContracts/scripts/setup*.sh
MyIA.AI.Notebooks/SymbolicAI/Lean/scripts/setup_wsl_python.sh
MyIA.AI.Notebooks/IIT/scripts/setup_pyphi_env.sh
MyIA.AI.Notebooks/Probas/Infer/scripts/setup_environment.sh
...  (46 au total)

Le garde posé pour empêcher le pourrissement des compagnons ne surveille aucun des compagnons livrés. C'est le seul travail restant de cet EPIC, et il est petit : élargir le find au dépôt, puis, dans un second temps, passer de bash -n à une exécution --dry-run là où le script en offre une.

Ce qui reste

  1. Élargir bash-syntax-advisory.yml au-delà de scripts/ — 46 fichiers entrent d'un coup dans le champ du garde. Une ligne de find.
  2. Exécuter plutôt que parser les compagnons P0 qui portent un mode sec.
  3. Les trois derniers critères d'acceptance (parcours utilisateur macOS/Linux de bout en bout, README croisés, cellules Setup bi-OS) n'ont pas d'organe : ils se constatent à la main, ou ils ne se constatent pas. Les cocher demande de dire comment on a regardé.

Le résidu d'orphelins, lui, est clos : les six restants sont Windows par nature ou appariés par split-naming.


Corps d'origine conservé intégralement ci-dessous (2026-08-12). La priorisation P0-P3, la convention de compagnons et le périmètre hors scope restent valides mot pour mot ; seuls les chiffres d'inventaire et l'état des filles avaient dérivé — et le critère 4 est tenu en apparence seulement.

[EPIC] Support multiplateforme Linux/macOS — scripts .sh compagnons, notebooks et docs

state: OPEN | created: 2026-08-12T18:26:58Z | updated: 2026-09-01T08:59:47Z
labels: ['enhancement', 'EPIC']


Contexte

Le dépôt a été développé sous Windows (PowerShell + WSL). Ce n'est pas blocant pour les utilisateurs Linux/macOS — les notebooks Python/.NET tournent partout, Docker isole les stacks GenAI — mais les scripts d'environnement, les launchers et certaines cellules de notebooks sont Windows-only (PowerShell pur, winget/choco, wsl.exe, chemins C:\, ExecutionPolicy). Un étudiant ou contributeur sur Mac/Linux est bloqué dès l'installation.

Demandé par le user (2026-08-12) : « support d'environnements Linux/Mac dans les différentes parties du dépôt… créer ou MAJ de nombreux scripts, mettre du .sh en face du .ps1, et MAJ certains Notebooks. Gros travail → Epic avec sous-issues. »

Travaux antérieurs (grounding, pour ne pas re-litiger)

  1. Patron pédagogique existant — MyIA.AI.Notebooks/GenAI/Vibe-Coding/Roo-Code/02-orchestration-taches/scripts-multiplateforme/ démontre déjà le couple exemple-script.ps1 + exemple-script.sh + docs (README.md, installation.md, documentation-scripts.md). C'est la convention de référence à étendre au reste du dépôt.
  2. Stratégie alternative explorée et écartée — mi-2026 (roo-extensions) : portabilité via PowerShell Core 7+ cross-platform ($IsWindows, Get-PlatformInfo). Non retenue ici au profit de .sh natifs : pas de prérequis pwsh sur Mac/Linux, bash idiomatique, correspond au choix user. La détection $IsWindows reste utile pour les rares scripts qui doivent adapter un comportement à l'OS.

Inventaire de la dette (mesuré firsthand, 2026-08-12, origin/main)

Scripts

  • 64 fichiers .ps1 suivis (hors .lake/, node_modules/)
  • 54 fichiers .sh suivis
  • 17 .ps1 ont un .sh sibling → ~47 scripts Windows-only orphelins
  • scripts/ (tooling du dépôt) : 12 .ps1 vs 3 .sh

Hotspots .ps1 (hors archive)

Répertoire # Priorité
scripts/environment/ 5 P0 — setup de base
QuantConnect/ML-Training-Pipeline/scripts/launchers/ 3 P1
scripts/genai-stack/ 2 P1
GameTheory/scripts/ 2 P1
scripts/lean/ 1 P1
docker-configurations/scripts/ 1 P2
Vibe-Coding/Roo-Code/Scripts/ 6 + 4 utils P3 — pédagogique, déjà couvert par le patron
docs/archive/.../phase-12a/scripts/ 19 P3 — archive, différé

Notebooks avec contenu Windows-only (10)

Notebook Signaux
SymbolicAI/Lean/Lean-1-Setup.ipynb .ps1, ExecutionPolicy, powershell, wsl.exe×8
GameTheory/GameTheory-1-Setup.ipynb powershell, wsl.exe×5
SymbolicAI/SymbolicLearning/SL-{5,12}-*.ipynb Win pkg mgr

⚠️ Les notebooks Setup (Lean-1, GameTheory-1) sont les points d'entrée — un utilisateur Mac/Linux est bloqué à la première cellule. Priorité maximale.

Stratégie (décision actée)

Approche A — .sh compagnons (choix user) :

  • Pour chaque .ps1 d'infrastructure, créer le .sh équivalent côte-à-côte (même nom base, même comportement).
  • Suivre la convention scripts-multiplateforme/ (README croisé, installation.md).
  • Quand un script PowerShell est trop complexe pour un équivalent bash direct, factoriser dans un wrapper Python (le dépôt a déjà scripts/notebook_tools/ comme convention Python cross-OS) appelé par deux launchers minces .ps1/.sh.

Notebooks : ajouter une branche OS dans la cellule (# macOS/Linux : à côté de # Windows :) plutôt qu'un notebook séparé — préserver l'unicité pédagogique. Les stubs d'exercice (C.1) et les outputs (C.2) restent intacts.

Découpage en sous-issues

Issues filles, par hotspot (voir les commentaires ci-dessous pour le détail scope/acceptance de chacune) :

  1. scripts/environment/ + scripts/ core — P0 (débloque tout dev Mac/Linux)
  2. Notebooks Setup (Lean-1, GameTheory-1) — P0 (point d'entrée étudiant)
  3. Notebooks applicatifs Win-only (8 restants : Sudoku, SymbolicLearning, SMT, Search, GenAI)
  4. Launchers (ML-Training-Pipeline, GameTheory, genai-stack, docker-configurations)
  5. Docs/READMEs (instructions d'install Windows-only → ajout équivalent Mac/Linux)

Acceptance (globale)

  • Un utilisateur sur macOS/Linux peut : cloner, installer l'environnement, exécuter chaque famille de notebooks, sans jamais adapter un script à la main.
  • Chaque .ps1 d'infrastructure P0/P1 a un .sh compagnon documenté (README croisé).
  • Les notebooks Setup proposent les deux chemins OS dans leurs cellules.
  • CI : un job advisory (non-bloquant initialement) exécute les .sh compagnons P0 sur ubuntu-latest pour empêcher la pourrissement du compagnon bash.
  • Archive et scripts pédagogiques Vibe-Code explicitement hors scope (sauf dépendance avérée d'une famille active).

Hors scope

  • .lake/, node_modules/, libs vendored (code tiers non modifiable).
  • docs/archive/ (sauf si une famille active en dépend — à juger au cas par cas en sous-issue).
  • Réécriture des notebooks .NET (ils tournent cross-OS via .NET Interactive ; seules les cellules shell Windows-only sont concernées).

References

Activity

  1. added
    enhancementNew feature or request
    EPICEpic tracking issue with sub-issues
    on Aug 12, 2026
  2. jsboige commented on Aug 12, 2026

    @jsboige
    OwnerAuthor

    Sous-issues créées

    # Scope Priorité
    #10644 scripts/environment/ + scripts/ core — .sh compagnons P0
    #10645 Notebooks Setup (Lean-1, GameTheory-1) P0
    #10646 Notebooks applicatifs Win-only (Sudoku, SymbolicLearning, SMT, Search, GenAI) P1
    #10647 Launchers (ML-Training-Pipeline, GenAI stack) P1
    #10648 Docs & READMEs (instructions d'install) P2

    Ordre suggéré : #10644 + #10645 en premier (débloquent l'entrée d'un user Mac/Linux), puis #10646-10648 en parallèle.

    Note de scoping : les scripts intrinsèquement Windows (Configure-IISAuthentication.ps1 = IIS, setup-win-acme-renewal.ps1 = ACME Windows) sont explicitement exclus du périmètre .sh — documentés dans un README croisé plutôt qu'un compagnon forcé. Les .sh déjà présents (install-ffmpeg, z3-build-deploy, GameTheory/WSL) ne sont pas re-touchés.

  3. added 9 commits that reference this issue on Aug 12, 2026
  4. jsboige commented on Aug 17, 2026

    @jsboige
    OwnerAuthor

    [PROPOSAL] c.1301+204 — #10643 EPIC acceptance vérification substance absorbée (myia-po-2025:CoursIA-2)

    Synthèse

    5/5 critères acceptance substance vérifiée firsthand sur origin/main. EPIC substance complètement absorbée ; seul résidu = #10648 OPEN avec 5 PRs mergées (clôture mécanique ai-01).

    AC Status Preuve
    #1 Utilisateur Mac/Linux clone→install→exécute sans adapter ✅ PARTIEL 4/5 sous-issues closes (#10644/#10645/#10646/#10647) ; #10648 OPEN substance mergée
    #2 Chaque .ps1 P0/P1 a .sh documenté ✅ MET scripts/environment/ = 5/5 .ps1 → .sh (couverture 100%), Manage-ApiKeys.sh + setup_shared_mathlib.sh P1 ; Configure-IISAuthentication.ps1 hors-scope IIS documenté
    #3 Notebooks Setup exposent 2 OS ✅ MET PR #10692 = Lean-1-Setup.ipynb + GameTheory-1-Setup.ipynb ajoutent cellule « Plateformes supportées » (grep -lE "macOS|Linux|ubuntu|brew" match)
    #4 CI advisory ubuntu-latest .sh ✅ MET .github/workflows/bash-syntax-advisory.yml (jobs syntax-check + shebang-dry-run-advisory, paths-scoped scripts/**, continue-on-error: true non-bloquant)
    #5 Archive/Vibe-Code Pédagogique hors scope ✅ MET décision actée dans body EPIC (docs/archive/.../phase-12a/scripts/ + Vibe-Coding/Roo-Code/Scripts/)

    Substance livrée upstream (par sous-issue)

    Vérifications firsthand supplémentaires (c.1301+204)

    • scripts/environment/ : find ... -name "*.ps1" = 5 fichiers, find ... -name "*.sh" = 5 fichiers (couverture 100%).
    • scripts/genai-stack/ : Manage-ApiKeys.sh existe, Configure-IISAuthentication.ps1 hors-scope IIS (documenté).
    • scripts/lean/ : setup_shared_mathlib.sh existe.
    • Setup notebooks : grep -lE "macOS|Linux|ubuntu|apt-get|brew" = 2/2 hits.
    • CI workflow : 2 jobs, runs-on: ubuntu-latest, paths-scoped scripts/**, dont 1 continue-on-error: true (advisory).
    • Convention référence : MyIA.AI.Notebooks/GenAI/Vibe-Coding/Roo-Code/02-orchestration-taches/scripts-multiplateforme/ toujours présent.

    Recommandation

    ai-01 :

    1. Close [EPIC] Support multiplateforme Linux/macOS — scripts .sh compagnons, notebooks et docs #10643 EPIC avec référence aux 5 sous-issues closes + 5 PRs mergées sur Support Linux/macOS — Docs & READMEs (instructions d'install Windows-only) #10648 + workflow CI bash-syntax-advisory.yml. La classe de défaut « user Mac/Linux bloqué à l'install » (motiv initial) est structurellement fermée.
    2. Close Support Linux/macOS — Docs & READMEs (instructions d'install Windows-only) #10648 séparément (5 PRs mergées, substance close) — ou laisser ouvert avec un commentaire G.9 justifiant le non-close.

    La substance technique est entièrement absorbée. Le résidu est administratif.

    Notes de méthode

    Refs : issue body #10643 · 5 sous-issues (#10644-#10648) · 5 PRs mergées sur #10648 · scripts/environment/*.sh · PR #10692 · .github/workflows/bash-syntax-advisory.yml · rapport scratchpad c1301_204_verification_10643.md.

    — lane myia-po-2025:CoursIA-2 · 2026-08-17T17:30Z

  5. myia-ai-01 commented on Aug 22, 2026

    @myia-ai-01
    Collaborator

    Confrontation body ↔ réel : cette EPIC est livrée à 4/5, son body ne le dit pas

    Tirée par pick_idle_grain.py comme umbrella libre (9 j d'âge, 4 j d'inactivité). Le
    tirage affiche l'avertissement « confronter le body au réel AVANT de dispatcher » ; je
    l'ai fait, et l'écart est net.

    Les filles

    Fille État Sujet
    #10644 CLOSED scripts d'environnement + tooling scripts/
    #10645 CLOSED notebooks Setup Lean-1 / GameTheory-1 — le P0
    #10646 CLOSED notebooks applicatifs Win-only
    #10647 CLOSED launchers ML-Training-Pipeline + GenAI stack
    #10648 OPEN Docs & READMEs

    16 PR mergées portent ce chantier entre le 2026-08-12 et le 2026-08-14 (#10649,
    #10655, #10657, #10658, #10664, #10665, #10670, #10673, #10692, #10708, #10715, #10773,
    #10797, #10807, #10844, #10847). La seule fille restante en porte elle-même 5
    (#10664, #10665, #10692, #10773, #10847).

    Ce que le body annonce toujours

    Le body ouvre sur « ~57 scripts Windows-only orphelins », « 12 .ps1 vs 3 .sh » dans
    scripts/, et pose les notebooks Setup en « priorité maximale, un utilisateur Mac/Linux
    est bloqué à la première cellule ». Ces trois constats étaient exacts le 2026-08-12.
    Ils ne sont plus l'état du dépôt : le P0 est fermé (#10645), et #10844 a livré jusqu'au
    chmod +x sur 8 .sh avec un organe CI.

    Aucun chiffre du body n'a été remesuré depuis. C'est le mécanisme de délaissement
    ordinaire : le body est daté de sa rédaction, pas de sa lecture — et une lane qui tire
    cette EPIC en croyant le body va re-livrer un travail déjà sur main.

    Ce que je ne fais pas

    Je ne ferme pas cette EPIC. #10648 est ouverte, et je n'ai pas vérifié firsthand que
    ses critères d'acceptance sont couverts par ses 5 PR — le compter comme fait sur la
    seule foi du nombre de PR serait exactement le raccourci que je reproche au body. La
    vérification est un grain en soi, pour la lane qui la prendra.

    Je ne me l'attribue pas non plus. Je l'ai tirée en cherchant un grain de contenu pour
    ma propre lane ; ce que j'y ai trouvé est du docs, qui ne tient pas le plancher
    G-VAR-1. Je laisse donc l'EPIC libre de claim et je consigne seulement l'écart, pour que
    le prochain tirage parte du réel.

    Pour la lane qui la prendra

    Le grain utile n'est plus « porter le multiplateforme » — c'est remesurer. Les trois
    chiffres du body sont reproductibles en une commande chacun :

    git ls-files '*.ps1' | grep -vE '\.lake/|node_modules/' | wc -l
    git ls-files '*.sh'  | grep -vE '\.lake/|node_modules/' | wc -l
    # siblings : pour chaque .ps1, tester l'existence du .sh de même base

    Remettre le body à jour avec la mesure du jour, confronter l'acceptance de #10648 à ses
    5 PR, fermer ce qui est fait. Un concept, une mesure, une PR.

  6. jsboige commented on Aug 25, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: MyIA.AI.Notebooks/IIT/scripts/, MyIA.AI.Notebooks/Probas/Infer/scripts/, MyIA.AI.Notebooks/cross-series/matching-cv/scripts/* -- 2026-08-25T17:10Z

    Tranche reconciliation xplat residuelle (umbrella, pas claim de l'EPIC entier) : 3 compagnons .sh des orphelins reels restants (setup_pyphi_env.sh, setup_environment.sh, update_venv.sh) + fix setup_pyphi_env.ps1 casse (CondaToSNonInteractiveError, diagnostique firsthand c.507 : voie conda-forge). Les 5 filles sont CLOSED ; GameTheory/SmartContracts couverts semantiquement (split naming WSL/natif).

  7. 26 remaining items

  8. jsboige commented on Sep 29, 2026

    @jsboige
    OwnerAuthor

    [RELEASED] lane myia-po-2024:CoursIA

    Verrou résiduel de l'EPIC : mon dernier marqueur du 2026-09-04T08:11:21Z était un [DELIVERED] sans clause paths: (tranche 1 livrée par PR #14575, mergée) — l'organe le lit donc encore comme my_active_claim: true et le picker sert l'EPIC avec « déjà claim par cette lane ». Aucun travail de la lane en cours sur cet EPIC : je libère, les sous-grains restent piocables librement par toutes les lanes.

    État mesuré à l'instant (organe check_lane_claim.py, 2026-09-29) : blocking_lanes: [], deux claims périmés d'autres lanes contournés (CoursIA-2, po-2025), la suite multiplateforme est portée par la session cloud du mainteneur (PR #18444, hors flotte) et ses prédécesseurs mergés.

  9. jsboige commented on Oct 5, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- #10643 item 2 : le garde execute les compagnons a mode sec, au lieu d'un seul ecrit en dur. Livre par la PR #19210. paths: .github/workflows/bash-syntax-advisory.yml, scripts/environment/setup_environment.sh, scripts/environment/audit_environment.sh, scripts/slides/build_advisory.sh, MyIA.AI.Notebooks/GameTheory/scripts/setup_lean4_native.sh, docker-configurations/notebook-runner/h7_p3_notebook_runner.sh

  10. jsboige commented on Oct 5, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- paths: scripts/ci/check_companion_coverage.py, scripts/tests/test_check_companion_coverage.py, .github/workflows/bios-companion-coverage.yml (item 3 : l'organe manquant pour les criteres 2-3 -- couverture compagnons .ps1/.sh + cellules Setup bi-OS, ratchet advisory)

  11. jsboige commented on Oct 5, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED-AMEND] lane myia-po-2024:CoursIA -- paths: scripts/ci/check_companion_coverage.py, scripts/tests/test_check_companion_coverage.py, .github/workflows/bios-companion-coverage.yml, scripts/ci/check_self_hosted_runner_policy.yml (allowlist du routing #14283), scripts/ci/check_self_hosted_runner_policy.py (entree allowlist documentee tranche 3c)

  12. jsboige commented on Oct 5, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2024:CoursIA -- paths: scripts/ci/check_companion_coverage.py, scripts/tests/test_check_companion_coverage.py, .github/workflows/bios-companion-coverage.yml, scripts/ci/check_self_hosted_runner_policy.py — PR #19223 (Grain: MED/guard). Item 3 : l'organe existe — 20/20 couverts figés, 0 xref manquant, 0 carnet Setup windows-only (FP C# IsOSPlatform calibré avant câblage). Critère 1 (parcours bout en bout) reste la voie de la session cloud.

  13. added 2 commits that reference this issue on Oct 5, 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

    EPICEpic tracking issue with sub-issuesenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions