fix(poste-neuf): cinq defauts d'installation, et deux demandes du comptoir - #16
Merged
Merged
Conversation
…ptoir La v0.5 posee sur un poste neuf le 29/07/2026 tournait de bout en bout mais aucune des etapes 4 a 7 de la notice n'etait faisable sans ligne de commande. Cinq defauts fermes ici, plus les deux demandes rapportees du comptoir. Le repli en profil neutre jetait le bloc network DU FICHIER meme quand il n'etait pas fautif. Le service se posait sur 127.0.0.1:8085 pendant que le kiosque, qui lit le meme fichier et le lit sans peine puisqu'une configuration fautive reste lisible, ouvrait l'adresse declaree : ecran client noir sur le poste meme que le repli existe pour garder vivant. Le repli garde desormais network entier -- listen et admin_on_lan ensemble -- tant qu'aucune faute ne le nomme, exactement comme il gardait deja admin. Le profil neutre remplace ce sur quoi le poste TOURNE, jamais la facon dont on l'ATTEINT pour le reparer. Le banc qui manquait separe enfin l'adresse du fichier de celle du drapeau : les deux portaient la meme valeur, donc aucun test ne pouvait dire laquelle etait servie. L'entree n. 1 du lot L8 annoncait un correctif « non applique » livre depuis le 26/07 ; le banc du 29/07 a paye une demi-heure a cette contradiction. Le retour arriere a 60 s ne restaurait pas le fichier d'avant : il ecrivait ce sur quoi le poste tourne, c'est-a-dire le profil d'usine. Mesure sur un vrai poste : cooperative videe, paliers de prix 2 -> 1, remise adherent perdue, pilote passe en apercu. Et ensuite l'ecran ne pouvait plus rien enregistrer, parce que printer.type « preview » etait servi par GET et refuse par PUT. Le pilote apercu manquait au registre depuis toujours, alors que la conception annonce trois valeurs : il est livre, et il ecrit dans un repertoire a lui. Un second enregistrement pendant qu'une confirmation est attendue est refuse. Le voile « Poste hors service » couvrait le bouton Reglages, seule entree vers l'administration : un poste sortait de l'installeur dans le seul etat ou on ne peut pas le regler. La touche passe au-dessus ; le voile garde inset: 0, donc la grille reste couverte et Reimprimer reste inactif pendant une panne. « Detecter automatiquement » ne pouvait jamais reussir : les options serie etaient construites sans Baud, Bits, Parity ni Stop, l'ouverture etait refusee avant d'essayer, et l'ecran accusait alors un port occupe pour une struct vide -- un benevole lisait « COM7 est deja utilise » sur un port libre. Les huit tests existants injectaient tous un ouvreur aveugle : ils ne pouvaient pas voir ce defaut. La completion est explicite au point d'appel, et le banc traverse desormais la vraie validation. Les volets de la page Materiel se refermaient en 2,9 s, ou vivent les deux seuls champs qui nomment un port serie. La cause n'est pas celle qui avait ete ecrite : `open` est une propriete du DOM, compilee en affectation directe non memoisee, fondue dans l'effet de gabarit que le sondage rejoue. Un banc interdit le retour du motif. « Recharger le catalogue » repondait « Le catalogue va etre relu. » -- une promesse au futur, ecrite en dur avant tout acces au support, suivie d'un silence definitif quand le fichier n'est pas la. Le poste savait deja tout dire : nom du fichier, resultat, inventaire, source surveillee, tout est en base et deja servi. Le bouton nomme maintenant ce qui est surveille, puis l'issue arrive par le sondage qui existait deja. Le seul fait que le code ne produisait jamais -- « aucun fichier la ou le poste guette » -- est rendu par un os.Stat borne. La reponse reste un 202 : la rendre synchrone rebatirait le second chemin d'import que le code interdit. Les produits vendus a l'unite n'etaient pas masques, contrairement a ce qu'on croyait : 15 produits 0499 du vrai catalogue etaient affiches, et l'ecart de 24 lignes entre 355 et 331 que SUIVI.md citait deux fois sans l'expliquer se ventile en 16 anomalies de zone reservee, 7 preemballes et 1 code interne. ui.show_by_unit_products les masque par defaut ; la grille passe a 316. Le filtre est cote client : le poser cote serveur ferait diverger en permanence deux compteurs et declencherait un rechargement du catalogue dix fois par seconde, silencieusement. Masquer est un affichage et non un refus, mais la recherche ne rattrape pas une tuile masquee. Verifie sur ce poste : 2 562 tests Go sur 31 paquets (2 352 avant), 764 tests front sur 34 fichiers (686 avant), 0 echec ; gofmt propre, vet vert, svelte-check 338 fichiers sans erreur ; boundary et deps verts ; bundle client 79 429 o gzip, 70,5 % du budget. La passe -race n'a pas pu etre jouee ici : elle exige cgo et le projet est en zero cgo, sans gcc sur ce poste -- la CI Linux la couvre.
Passe documentaire des sept chantiers, chaque affirmation verifiee contre le code plutot que recopiee des rapports. Deux paragraphes de SUIVI.md donnaient une CAUSE FAUSSE, ce qui coute plus cher qu'un document muet parce que quelqu'un la croira : celui des volets attribuait le defaut a un re-rendu du bloc depliant, et la note « il n'existe aucune autre entree » vers l'administration etait fausse au sens strict -- GET /admin est bien servi, mais hors de portee au poste en kiosque, et la touche restait atteignable au clavier tout en etant peinte sous un voile opaque. Le fichier se contredisait aussi : l'entree n. 1 du lot L8 annoncait un correctif « non applique » que le paragraphe du 26/07 enregistrait deja comme livre. Elle est reecrite sur le defaut reellement restant. Le compte des tests etait fige depuis plusieurs sessions. Trois citations fichier:ligne avaient derive du fait de cette serie meme ; les numeros sont retires, les fichiers gardes. La section « Bugs actifs » annonce quinze codes-barres mal saisis dans Odoo. Recalcule le 29/07/2026 sur testdata/catalog/flv.csv, l'export authentique en compte SEIZE, tous distincts par code et par identifiant. Le quinze vient de l'analyse du legacy et n'a pas ete remesure depuis : les deux chiffres sont laisses cote a cote, l'ecart nomme, et personne ne tranche a la place de qui configure les nomenclatures. ADR-041 ouvre le masquage des produits vendus a l'unite, et dit ce qu'on perd : un poste qui masque ne peut plus imprimer d'etiquette a l'unite depuis sa grille, et la cle entre dans l'empreinte partagee -- la seule montee de version change donc l'empreinte de tous les postes, meme regles a l'identique. Un benevole qui ne l'a pas lu conclurait a une panne. Le compte d'ADR etait faux dans les deux fichiers qui l'annoncent : 36 dans SUIVI.md, 33 dans CLAUDE.md, 41 dans le document. §11.3 change de contrat et pas de precision : la phrase « sert la liste des fautes sur http://127.0.0.1:8085 » ne vaut plus que dans un cas, celui ou l'adresse elle-meme est la faute. Un exploitant qui a appris « en cas de doute, 8085 » doit lire pourquoi. Deux commentaires devenus faux, sans changement de code : deploy/linux/update.sh justifiait sa double sonde par un comportement que ce lot supprime, et la docstring de web/src/admin/mount.ts decrivait encore l'appui de trois secondes dans un coin neutre, geste supprime par ADR-032 -- elle etait de surcroit en francais la ou la convention impose l'anglais. Aucun banc ne la voyait.
…antiers Aucun conflit de code : leur travail vit dans internal/kiosk, que la serie ne touche pas. Deux conflits dans SUIVI.md, tous deux resolus en gardant les deux recits -- les compteurs de la serie et le diagnostic du demarrage a froid portent sur le meme poste et le meme jour. Le compte des tests Go passe de 2 562 a 2 572 : les dix tests que le correctif kiosque apporte. Mesure refaite apres fusion plutot que recopiee.
La CI a refuse la fusion sur « internal/web/dist est en retard sur web/src » alors que la garde etait verte sur le poste de developpement. Ce n'est pas le dist qui etait en retard : il etait construit ailleurs. Trois sources reecrites pendant la serie l'avaient ete avec des CRLF -- web/src/admin/lib/api.ts, pages/Catalog.svelte et pages/Dashboard.svelte, plus web/test/admin-catalog.test.ts. .gitattributes normalise en LF dans l'objet, donc le depot etait sain et la CI extrayait du LF ; mais le build local lisait le DISQUE, avec ses CRLF. Vite hache le contenu produit : trois noms d'actifs divergeaient donc entre les deux plateformes. Le CSS, lui, etait identique des deux cotes -- c'est ce qui a designe les fins de ligne plutot qu'une divergence de dependances. Le diagnostic a failli etre faux : `git diff --stat` ne montre pas les fichiers non suivis, si bien que la CI listait mes trois actifs en SUPPRESSION totale sans nommer ceux qu'elle venait de produire. Cela ressemblait a un dist ampute. Sources reextraites depuis git, bundle reconstruit. Aucune ligne de code ne change ; seuls les trois noms haches bougent. 2 572 tests Go et 764 tests front toujours verts, budget inchange a 79 429 o gzip.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
La v0.5 posee sur un poste neuf le 29/07/2026 tournait de bout en bout, mais aucune des etapes 4 a 7 de
INSTALLATION.mdn'etait faisable sans ligne de commande. Cette serie ferme les cinq defauts qui restaient, plus les deux demandes rapportees du comptoir.Les cinq defauts
L'adresse d'ecoute etait jetee par le repli. Le profil neutre remplacait le bloc
networkdu fichier meme quand il n'etait pas fautif : le service se posait sur127.0.0.1:8085pendant que le kiosque, qui lit le meme fichier et le lit sans peine puisqu'une configuration fautive reste lisible, ouvrait l'adresse declaree. Ecran client noir, sur le poste meme que le repli existe pour garder vivant. Le repli garde desormaisnetworkentier tant qu'aucune faute ne le nomme, comme il gardait dejaadmin.A noter : l'entree n. 1 du lot L8 de
SUIVI.mdannoncait un correctif--listen« non applique » qui etait livre depuis le 26/07. Le fichier se contredisait, et le banc du 29/07 a paye une demi-heure a cette contradiction.Le retour arriere a 60 s detruisait des donnees de production. Il n'ecrivait pas le fichier d'avant mais ce sur quoi le poste tourne, c'est-a-dire le profil d'usine : cooperative videe, paliers de prix 2 vers 1, remise adherent perdue. Le pilote
previewmanquait au registre alors que la conception annonce trois valeurs, ce qui cassait le cycle lire-modifier-ecrire de l'administration entiere sur tout poste fraichement installe. Il est livre.Le voile « Poste hors service » couvrait le bouton Reglages, seule entree vers l'administration : un poste sortait de l'installeur dans le seul etat ou on ne peut pas le regler. La touche passe au-dessus ; le voile garde
inset: 0, donc la grille reste couverte et Reimprimer reste inactif pendant une panne.« Detecter automatiquement » ne pouvait jamais reussir : options serie construites sans
Baud,Bits,ParityniStop, ouverture refusee avant d'essayer, et un message qui accusait un port occupe pour une struct vide. Un benevole lisait « COM7 est deja utilise » sur un port libre. Les huit tests existants injectaient tous un ouvreur aveugle : ils ne pouvaient pas voir ce defaut.Les volets de la page Materiel se refermaient en 2,9 s, ou vivent les deux seuls champs qui nomment un port serie. La cause ecrite dans
SUIVI.mdetait fausse : ce n'est pas le<details>qui est re-rendu, c'est queopenest une propriete du DOM, compilee en affectation directe non memoisee. Un banc interdit le retour du motif.Les deux demandes
« Recharger le catalogue » rend enfin compte. Il repondait « Le catalogue va etre relu. » — une promesse au futur, ecrite en dur avant tout acces au support — puis se taisait definitivement quand le fichier n'etait pas la. Le poste savait deja tout dire : nom du fichier, resultat, heure, inventaire, source surveillee, tout etait en base et deja servi. Rien n'a ete invente. La reponse reste un 202 : la rendre synchrone rebatirait le second chemin d'import que le code interdit noir sur blanc. Le seul fait que le code ne produisait jamais — « aucun fichier la ou le poste guette » — est rendu par un
os.Statborne.Les produits vendus a l'unite sont masques par defaut. Ils ne l'etaient nulle part : 15 produits
0499du vrai catalogue etaient sous le doigt du client, et une tuile a l'unite imprime une etiquette sans jamais lire la balance. La grille passe de 331 a 316 tuiles. Le filtre est cote client : le poser cote serveur ferait diverger en permanence deux compteurs et declencherait un rechargement du catalogue dix fois par seconde, silencieusement. L'option vit dans l'administration seule, sur la page Catalogue.Le meme chantier a ventile l'ecart des 24 lignes entre 355 et 331 que
SUIVI.mdcitait deux fois sans jamais l'expliquer : 16 anomalies de zone reservee, 7 preemballes, 1 code interne. Aucune n'est un produit vendu a l'unite — c'est un defaut des donnees Odoo, pas d'affichage.Verification
go test ./...npm --prefix web testgofmt -l ./go vet ./...svelte-checkmake boundary/make depsinternal/web/distLa passe
-racen'a pas pu etre jouee sur ce poste : elle exige cgo et le depot est en zero cgo, sans gcc. La CI Linux est seule a la couvrir.Ce qui reste ouvert
os.Statne vaut que pour une source locale.TROUBLESHOOTING.md.SUIVI.mdannonce quinze codes-barres mal saisis dans Odoo ; recalcule sur l'export authentique, il y en a seize. Les deux comptes viennent de sources differentes — les deux sont laisses cote a cote, personne ne tranche a la place de qui configure les nomenclatures.