Empile les 13 captures d'écran du feed réel (IMG_5439..5451, plus récent
en haut, plus ancien en bas) dans une colonne overflow-y:auto avec
scrollbar fine, pour permettre de naviguer dans le feed sans quitter le
site. Petit gap 2px entre chaque capture (façon séparation Instagram).
Dédoublonnage pixel des zones de chevauchement tenté (corrélation de
luminance par ligne) mais abandonné : signal pas assez discriminant sur
ce contenu (fonds crème uniformes). Chevauchement naturel accepté.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ColInsta n'affichait que le fallback bio depuis PC5 (feed IDs Behold jamais
renseignés, login Facebook Business trop lourd). Retire le bloc @aep.politique
(jugé insatisfaisant) et remplace InstaFeed par une galerie 3x3 statique de
9 vignettes réelles (croppées depuis le dernier screenshot du feed), avec
boutons Compte Insta + Boutique (placeholder désactivé, en attente d'URL).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- C1 : cadre 1px #CBD5E1 + radius 6px autour section centre-haut (Carte O zone).
Force tuning CarteO.vue : forceX/Y strength 0.05 -> 0.08, collide radius +12 -> +14
pour mieux contenir les nodes dans le cadre visible.
- C2 : bouton toggle Carte O desktop (icone triangle dans le bandeau, a cote de la legende).
Replie a flex 0 0 36px (header reste visible, body masque avec opacity 0).
Persistance sessionStorage 'tf-carte-o-collapsed'.
- D : fix drag handle qui ne se decliquait pas au mouseup. Listeners poses sur window
(vs document) + ajout pointerup/mouseleave/blur/mouseenter-buttons-0 pour couvrir
tous les flux utilisateur (sortie iframe, perte focus, relache hors-page).
Suspension transitions CSS pendant le drag (pas de lag).
- E1 : PreviewArticle hydration client:load (vs client:visible) - le v-if rendait
l'IntersectionObserver aveugle, donc les listeners 'preview-open' n'etaient jamais
installes. Resultat : clic manifeste -> preview ne s'ouvrait pas.
- E2 : Transition Vue preview-fade (opacity + translateY 8px, 250ms ease) +
transitions CSS flex-basis 0.3s ease sur sections haut/bas pour smooth UX.
Champ optionnel domain dans YAML carte-o-source : propage vers JSON et
permet d'afficher un logo plateforme en bas-droite de chaque node (cercle
blanc 18px + image clippee circulaire 14px) quand le zoom depasse 1.5x.
V1.2-O par defaut : substack.com sur les 15 thematiques essais. Centre +
projet TMIP gardent leur fill brut (encre / ocre). Toggle visibilite via
callback zoom (opacity 0/1 sur .logo-overlay).
A flagger : CDN Brandfetch retourne 403 en curl server-side avec le client
ID fourni. A revalider en browser (origin trans-former.fr) — le CDN peut
exiger un Origin header autorise. Si bloque, fallback prevu en V1.3
(proxy local ou logos packages dans /public/logos/).
Files:
- public/data/carte-o-source.yaml : +15 champs domain
- scripts/build-carte-o.js : propagation domain -> JSON
- src/components/vue/CarteO.vue : CarteNode.domain + logoUrl helper
+ logo-overlay (circle + image clip-path) + toggle visibilite zoom
- public/data/carte-o.json : regenere (15/17 nodes ont domain)
- YAML: fusion 3 noeuds confus (centre + ncs-politique + medecine-corps-social) en 1 seul noeud central 'Contrat social + Medecine du corps social'
- Build script: toutes les thematiques rattachees directement au centre (suppression mapping NCS/MDCS), radius central 30px, projets 18px
- CarteO.vue palette V1.2: central #0F172A (encre), essais #FFFFFF stroke encre, projets #B45309 (ocre conserve)
- Labels: inscrit dans le cercle (blanc) pour central+projets, a droite (encre douce) pour essais
- Label central long split sur 2-3 lignes via splitCentralLabel()
- Background: #FAFAF7 (papier, raccord colonnes laterales)
- Liens: #94A3B8 opacity 0.4 1px
17 nodes / 19 edges. Build SSR 5 pages prerender + server, 0 warning.
- ChatbotV2.vue : Vue island, thread chat (input + messages bot/user),
persistance sessionStorage, bandeau beta '120 fiches AEP, RAG-PE bientot',
gestion erreurs 429/502/504 ; pas de streaming ni markdown V1
- /api/chatbot.ts : endpoint Astro server proxy POST vers CHATBOT_UPSTREAM
(default https://aep.trans-former.fr/api/chatbot), timeout 25s,
body { question, history } -> upstream classique chatbot AEP Mistral Small
- astro.config.mjs : output 'server' + adapter @astrojs/node standalone
(Astro 6 a supprime mode hybrid ; on opt-in prerender sur les pages)
- Toutes les pages publiques (index, manifeste, manifeste/commander,
a-propos, mentions-legales) ont 'export const prerender = true'
- ColCentre.astro : remplace ChatbotPlaceholder par ChatbotV2 dans le tab
- .env.example : ajoute CHATBOT_UPSTREAM (V1.5 = switch LightRAG-PE 1 ligne)
Decision V1 : endpoint AEP /api/chatbot (classique, repond bien) au lieu
de /api/chatbot-v2 qui retourne v2_ready=false ('base vectorielle en cours').
Bandeau beta reste valide ; switch v2 quand ready cote AEP via env var.
Note PC8 deploy : Coolify doit booter avec 'node ./dist/server/entry.mjs'
(SSR Node standalone) au lieu de servir dist/client/ static.
Test end-to-end OK : SSR boot port 4399 + curl POST /api/chatbot ->
reponse_texte 800+ chars de l'AEP backend.