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.

50 cicatrices — filtre : frontend

EamesModéréfrontend_ui
18 mai 2026

Erreur : Compteurs filter tri-state (en-cours/termine/archive) calculés sur la liste fetchée filtrée côté serveur → impossible de compter les buckets non-fetchés. UI affiche toujours 0 sur les onglets vides.

Check ajouté : useFetch avec query={archived:'1'} en dur (fetch tout) + tous filtres tri-state + scope calculés côté client. Volume actuel <50KB pour 32 chantiers, scale OK jusqu'à ~500.

Cause racine : Anti-pattern : aggregate counts derived from filtered fetch. Soit fetcher all + filter client, soit endpoint /counts dédié, soit 2 fetch parallèles.

EamesModéréConvention
17 mai 2026

Erreur : Mojibake UTF-8 pipeline xterm.js - 4 couches a forcer en C.UTF-8 sinon caracteres francais/box-drawing arrivent en Latin-1. Couches : (1) tmux session start LANG=C.UTF-8 LC_ALL=C.UTF-8 + tmux -u + set-option utf8 on ; (2) systemd unit Environment=LANG=C.UTF-8 ; (3) Python subprocess.run env LANG=C.UTF-8 encoding=utf-8 errors=replace ; (4) CLIENT JS : atob() renvoie binary string Latin-1, faut decoder via TextDecoder("utf-8").decode(bytes) AVANT term.write - sinon UTF-8 multi-byte devient Latin-1 separes.

Check ajouté : Pipeline UTF-8 explicite a chaque hop : tmux session start avec export LANG=C.UTF-8 + tmux set-option utf8 on. Systemd unit Environment=LANG=LC_ALL. Python subprocess.run env={LANG:C.UTF-8} encoding=utf-8. Client xterm.js : const bytes = Uint8Array.from(atob(data), c=>c.charCodeAt(0)); const text = new TextDecoder("utf-8").decode(bytes); term.write(text).

Cause racine : atob() en JS retourne une binary string Latin-1 (1 char par byte). Si on term.write() directement, les bytes UTF-8 multi-byte deviennent 3 chars Latin-1 separes. Mojibake invisible a l oeil sur les chars ASCII (<=127), explose sur tout caractere non-ASCII. Trompeur car semble parfois fonctionner sur du contenu purement ASCII.

EamesModéréConvention
17 mai 2026

Erreur : xterm.js + Fira Code = lettres ecartees ("P e r s o n a"). Fira Code est une font a LIGATURES - sans LigaturesAddon explicitement charge, xterm.js calcule mal la largeur des cellules. Idem pour les emoji/fleches Unicode modernes (emoji fleches) : xterm utilise par defaut des tables wcwidth obsoletes (Unicode <11) - emoji compte 1 cellule au lieu de 2 - decalage de tout le rendu derriere.

Check ajouté : Stack font xterm.js : SF Mono, Menlo, Consolas, ui-monospace, monospace (PAS Fira Code/JetBrains Mono sauf si LigaturesAddon charge). + charger xterm-addon-unicode11 + term.unicode.activeVersion = "11" pour wcwidth moderne. + allowProposedApi: true requis pour activer Unicode11.

Cause racine : xterm.js 5.x conserve wcwidth Unicode 6.x par defaut (compat backward). Fira Code = font concue pour IDE avec ligature engine, pas pour terminal cell-grid pur. Couches d alignement : font cell width + Unicode wcwidth doivent etre coherentes sinon les colonnes glissent.

EamesModéréConvention
28 avril 2026

Erreur : NaN totaux + édit/suppr adresses + reorder + favoris + password sans actuel (commit 0b16588f)

Check ajouté : NaN totaux + édit/suppr adresses + reorder + favoris + password sans actuel

EamesModéréConvention
27 avril 2026

Erreur : retire <section> imbriqués + carrousel <p> mort-né (commit 18736911)

Check ajouté : retire <section> imbriqués + carrousel <p> mort-né

EamesModéréConvention
27 avril 2026

Erreur : URL blog 3-segments + section imbriqué (commit 0354fa14)

Check ajouté : URL blog 3-segments + section imbriqué

EamesModéréConvention
27 avril 2026

