Cicatrices d'honneur

Chaque cicatrice est une erreur détectée, corrigée, et transformée en check permanent. Un agent qui a des cicatrices est un agent qui a appris.

8 cicatrices — filtre : claude

claudeMajeurConvention
16 mai 2026

Erreur : Rename de la dir racine Docker compose (ex /home/ubuntu/alexandre-carette-hub) sans pinner COMPOSE_PROJECT_NAME = recreate immediat des volumes/networks → ac_postgres orphelin → DB prod down. Risque silencieux car docker compose derive le project name du basename de la dir.

Check ajouté : Pre-flight obligatoire avant tout mv root dir : (1) docker compose config | grep ^name pour capter project name actuel, (2) append COMPOSE_PROJECT_NAME=<nom-actuel> dans .env (et .env.preprod si applicable), (3) docker compose config doit retourner meme name, (4) ALORS seulement mv. Documente dans ps_ac_chantier #12.

Cause racine : Docker compose genere labels com.docker.compose.project depuis CWD basename par defaut. Au mv, nouveau basename = nouveau projet Docker = pas de match avec volumes existants → recreate (=fresh empty volumes).

claudeModérédebt_archi
15 mai 2026

Erreur : Audit fiscal a révélé : (1) "France Corse" en pays séparé (id_country=242) + Réunion/Mayotte/Guyane/Saint-Pierre idem = patchwork PS hérité illégitime juridiquement. (2) 22 clients BE + 3 DE + 13 RE facturés 0% TVA par défaut PS (aucune rule configurée). (3) get­TaxRatesForProducts faisait MAX(rate) sans filtre postcode.

Check ajouté : Doctrine PaaS souverain Europe OSS établie 2026-05-15 : France=1 seul id_country, détection Corse + DOM-TOM par postcode (ps_tax_rule.zipcode_from/to). UE = ps_country.need_identification_number=1 → VAT intracom obligatoire B2B (cas Palimex). Migrations DB : 35 adresses 242/174/143/238/181→8, désactivation des 5 pays, création TVA 8.5% + rules postcode DOM, ajout cs_vat_intracom_cache pour VIES, vat_intracom sur customer_extra. Code : résolution postcode COALESCE(specifique, générique) + autoliq B2B 0% + export hors UE 0% + mention légale auto art. 262 ter I / 262 I CGI.

Cause racine : Config PS initiale Aude n'avait que les rules France métro (id_country=8). Pays UE/DOM/Corse activés en dur sans rules. Code v2 hérité de MariaDB sans pivot postcode-aware.

claudeMineurdebt_code
15 mai 2026

Erreur : Triplé bugs admin notif/PDF post-déploiement carrier+commentaire+TVA : (a) SQL fetchait cl.name sur ps_carrier_lang qui n'a que delay→ bloc Transporteur vide depuis le déploiement. (b) backslashes \" \n littéraux issus addifyb2bregistrationformbuilder pSQL non désescapés au rendu. (c) Intl.NumberFormat fr-FR utilise narrow NBSP (U+202F) non supporté par Helvetica builtin pdfkit→ "1 /276,15 €" au lieu de "1 276,15 €". (d) pdfkit.dash(0) crash. (e) drift Drizzle PG : ALTER omis sur ac_postgres + smoke_v2_postgres au 1er ship Sprint A.

Check ajouté : Carrier SQL : SELECT c.name (et non cl.name). Helper unescapeDbText centralisé (core/server/utils/db-text-unescape.ts) appliqué dans buildAddressBlockHtml + buildAdminNewOrderVars + PDF. stripUnsupportedSpaces dans formatPrice PDF. dash(0) wrapped en save/restore conditionnel. Doctrine drift = propager ALTER sur les 3 clusters PG (ac/palimex_v2/smoke_v2).

Cause racine : Bugs introduits/découverts pendant le sprint TVA EU OSS. Tous fixés dans la même session.

claudeMajeurdebt_archi
15 mai 2026

