Repository navigation
Releases: Realms4239/cgo
Release list
v1.3.5
v1.3.5
Correctifs suite au rapport de test relais (VM allumee, NAT, ssh.user=ben).
B1 critique : pose NAT sur VM allumee
- La detection allumee/eteinte ne reposait que sur le chemin yaml (derive possible apres renommage/deplacement). Elle interroge maintenant
list runningvmset accepte chemin OU nom enregistre. - Pose a chaud par
controlvm natpf1quand la VM tourne,modifyvm --natpf1a froid uniquement. - Regle deja presente toleree (chaine VBox
already exists), repli croise chaud/froid sur symptome verrou/session, verificationshowvminfoapres pose. - Erreurs detaillees : precedent l'action (pose/retrait, chaud/froid, regle), cause VBox brute, recette zombie VBoxHeadless quand pertinent.
- Lectures d'etat unifiees sur la meme racine : nic, next, ensure, alignee, snapshot, GUI (liste + bandeau), Diagnostiquer.
B2 : ssh/scp figes en session non interactive
- SSH et SCP limites a 10 min, keep-alive (ServerAlive 10s x6), stdin detache : plus d'orphelin muet.
- Logs de progression :
binaire poussé,cle copiée,paquets installés,outil de vérification copié. - Code 7 si le scp testbed echoue.
Divers
- keysetup : NAT pose avant ET apres la saisie (hote 10.0.2.x tape = forward auto), echec de pose sans perdre la cible.
- scan :
SaveVMX filepath.Clean, plus de doubles backslash. - GUI : verrouillage sur ligne unique si clic sans selection, bandeau recalcule apres chaque action.
kit niclitlist vmspar CfgFile/base en repli si resolution par nom echoue.
Fichiers
cgo-windows-amd64.zip: poste Windows + VBox, contient cgo.exe + mini-GUI + LISEZ-MOI.cgo-linux-amd64.tar.gz: poste/VM Ubuntu, GUI Linux incluse.SHA256SUMS.txt: sommes de controle.
v1.3.4 — console interactive, deploy sans hardcode
v1.3.4 — la console répond, le deploy vise juste
Console Poser-la-clé réellement interactive (bug flash tué à la racine)
- Cause : un exe windowsgui n'a pas de console — l'enfant héritait un stdin mort, isTerminal échouait (ou EOF), exit 2 en moins d'1 s, fenêtre refermée avant lecture.
- Fix : spawn via cmd /c start titre /wait (vraie console conhost, clavier réel, code propagé) ; vérification de la clé après fermeture (code 9 si non posée, miroir Fyne) ; pause Entrée-pour-fermer sur échec en contexte GUI (flash illisible impossible).
Deploy sans hardcode de dossier distant
- Le /home/user/cgo supposé est remplacé par resolveProjectDir : yaml/env explicite, puis HOME réel de l'invité par SSH, puis repli documenté. test -d après mkdir (quota/montage partiels détectés), destination imprimée dans chaque erreur scp. Testbed suit le même resolver.
- Prouvé par un deploy réel vers le banc (fait vers https://meteolink.dev:9090) + tests unitaires des trois branches.
--yes honoré (était parsé puis jeté)
- CGO_YES : promptLine prend le défaut sans lire. OUI + mot de passe restent toujours manuels (frontière sécurité, aide --yes mise à jour).
Vérifier enchaîne verify + shipcheck (Win32 + Fyne)
- L'étape 6 du manuel a son équivalent GUI sans nouveau bouton. Health deploy : retries 14 s, 30 s (un KO à 14 s vert à 30 s mentait). Build() imprime la queue d'erreur au lieu d'une ligne muette. ssh-keygen -C cgo-kit (parité manuel).
Vérifié
go build + vet + suites gui/cgo/kit/vm/api vertes ; keysetup stdin mort 0.4 s exit 2, pause GUI 0.16 s sans blocage ; binaires 1.3.4 probés ; corpus 178 runs embarqué, leaderboard global intact.
Reste à prouver sur banc VBox
Ensure/deploy sur VM allumée + walk Suite vierge-vert (pas de VirtualBox sur le poste de build).
v1.3.3 — Suite honnête + NAT VBox réparé
v1.3.3 — Suite honnête, NAT VirtualBox réparé, LISEZ-MOI + voie CLI
Faux-vert tué (bug rapporté : Suite dit vert, rien n'a changé)
- Cause : le même code vide servait au vrai tout-vert ET aux paliers sans verbe auto (pilote manquant, update locale, cible auto) — Suite mentait. Désormais les verbless répondent par un message honnête + remède, et le vert n'existe que si tout est vraiment vert.
- Le palier Réseau hôte (cible auto) porte maintenant ensure : Suite avance au lieu de rester muette.
NAT VirtualBox réparé (bug critique 1.3.1 : toute la chaîne NAT tombait sur VM allumée)
- Vrai coupable trouvé : resolveName sautait l'entrée portant exactement le nom du fichier — toute VM hors dossier défaut (ex. ubuntu Fanasina, espace) rendait vide, puis registervm échouait sur VM déjà enregistrée (exit 1 enregistrement impossible, conseil Machine Ajouter doublement faux).
- Fix : resolveFromList pur et testé (renommée par CfgFile, repli NOM en cas de dérive — le nom suffit à controlvm/modifyvm/startvm/snapshot) + EnsureRegistered revérifie avant d'accuser. Le chemin controlvm à chaud existait déjà et est conservé.
Suite linéaire : une pression suffit (Win32 + Fyne)
- La chaîne avance seule étape après étape jusqu'au vert ou au premier point manuel (console mot de passe, choix VM, pilote) ; arrêt anti-boucle (échec, répétition, fin) avec message ; tout bouton manuel interrompt proprement.
- Clics fantômes journalisés (id sans verbe) au lieu du silence qui ressemblait à un bouton mort.
Refus honnêtes et rapides sur config vierge (prouvés)
- deploy/ensure/testbed/svc/guest refusent en quelques secondes avec le chemin numéroté 1-7 (exit 2), ZÉRO effet de bord (Ensure validait après avoir écrit le verrou — ordre corrigé).
- ensure : sortie rapide auth directe (port ouvert + 3 refus = exit 5 + keysetup). NIC refusé sur VM allumée. Confirms Oui/Non sur carte réseau et arrêt VM (manuel seul, jamais dans la chaîne).
- run : verrou anti-double-launch + pré-contrôle banc (check, up, re-check, refus exit 4). Config yaml/hosts en écriture insécable (tmp+rename, testé).
LISEZ-MOI réécrit + voie CLI linéaire
- Section ORDRE LINÉAIRE 1-7 (les deux OS), reprise dans chaque refus ; nouvelle section VOIE TERMINAL LINÉAIRE : la session exacte scan, keysetup, ensure, testbed up, deploy, svc start, next — même ordre, mêmes garanties.
- Snapshot VBox : session zombie détectée avec recette PowerShell admin.
Vérifié
go build + vet + suites gui/kit/vm/cgo/api vertes (dont resolve-from-list, atomicité yaml, chaîne Suite, honnêteté CLI) ; binaires release 1.3.3 probés ; leaderboard global 35 groupes / 190 mesures sur 178 runs embarqués.
Reste à prouver sur banc VBox (pas de VirtualBox sur le poste de build)
Ensure/deploy/vm-start sur VM allumée + walk Suite vierge→vert. UIA liste, teardown tty sudo, auto-kill VBoxHeadless : suivis.
v1.3.1 — GUI vrai logiciel
v1.3.1 — la GUI devient un vrai logiciel
GUI Windows : vrai logiciel autonome
- Logo intégré à l'exe (icône + manifeste PerMonitorV2 + version 1.3.1 compilés — plus de fichiers loose requis)
- Élévation unique au lancement : un seul prompt UAC, tout l'arbre hérite (VBox, VMware, réseau, tunnel) — fini les terminaux admin qui clignotent
- Zéro console parasite : DNS/TLS en fond journalisé ; seule la pose de clé garde sa console (mot de passe)
- Bouton Banc de mesure : le testbed n'était accessible que via Suite — désormais direct (check, sans risque)
- Journal horodaté, lignes de démarrage (version + état élevé), transitions SSH/dashboard journalisées, boutons d'action grisés pendant l'exécution
Suite : tout ce qu'il faut, rien de plus
- Bug critique corrigé : sur config vierge, Suite disait tout est vert sans rien avoir fait (paliers sans verbe) — désormais scan + verrouillage auto (1 VM), message actionnable (N VMs), et jamais de faux vert ni de silence pour les paliers sans action auto (pilote manquant, update locale)
- Paliers DNS/TLS rejoués en fond (plus de consoles), palier banc rejoue up (plus de boucle check), Diagnostiquer sort 3 sur constat (était 0 partout)
Anti-corruption + banc
- Verrou anti-double-run (fichier O_EXCL, exit 3) — le double-launch camp-final (36 lignes pour 18 events) est impossible
- Pré-contrôle banc dans run : check, up, re-check, refus exit 4 plutôt qu'une campagne à zéros (camp220)
- NIC refusé sur VM allumée (CLI + GUI, exit 3) — le flip à chaud qui tuait la VM est impossible
- Config insécable : tous les écrivains yaml/hosts en tmp+rename (coupure PC en pleine sauvegarde ne corrompt plus) + tests
- Snapshot VBox : session zombie détectée avec recette de récupération ; parse anti-guillemet fantôme
SSH absent : sortie rapide, pas 300 s aveugles
- Port ouvert + login refusé x3 : exit 5 + reposez la clé en ~15 s (miroir du cas forward NAT)
- Diagnostiquer ne conseille plus jamais sshd à tort (topologie NAT / forward fermé / loopback distingués)
Persistance (setup une fois, usage quotidien)
- Config insécable, journal quotidien, runs gelés côté VM, reprise de campagne par run-id (moteur + API run_id)
- Les 178 runs gelés restent embarqués dans le binaire (seed auto au premier lancement)
LISEZ-MOI réécrit, concis
- Méthode Suite suffit en tête, 3 choses à savoir, commandes en une ligne, symptômes courts (doublon Linux supprimé)
- Même source pour le zip, kit readme et le bouton Guide — jamais deux textes qui dérivent
Vérifié
go build + vet + suites kit/cgo/gui/api vertes (dont atomicité yaml, parité vnet, honnêteté CLI) ; binaires release probés (version 1.3.1, icône extraite, seed embarqué, leaderboard global 35 groupes / 190 mesures).
Suivis connus (pas dans cette release)
Reprendre-campagne côté GUI, auto-kill arbre VBoxHeadless (recette fournie), UIA liste, teardown tty sudo.
v1.3.0
v1.3.0 — vues Grafana-grade + flux novice NAT + runs gelés intégrés
Frontend (3 vues reconstruites, 4e polie)
- Live : stat strip grammaire Grafana (verdicts bon/fragile/mauvais, seuils réels, sparklines par métrique), runbook conditionnel, overlay dédupliqué, Timeline légendée, Journal honnête, QuickActions réparé ( elapsed/total réel ), fin du fantôme après arrêt, explications en français clair pour chaque métrique
- Campagne : cockpit affiné, État lisible, Timeline lisible, copies claires, 390px réparé
- Intégrité/Provenance : sources en clair (quoi/où/quand), banner stat-facts, quarantaine lisible, REJOUER atteignable à 390px, Replay documenté
- Résultats : convention signe-amélioration partout (+98 % mieux), X synchronisé, axe log auto, comparateur qui annonce le gagnant, outliers nommés
Kit / GUI (flux novice NAT débloqué)
- keysetup NAT-aware (fini le deadlock 10.0.2.15), Suite avance après ensure, bannière reflète le verdict auth, codes de sortie honnêtes + verrouillés par tests, Diagnostiquer/Doctor NAT-corrects, scan rafraîchit l'hôte, testbed check|up|down dans l'aide, garde anti-binaire-périmé (jamais de downgrade), double-clic verrouille, Sauver commit le focus
Portabilité : runs gelés intégrés au binaire
- Le corpus archivé (~530 fichiers, ~29 Ko) est embarqué (go:embed) : sur une machine vierge, le serveur restaure data/runs seul au premier lancement, sans jamais écraser l'existant. Un seul binaire suffit.
v1.2.13 : banc de mesure + retours terrain (Windows)
v1.2.13 — le run fantome est mort + retours terrain (Windows uniquement, Linux suit). ## Correctif principal. Sur VM fraiche, DEMARRER gelait un run a ZERO ligne (pas de veth/netns/testbedsrv/sudoers, matrice qui n'abandonne jamais, aucun message). Desormais : 1. kit/testbed.sh embarque dans le zip, pousse par deploy ; sudoers + banc auto-poses (testbed.sh up). 2. kit testbed up|check (nouveau) + porte PlaneReady : le dashboard REFUSE Demarrer en 409 avec le remede exact au lieu d'un run vide. 3. kit next : 11e palier Banc de mesure — tout est vert veut dire les campagnes tournent vraiment. ## Retours terrain (7/7). Console VBox sur VM allumée (VirtualBoxVM --separate, plus de VBOX_E_INVALID_OBJECT_STATE) ; bouton Snapshot (arret VM) annonce l'arret a froid ; Sauver cree le yaml (ordre taper-user puis Sauver) ; svc status sort 5 si dashboard eteint ; ensure NAT : cle refusee diagnostiquee en ~15 s au lieu de boucler 300 s ; HTTP-seul mais HTTPS-KO = vieux binaire, remede kit deploy (svc + Next) ; Tunnel-hote bloque journalise au lieu du vide ; decouverte sudo par la SORTIE (sudo 1.9.15p5 sort 0 meme en refusant). Fond : sudoers (root) stale remplace par regle (ALL) complete ; bench VM rebootee + redeployee 1.2.13, next 11/11, run 1-cellule valide gelee. Verif : build/vet/tests verts, fumée GUI 41 controles. SHA256 : voir SHA256SUMS.txt.
v1.2.12 : GUI busy-state + dead button fix
Windows : bouton mort 204 'Carte en NAT' (bg:nic) réparé ; boutons d'action grisés pendant une action en cours (plus de double-clic silencieux) ; logs de progression pendant l'attente IP invitée ; DEMARRER.bat à la racine du zip (double-clic, sans console) ; bandeau NextStep (Prochaine étape + Suite + Guide). Linux : cgo-gui Fyne reconstruit sur Ubuntu (core partagé). Vérifié : build/vet/tests verts, smoke GUI live OK (désactivation prouvée pendant scan).
v1.2.11
v1.2.11 — NAT-first ensure (le forward 127.0.0.1:2222 est testé AVANT l'IP invitée, jamais réécrit) ; garde loopback (config explicite 127.0.0.1 préservée) ; DNS borné 4s partout (fini le gel kit dns) ; exit codes honnêtes (status/svc/ps → 5 sur SSH mort, snapshots vide → 0) ; garde ssh_user vide (message au lieu du dump ssh) ; vnet hyperviseur-aware (ne touche plus les adaptateurs d'un autre hyperviseur, refuse 10.0.2.x, rollback : Remove-NetIPAddress -IPAddress 10.0.2.1) ; GUI Win32+Fyne perfecta (pilote par extension partout, pas de vmrun sur le thread UI, journal append-only, verrouillage Fyne corrigé) ; LISEZ-MOI + kit readme ; binaire 1.2.11 (cgo version).
v1.2.10 : VBox à égalité + diagnostics honnêtes
Prenez CETTE version (les précédentes restent pour l'historique). Bug terrain corrigé : les VM VirtualBox étaient invisibles partout (seul vmx_path était lu) — VMPath() unifie .vmx/.vbox (verrou, boot, Guest, Next, TUI) + SaveVMX purge l'autre clé + hyperviseur toujours par extension. Sondes dashboard sur la cible vivante (fini le faux « éteint » quand hosts est périmé). Version 1.2.10 partout (binaire, VERSION, badge). Contient v1.2.9 (Prochaine-étape/Suite/Guide, readme exhaustif) + v1.2.8 (anti-freeze, HideWindow, user GUI) + v1.2.7 (shq, install.sh portable).
v1.2.9 : Prochaine-étape + readme exhaustif
Moteur Prochaine-étape : kit next (checklist 10 paliers), bandeau GUI calculé en continu, bouton Suite (exécute l'étape), bouton Guide (readme dans le journal). LISEZ-MOI réécrit (pipeline, commandes, dépannage par symptôme). Quirks : health sans hôte vide, snapshots vide = 0, shipcheck TCP/backend honnête. Inclut v1.2.8 (hyp par extension, HideWindow, user GUI).