Erreur : masque le badge prix quand carrier gratuit (au lieu d'"Offerte") (commit 89c9b05a)

Check ajouté : masque le badge prix quand carrier gratuit (au lieu d'"Offerte")

EamesModéréConvention
27 avril 2026

Erreur : mini-cart total/qty 0 sur fiche produit (priceRaw manquant) (commit 7b94bf8f)

Check ajouté : mini-cart total/qty 0 sur fiche produit (priceRaw manquant)

EamesModéréConvention
26 avril 2026

Erreur : tree hiérarchique + images relatives + DnD natif (commit a7e5c1ca)

Check ajouté : tree hiérarchique + images relatives + DnD natif

EamesModéréConvention
26 avril 2026

Erreur : tree col 2 inclut les cats niveau 2 (Grossiste, Marques) (commit 5b360afd)

Check ajouté : tree col 2 inclut les cats niveau 2 (Grossiste, Marques)

EamesModéréConvention
26 avril 2026

Erreur : select migration cible vide (commit 178dcd06)

Check ajouté : select migration cible vide

EamesModéréConvention
26 avril 2026

Erreur : qty+add-to-cart visible aussi en B2C (SMOKE v2) (commit 8c80e875)

Check ajouté : qty+add-to-cart visible aussi en B2C (SMOKE v2)

EamesModéréConvention
26 avril 2026

Erreur : badge bulle propre — bottom-full au lieu de overlap (commit eadfd1e3)

Check ajouté : badge bulle propre — bottom-full au lieu de overlap

EamesModéréConvention
26 avril 2026

Erreur : résoudre produit pilier-direct (1 segment d'URL) (commit b32db220)

Check ajouté : résoudre produit pilier-direct (1 segment d'URL)

EamesModéréConvention
26 avril 2026

Erreur : fallback SVG si l'image catégorie 404 à l'exécution (commit 93ca58f5)

Check ajouté : fallback SVG si l'image catégorie 404 à l'exécution

EamesModéréConvention
26 avril 2026

Erreur : CartDrawer pas monté côté employé/customer + builder toolbar invisible (commit 195cb411)

Check ajouté : CartDrawer pas monté côté employé/customer + builder toolbar invisible

EamesModéréConvention
25 avril 2026

Erreur : drop meta_keywords (PS9 removed column) (commit ddc6e77a)

Check ajouté : drop meta_keywords (PS9 removed column)

EamesModéréConvention
25 avril 2026

Erreur : drop meta_keywords sweep — 14 endpoints (commit edf1fb20)

Check ajouté : drop meta_keywords sweep — 14 endpoints

EamesModéréConvention
25 avril 2026

Erreur : readable long-description (typography classes) (commit c2aec76d)

Check ajouté : readable long-description (typography classes)

EamesModéréConvention
25 avril 2026

Erreur : SEO prompt — never regenerate a valid slug (commit cd61b75f)

Check ajouté : SEO prompt — never regenerate a valid slug

EamesModéréConvention
25 avril 2026

Erreur : SEO audit follow-up — internal links, strongs, schema dedup (commit 2d6bb037)

Check ajouté : SEO audit follow-up — internal links, strongs, schema dedup

EamesModéréConvention
25 avril 2026

Erreur : JSON-LD SSR-safe (CollectionPage + FAQPage) (commit 5d162051)

Check ajouté : JSON-LD SSR-safe (CollectionPage + FAQPage)

EamesModéréConvention
25 avril 2026

Erreur : FaqRepeater repopule sur reassignment, pas seulement length (commit ec07c2f7)

Check ajouté : FaqRepeater repopule sur reassignment, pas seulement length

EamesModéréConvention
25 avril 2026

Erreur : aperçu cover en carré (cohérent CategoryHero front) (commit e3bcfb54)

Check ajouté : aperçu cover en carré (cohérent CategoryHero front)

EamesModéréConvention
25 avril 2026

Erreur : autorise toute l'équipe à voir/activer la toolbar builder (commit 8537174b)

Check ajouté : autorise toute l'équipe à voir/activer la toolbar builder

EamesModéréConvention
25 avril 2026

Erreur : centaure prompt — préfixe pilier dans toutes URLs (commit 0148de11)

Check ajouté : centaure prompt — préfixe pilier dans toutes URLs

EamesModéréConvention
25 avril 2026

Erreur : "Voir le produit" → URL relative + hiérarchie canonique (commit 1a7fe4f4)

Check ajouté : "Voir le produit" → URL relative + hiérarchie canonique

EamesModéréConvention
24 avril 2026

Erreur : source DB-Only pour fiche produit (tous tenants) (commit 74667010)

Check ajouté : source DB-Only pour fiche produit (tous tenants)

EamesModéréConvention
24 avril 2026

Erreur : migrer /a-propos vers useHomepageDb (DB-Only) (commit 85a157df)

Check ajouté : migrer /a-propos vers useHomepageDb (DB-Only)

EamesModéréConvention
23 avril 2026

Erreur : perf(core): @nuxt/image + srcset catalogue + fixes hydration (LCP mobile Palimex) (commit b7a186cc)

Check ajouté : perf(core): @nuxt/image + srcset catalogue + fixes hydration (LCP mobile Palimex)

EamesModéréConvention
23 avril 2026

Erreur : dropdowns lisibles (annule blanc-sur-blanc) (commit 87891f45)

Check ajouté : dropdowns lisibles (annule blanc-sur-blanc)

EamesModéréConvention
22 avril 2026

Erreur : 3 cosmétiques — title, logo officiel, dark mode (commit 2795af77)

Check ajouté : 3 cosmétiques — title, logo officiel, dark mode

EamesModéréConvention
22 avril 2026

Erreur : restore explicit grossiste/marque wrappers — Vue Router priority (commit 29dd9b39)

Check ajouté : restore explicit grossiste/marque wrappers — Vue Router priority

EamesModéréConvention
22 avril 2026

Erreur : détente des hardcodes Palimex dans catalogue/[...slug].vue (commit f822b198)

Check ajouté : détente des hardcodes Palimex dans catalogue/[...slug].vue

EamesModéréConvention
21 avril 2026

Erreur : feat(hub/products): filtre ?category=ID + fix "Voir" catégorie en URL relative (commit 93b59d95)

Check ajouté : feat(hub/products): filtre ?category=ID + fix "Voir" catégorie en URL relative

EamesModéréConvention
21 avril 2026

Erreur : inverse mapping Résumé/Description — aligne sur le front Palimex (commit 966d3c6e)

Check ajouté : inverse mapping Résumé/Description — aligne sur le front Palimex

EamesModéréConvention
21 avril 2026

Erreur : reorder sans dépendance au perPage — simple {draggedId, targetId} (commit 3e0f0992)

Check ajouté : reorder sans dépendance au perPage — simple {draggedId, targetId}

EamesModéréConvention
21 avril 2026

Erreur : chevron expand robuste + tiebreaker ordre arbo (commit aaeebfe7)

Check ajouté : chevron expand robuste + tiebreaker ordre arbo

EamesModéréConvention
21 avril 2026

Erreur : bouton Voir utilise l URL publique réelle du tenant (commit edf5a724)

Check ajouté : bouton Voir utilise l URL publique réelle du tenant

EamesModéréConvention
21 avril 2026

Erreur : cache-bust miniatures + fallback WebP→JPG dans la liste (commit 547ed351)

Check ajouté : cache-bust miniatures + fallback WebP→JPG dans la liste

EamesModéréConvention
19 avril 2026

Erreur : destructure useLocalePath() — corrige 500 prod sur /:slug (commit bfc482ab)

Check ajouté : destructure useLocalePath() — corrige 500 prod sur /:slug

EamesModéréConvention
19 avril 2026

Erreur : body id/class cms-X sur article blog + landing AC (généralisation) (commit 7c04e54c)

Check ajouté : body id/class cms-X sur article blog + landing AC (généralisation)

EamesModéréConvention
19 avril 2026

Erreur : audit 404/500 megamenu Palimex (commit f5d78af6)

Check ajouté : audit 404/500 megamenu Palimex

EamesModéréConvention
19 avril 2026

Erreur : Revert "refactor(footer): social icons toujours inline sous contact (kill col 5)" (commit 1bbbbb87)

Check ajouté : Revert "refactor(footer): social icons toujours inline sous contact (kill col 5)"

EamesModéréConvention
19 avril 2026

Erreur : préserver produits pendant refetch + opacity pending (commit dac6e96f)

Check ajouté : préserver produits pendant refetch + opacity pending

EamesModéréConvention
19 avril 2026

Erreur : traduit Accueil + aria-label via ps_translation (commit 9015c6c9)

Check ajouté : traduit Accueil + aria-label via ps_translation

EamesModéréConvention
19 avril 2026

Erreur : wrap payload.cta_label avec i18nt() pour gérer les dicts legacy (commit 0fda1dd9)

Check ajouté : wrap payload.cta_label avec i18nt() pour gérer les dicts legacy

EamesModéréConvention
19 avril 2026

Erreur : TheFooter EN + by-silo accepte paths localisés (commit 3cc5d9fa)

Check ajouté : TheFooter EN + by-silo accepte paths localisés

EamesModéréConvention
19 avril 2026

Erreur : wrap hardcoded FR strings via t() + DB seed (commit 2d60b205)

Check ajouté : wrap hardcoded FR strings via t() + DB seed

EamesModéréConvention
19 avril 2026

Erreur : URLs produits localisées + ProductCard/Search EN (commit 1f656368)

Check ajouté : URLs produits localisées + ProductCard/Search EN

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