Erreur : Depuis cutover PG 30/04, orders-db.ts l.419-422 stockait total_shipping_tax_incl = total_shipping_tax_excl en dur ("shipping HT-only, à ajuster" en commentaire). 1 vraie commande facturée sous-évaluée (Ambre #ACAI75NQEU, 16,67€ TVA manquante) + 5 commandes test Aude annulées. Bug masqué + manque de TVA shipping côté code (ne lisait pas tax_rules_group du carrier).

Check ajouté : Fix code orders-db.ts createOrderFromCart : fetch carrier.tax_rules_group × address.country + postcode → calcul shippingPriceTTC correct. Stocke total_shipping_tax_incl = TTC vrai. carrier_tax_rate stocké réellement. Fix collateral commit 5c124f81 + endpoint getCarriersFromDb (preview TTC checkout) + frontend affichage HT/TTC explicite (commit 95e91c93).

Cause racine : Migration MariaDB→PG du 30/04 a porté la création d'order sans implémenter la résolution tax shipping. La rule TRG 6 (carrier 20%) existait côté DB mais jamais lue. Cumul avec id_country=242 Corse qui n'avait aucune rule TVA shipping.

claudeMajeurdebt_code
15 mai 2026

Erreur : 7138/8049 (89%) anciens clients legacy PS 8.2 ne pouvaient pas se logger sur Palimex v2. Root cause double : 1. Module B2B addifyb2bregistrationformbuilder hashait passwd = md5(pSQL(_COOKIE_KEY_ . $pwd)) au lieu du standard core PS md5(_COOKIE_KEY_ . $pwd). Tout password avec apostrophe/quote/backslash/newline/HTML-tag ne matchait plus côté v2. 2. ecosystem.preprod.config.cjs n avait pas PS_COOKIE_KEY_PALIMEX_V2 — preprod renvoyait 401 sur 100% des MD5 (prod OK car .env présent).

Check ajouté : core/server/api/catalogue/customer/login.post.ts : verifyPassword teste 3 recettes en cascade (bcrypt → MD5 standard → MD5 pSQL escape) + rehashToBcrypt automatique en $2b$10$ après chaque MD5 réussi (migration progressive 7138 → 0). Commit f34b0b1a. Sentinelles MD5/pSQL validées T1-T4 sur preprod puis prod 2026-05-15.

Cause racine : Migration v2 (Nuxt) a reproduit la recette PS core mais ignoré la variante pSQL du module B2B legacy. Comme le legacy gérait inscription ET login avec la même recette pSQL custom, le bug est resté invisible jusqu au passage v2.

claudeCritiquesilent_err
14 mai 2026

Erreur : 12 commandes Nuxt v2 Palimex (depuis cutover 12/05) factures HT-only au lieu de TTC. Total_paid_tax_incl == total_paid_tax_excl, tax_rate=0 sur ps_order_detail. Conséquence : email client affiche Total TTC = Total HT, TVA jamais collectee (~300-370EUR perdu sur 6793EUR HT).

Check ajouté : Fix orders-db.ts: import getTaxRatesForProducts, resolve countryId+postcode depuis adresse livraison, calcul finalPriceTTC per item, taxRatio appliqué aux discounts. ps_order_detail.tax_rate persiste le taux par produit. Commit a4506e91 sur preprod.

Cause racine : createOrderFromCart() dans core/server/utils/orders-db.ts n appelait jamais getTaxRatesForProducts. Insert hardcode tax_rate=0 et total_paid = totalProductsHT + shippingPrice. cart-db.ts calcule la TVA correctement pour le panier mais la commande convertit en HT-only. Bug Day-1 du Nuxt v2, pas regression recente.

claudeMajeurrace_condition
14 mai 2026

Erreur : Footer Palimex v2 prod wipe via PUT /api/footer-config/sync (13/05 19:38 puis 14/05 07:23). Logo MEYVA, contact_email/phone, social, copyright tous NULL.

Check ajouté : loadIntoBuilder no-op si data.value?.footer falsy (pattern deja en place dans useHeaderDb.ts).

Cause racine : core/composables/useFooterDb.ts loadIntoBuilder() retombait sur {theme:dark} si useFetch /api/footer-config pas encore resolu. saveAll() dans BuilderSidebar.client.vue appelle syncFooterToDb() unconditional. Race: clic Enregistrer avant fetch -> push vide -> upsert wipe.

claudeModéréaudit-method
14 mai 2026

Erreur : Audit massif curl 25-50 parallèles sur palimex-fruits-secs.com → nginx silent-rate-limit renvoie 404 spurious. Diagnostic erroné "60% du site mort" pendant ~2h alors que tout allait bien. Re-test séquentiel calme : 20/20 URLs marquées 404 répondent en fait 200.

Check ajouté : Toute audit > 50 URLs sur tenant prod : UA browser obligatoire + concurrence ≤5 + throttle 0.3s. Cibles testées séquentiellement = source de vérité ; audits parallèles servent uniquement à dégrossir. Cf memory feedback_curl_audit_rate_limit.md

Cause racine : Default UA "PalimexAudit/1.0" déclenchait bot-shield ; 25 jobs parallèles + follow redirect saturait nginx → 404 silent au lieu de 429.

Avis vérifiés

Nos clients parlent de nous

5.0 / 5

33 avis clients

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son a

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son accompagnement. Alexandre comprend parfaitement les enjeux et problématiques liés à notre activité et parvient, en réponse, à nous apporter des solutions techniques et fonctionnelles en respectant coûts et délais.

Office

MONOGRAM

Malt

La résolution de mes problèmes à été rapide et efficace, je recommande :)

La résolution de mes problèmes à été rapide et efficace, je recommande :).

Marine

MES-Distribution

Malt

Super

Super

Jl

Kaigan

Malt

Au Top

Au Top. tout simplement

Elite Cbd

Canna Elite Europe Ltd

Malt

Configuration d''un VPS et migration réalisée avec succès, bons conseils, dia

Configuration d'un VPS et migration réalisée avec succès, bons conseils, diagnostique rapide et efficace de nos problèmes. Je recommande.

Lorie

GRIIN outdoor

Malt

Toujours aussi clair et clairvoyant

Toujours aussi clair et clairvoyant... ;) Un plaisir de travailler avec Alexandre

Elite Cbd

Canna Elite Europe Ltd

Malt