Tri (lib/newsfeed.ts + components/NewsTab.tsx) :
Un bonus "+3h pour les catégories prioritaires" (Guerre/Chef d'État/Crise…)
était appliqué avant le tri par date. En temps normal ça remonte discrètement
une poignée d'articles importants ; mais en période de crise soutenue (conflit
Moyen-Orient actuel), la quasi-totalité des articles matche une de ces
catégories — le bonus s'applique presque partout et casse l'ordre
chronologique au lieu de l'affiner, produisant des blocs par source de plus en
plus vieux au lieu d'un flux unique correctement entrelacé. Vérifié en direct :
54 articles avant fix avec des dizaines d'inversions chronologiques, 0 après.
Le badge visuel "⚡ Prioritaire" reste pour signaler l'importance sans trahir
la fraîcheur réelle.
Flux RSS (lib/newsfeed.ts RSS_FEEDS) — 3 des 6 sources ne contribuaient plus
rien, vérifié en direct :
- ForexLive : /feed/news est une coquille vide (0 <item>) depuis leur
migration Nuxt.js vers investinglive.com — déjà couvert par le scraper
dédié fetchInvestingLiveNews(), aucune perte réelle en le retirant.
- MarketWatch : l'ancien miroir dowjones.io ne sert que des articles vieux
de 1+ an (filtrés par le cutoff 8 jours) → remplacé par l'URL RSS actuelle
(marketwatch.com/rss/topstories, testée fraîche).
- Reuters : feeds.reuters.com n'existe plus (échec DNS, fermé par Reuters il
y a plusieurs années) → remplacé par CNBC Markets (testé frais).
Bloomberg (403 anti-bot) et FinancialJuice (site restructuré) restent à zéro,
déjà connu et accepté (échecs silencieux gérés par try/catch).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Central bank governance (nouvel onglet Banques centrales) :
- lib/centralBankGovernance.ts + app/api/central-bank-sources : scraping live du
vote de la derniere reunion, dot plot Fed (SEP), et desormais les previsions
macro (PIB + inflation) publiees par chaque BC elle-meme (Fed SEP, Eurosystem
staff projections, BoJ Outlook Report PDF, SNB conditional forecast, BoC MPR,
RBA SMP). GBP/NZD laisses honnetement vides quand aucune source chiffree
fiable n'est accessible (RBNZ bloque par Cloudflare).
- components/CentralBankSourcesTab.tsx : nouvel onglet avec cards par banque.
Taux directeurs + Money Supply M3 :
- data/rate_decisions.json corrige (JPY, EUR, NZD etc. etaient perimes d'1-2
decisions) et desormais auto-maintenu : .github/workflows/update-rate-decisions.yml
(horaire) detecte les changements de taux via Trading Economics et fait
glisser current -> prev sans perte de donnee.
- data/money-supply-m3.json (nouveau) + .github/workflows/fetch-money-supply.yml
(hebdo) : M3 par devise (proxy M2 pour l'USD, la Fed ne publiant plus M3
depuis 2006), affiche dans CurrencyCard.
Calendrier economique elargi :
- lib/calendar-countries.ts, lib/calendar-taxonomy.ts, lib/fxstreetCalendar.ts :
couverture pays elargie + classification des evenements + source FXStreet.
Fix InvestingLive :
- lib/investinglive.ts : l'ancienne API WordPress (wp-json) renvoyait 404 depuis
leur migration Nuxt.js -> reecrit vers api.investinglive.com/api/homepage/articles,
+ fix crash silencieux (Tldr pas toujours un tableau).
Divers :
- .vercel/ ajoute au .gitignore (ne doit jamais etre commite, cf. son propre README).
- scripts/ (lancement PWA, push env Vercel), captures d'ecran, cache InvestingLive.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- newsfeed.ts: les catégories Discours BC / Chef d'État ne sont retenues que
si le nom propre apparaît dans le TITRE de l'article (pas dans le body)
→ un article UK social avec 'Bailey' dans le body ne sera plus taggué BC
- NewsTab: bouton Analyse déplacé après le titre de l'article (en fin de ligne)
Layout final : [il y a Xh] [Source] [Catégorie] puis Titre... [▼ Analyse]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- newsfeed.ts: pré-filtre macro obligatoire avant applyRules pour ZeroHedge
→ articles non-financiers (social, politique) rejetés même si un prénom de
gouverneur (ex: Bailey) apparaît dans le body
- NewsTab: timestamp (il y a Xh) déplacé en première position avant le nom du
journal sur la ligne de métadonnées; bouton Analyse reste avec le titre
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- TvChart: container_id unique par instance → widget TradingView trouve son conteneur
→ corrige le bug où tous les charts affichaient Apple Inc au lieu du bon symbole
- CurrencyCard COT: nouveau design centré sur l'évolution vs semaine précédente
· ② Qui pilote (AM hedge vs HF spécu)
· ③ Delta hebdo AM (net Δ) + HF (Δ longs / Δ shorts séparés)
· ④ Barre de dominance + signal de convergence/divergence/retournement
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- NewsTab: timestamp (blanc) + bouton Analyse déplacés avant le titre
- CalendarTab: drapeaux ronds via flagcdn.com (w5 h5 rounded-full)
- YieldsTab: top carry affiché dans le header (★ LONG→SHORT +Xbp),
tableau Top Carry supprimé, Classement + Movers côte à côte
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CurrencyCard: OIS toujours dans sigTabs (plus conditionnel à ratePath)
→ affiche état 'indisponible' quand données absentes, au lieu de disparaître
- NarrativeButton: couleur 'Résumé IA' blanc (#ffffff) au lieu d'amber
- NewsTab: Inflation/Géopolitique/Emploi/Énergie toujours visibles comme filtres
→ séparation TOP NEWS (articles avec étiquette macro) vs 'Autres actualités'
(articles boursiers sans tag FX) dans section repliable
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
État neutre (dir=neutral ET mispricDir=neutral) : fond bg-slate-800/40
border-slate-700/30 était quasi-invisible sur bg-slate-900.
Fix : fond bg-slate-800/60 border-slate-600/40 + labels Fond./Marché
en text-slate-400 (au lieu de 500) + flèches "—" en text-slate-500.
Refacto en IIFE pour clarifier la logique de couleur.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
contentStyle.color n'affecte pas les textes internes de Recharts.
Ajout de labelStyle (date, gris) et itemStyle (valeur, blanc) sur les
deux Tooltip (Rate Curve + Implied Pts).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Quand sync est actif, cliquer un slide Signaux (OIS/COT/Sent) switchait le slide
en interne sur les autres cartes mais ces cartes restaient sur l'onglet Aperçu —
la synchro était invisible. Fix : propager aussi onCardTabChange("mispricing")
depuis goToSignauxSlide et onCardTabChange("overview") depuis goToMacroSlide.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Tooltip: ajout color:#e2e8f0 sur les deux charts (texte invisible sur fond sombre)
- Rate Curve: légende visuelle inline (Actuel blanc / Sem. préc. bleu pointillé)
- Implied Pts: légende couleurs barres (vert Hausse / rose Baisse)
- investinglive.ts tryUrl: cache no-store au lieu de revalidate:21600
(les 404 cachées empêchaient de trouver l'article de la semaine précédente)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Supprime le bloc "BIAIS ACTUALITÉS PAR DEVISE" (cartes devise)
- Supprime le bouton Prioritaires standalone
- Intègre Live/Actualiser dans la barre de filtres
- Live passe à 1min (au lieu de 5min)
- Labels Direction/Catégorie en amber/or
- Filtre Prioritaire intégré dans la ligne direction
- Filtres sur 2 lignes compactes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When sync is active, clicking any tab/indicator on any card propagates
to all other cards (overview/mispricing/focus + ois/cot/sent + mon/infl/cro/empl).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Calendar — "Semaine dernière" tab:
- API now fetches from last Monday (instead of today) and tags events as "prev"
- New tab in CalendarTab with last week's published events (actual values visible)
- fromDate filter bypassed for prev tab; week banner styled in slate
Dashboard — fullscreen:
- Maximize2/Minimize2 button in header using Fullscreen API
- Listens to fullscreenchange to sync icon state
Report — AI "Faits marquants":
- New report_highlights mode in /api/narrative: reads published events from
prev+current week + drivers, generates 3 structured highlights via Groq
- AiHighlightsButton next to "Faits marquants de la semaine" label
- Parses AI response (-- delimited) into title+body Theme objects
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Retail Sales: switch from FRED OECD series (4-6w lag) to Trading Economics real-time scraping
for all 8 currencies; label changed to "Retail Sales MoM"
- Cache TTL: 24h → 1h base + 15min hot when ForexFactory detects recent high-impact event
- Rate probability trend arrows: server-side IL weekly delta (current vs previous Dellamotta article)
with per-metric thresholds (prob ≥3%/10%, bps ≥10/25) and colour coding (sky=dovish, amber=hawkish)
- Cycle phase: replaced FRED trend heuristic with OIS-based logic using peakMeeting.probMovePct,
probIsCut, and yearEndBps; dynamic descriptions include real market numbers
- investinglive.ts: find both current + previous article to compute week-over-week delta server-side
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ajout des onglets COT, Weekly Report, TvChart. Refonte Sentiment, News,
Calendar, Drivers. Nouvelles API cot-history et fx-weekly. Intégration FinancialJuice.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>