github-actions[bot]
63d96abcdc
chore: update rate-probabilities data [skip ci]
2026-06-30 06:49:18 +00:00
github-actions[bot]
76f7efd69b
chore: update rate-probabilities data [skip ci]
2026-06-30 02:33:41 +00:00
github-actions[bot]
6b79c598c4
chore: update rate-probabilities data [skip ci]
2026-06-29 23:55:19 +00:00
github-actions[bot]
7316c574db
chore: update rate-probabilities data [skip ci]
2026-06-29 22:47:59 +00:00
caty21
48d3b9c473
feat(COT/Idees): redesign COT chart + NC group + editeur riche IdeesTab
...
COT :
- Ajoute groupe NC (Non-Commercial Legacy) via Socrata API CFTC
- Graphique bidirectionnel (barres avec gradient, zéro centré, track complet)
- Barre L/S split sous chaque groupe, valeur nette + %L empilés
- Corrige verdict bug : amDominates vérifié avant hfIsShort
- Supprime 'k contrats', ajoute légende ΔL/ΔS/ΔNet
IdeesTab :
- Réécriture NotePane : contentEditable Notion-like avec images inline
- Toolbar riche : gras, italique, souligné, listes, alignement
- Redimensionnement image inline (25/40/60/80/100%)
- Archives : affichage complet screenshot + texte, restauration vers slot actif
Sentiment DXM :
- Affichage brut paire par paire (Myfxbook) pour vérification directe
- SentimentPair type + pairs[] dans SentimentEntry
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 23:33:00 +02:00
caty21
333ce5947a
feat: onglet Idées — 2 espaces recherche avec chart + notes persistantes
...
- nouvel onglet 💡 Idées entre Marchés et Calendrier
- 2 slots indépendants (Recherche A / B) avec :
- graphique TradingView (symbole libre + dropdown 15 paires, 4 timeframes)
- zone de notes avec titre, texte, coller image (Ctrl+V), ↗ agrandir plein écran
- persistance automatique localStorage (symbole, interval, notes, images)
- bouton Archiver : sauvegarde + reset du slot
- panel Archives collapsible avec aperçu notes et miniatures images
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 23:33:00 +02:00
github-actions[bot]
14e853338d
chore: update rate-probabilities data [skip ci]
2026-06-29 21:17:55 +00:00
github-actions[bot]
f01ab58910
chore: update rate-probabilities data [skip ci]
2026-06-29 19:44:47 +00:00
github-actions[bot]
8c8ddf51ff
chore: update rate-probabilities data [skip ci]
2026-06-29 17:28:56 +00:00
caty21
d3c5340f9b
feat: marchés 4H + lien TradingView + cache IL + perf chargement
...
- charts Marchés : interval D/W → 4H (240), hauteur 220 → 420px, grid 2col
- TvAdvancedChart : bouton "↗ TradingView" par chart (outils tracé complets)
- cache fichier IL 2h (data/il-enrichment-cache.json) : API rate-proba 13s → <500ms
- stale-while-revalidate macro : affiche cache immédiatement, refetch 10s background
- seuil cache rate-proba : 48h → 7j pour dev local
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 17:43:49 +02:00
caty21
416c5348f2
fix: GitHub Actions push permission + submodule + dashboard Taux tab
...
- add permissions: contents: write + persist-credentials to workflow
- git rm --cached Market-Signal-Finder (submodule sans .gitmodules)
- consolide OIS+STIR en onglet Taux (3 sous-onglets: Courbe/Probabilités/Réunions)
- header summary: 1 ligne, fix bug Hold/Hold, taux actuel dans légende chart
- cache stale: seuil 48h → 7j pour dev local
- stale-while-revalidate: affiche cache immédiatement, refetch en arrière-plan (10s)
- redesign tooltip chart Courbe (Actuel/Sem. préc./Δsem. en bps)
- YAxis affiche taux complets (3.63% vs .63 tronqué)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 17:05:50 +02:00
caty21
1a086af8e7
fix(OIS): supprime probas par reunion dans la liste, conserve donnees IL/Giuseppe
2026-06-29 13:54:45 +02:00
caty21
654958ec4d
fix(OIS): fusion STIR+IL pour proba 1ere reunion — IL override si ecart >8pp, STIR affiche en tooltip/parenthese
2026-06-29 13:49:52 +02:00
caty21
014be8f4e8
design(OIS/Probabilites): AreaChart auto-scale + gradient + liste reunions bps cumules colores
2026-06-29 13:44:02 +02:00
caty21
bc70678e6f
fix(OIS): Probabilites = LineChart proba + resume pic/bps + liste reunions avec taux prevu
2026-06-29 13:29:56 +02:00
caty21
05e7046de4
fix(OIS): restaure graphique probabilites original (LineChart probMovePct par reunion + pic + bps fin an + delta IL)
2026-06-29 12:45:15 +02:00
caty21
a37859ad40
feat(OIS): onglet Probabilites - barres proba par reunion + bps cumules, defaut Probabilites avant Rate Path
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 12:18:51 +02:00
caty21
34382c72dd
feat(CurrencyCard): apply uncommitted CurrencyCard refactor from previous session
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 12:17:48 +02:00
caty21
f5e5d51c72
fix: cache no-store sur routes API, EUR emploi, NZD OIS (RBNZ), ReportTab charts 750px
...
- app/api/*/route.ts : export const dynamic = force-dynamic + Cache-Control no-store
- lib/tecpi.ts : regex emploi EUR (grew/rose/fell), fallback body HTML, unite %/percent
- lib/rateprobability.ts : RBNZ_MEETINGS 2026-2027, buildRBNZPath (mirrors buildSNBPath)
CHF/NZD skippes du loop Investing.com (SNB/RBNZ rate monitor = 404)
Taux RBNZ 2.25% (etait 3.25%)
- components/ReportTab.tsx : hauteur charts 400 -> 750px (SPX, VIX, DXY, Gold)
- lib/tradingeconomics.ts, lib/types.ts, lib/newsfeed.ts : correctifs associes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 12:17:11 +02:00
caty21
eca5800372
fix: InvestingLive URL (/centralbank/events), procure.ch PMI title, remove signals badge
...
- investinglive.ts / expectations/route.ts / fetch-rate-data.mjs : try 4 URL variants
(/centralbank/ or /news/, events or event) to handle site restructure
- calendar/route.ts: displayTitle catches procure.ch prefix to return PMI Manufacturier
- page.tsx: remove divergenceCount badge and unused Zap import
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 10:45:15 +02:00
caty21
94602c765f
fix: symboles TradingView publics (sans login requis)
...
SP:SPX → FOREXCOM:SPXUSD, TVC:VIX → CBOE:VIX, TVC:DXY → CAPITALCOM:DXY
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-28 15:20:29 +02:00
caty21
afd0026f25
fix: Discours BC faux positif titre-only + bouton Analyse en fin de titre
...
- 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 >
2026-06-28 15:16:05 +02:00
caty21
fa0b5d9c45
fix: faux positif Discours BC ZeroHedge + timestamp devant le journal
...
- 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 >
2026-06-28 15:01:44 +02:00
caty21
f85bf4972a
fix: TvChart container_id pour corriger le symbole Apple + redesign COT axé sur l'évolution hebdomadaire
...
- 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 >
2026-06-28 14:55:49 +02:00
caty21
05803c8547
feat: UI — timestamp/Analyse avant le titre (blanc), drapeaux ronds calendrier, carry dans header, 2 tableaux côte à côte
...
- 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 >
2026-06-28 14:13:17 +02:00
caty21
2673686743
feat: replace rateprobability.com with CME FedWatch + Investing.com scrapers
...
- fetch-rate-data.mjs: CME FedWatch (USD), Investing.com rate monitors (all CBs),
InvestingLive (fallback) — plus aucune dépendance à rateprobability.com
- lib/rateprobability.ts: suppression des appels live rateprobability.com,
source unique = cache GitHub Actions (data/rate-probabilities.json)
- Logs détaillés pour debugger le premier run GitHub Actions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-28 13:35:14 +02:00
caty21
1e88b02acd
feat: enable TradingView drawing toolbar + add GitHub Actions workflow
...
- TvAdvancedChart: hide_top_toolbar false → outils de dessin visibles
- GitHub Actions: workflow fetch-rate-data.yml (cron horaire)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-28 11:47:18 +02:00
caty21
d34dd8765e
fix: TvChart async=false (document.currentScript fix), YieldsTab dark theme + compact layout
2026-06-28 11:28:45 +02:00
caty21
cb52cfad1a
fix: TvChart embed-widget-advanced-chart (candlestick, no symbol restriction), unique instance IDs, CHF/SNB trial, NZD candlestick in ReportTab
2026-06-27 23:09:02 +02:00
caty21
204e62cb6c
fix: filters use string[] (not Set), charts use TvAdvancedChart for reliable multi-instance rendering
2026-06-27 22:53:46 +02:00
caty21
cc1c4caf5e
fix: move timestamp + Analyse button inline with article title
2026-06-27 22:46:48 +02:00
caty21
1e1b95fdc0
fix: TvMiniChart utilise embed-widget-mini-symbol-overview.js (pas tv.js)
...
MiniSymbolOverview n'existe pas dans tv.js → try/catch avalait l'erreur silencieusement
→ graphiques vides. Correction : embed script dédié avec config inline (script.text).
Structure DOM correcte : .tradingview-widget-container__widget + script sibling.
TvAdvancedChart (tv.js + TradingView.widget) inchangé.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 22:36:27 +02:00
caty21
c82dbb397b
fix: OIS toujours visible + Résumé IA blanc + news séparées
...
- 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 >
2026-06-27 22:28:39 +02:00
caty21
5b313a7e3e
feat: news filters multi-select + sort by recency→priority→category
...
- filterCat (single) → selectedCats: Set<string> (multi-select OR logic)
- toggleCat() bascule une catégorie sans désélectionner les autres
- Tri client : score = timestamp + boost haute-priorité (+3h) + boost catégorisé (+1h)
→ les news macro/forex remontent naturellement, le bruit boursier Yahoo descend
- Filtre actif : seuls les articles matchant ≥1 cat sélectionnée sont affichés
- "Toutes" remet la sélection à zéro (Set vide)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 22:22:14 +02:00
caty21
cf70e30db6
feat: onglet Marchés + TvMiniChart sans popup + cache RP 48h + OIS default
...
- page.tsx: onglet '🌍 Marchés' — S&P 500, VIX, DXY, Or (TvMiniChart 2x2)
- TvChart: prop dateRange configurable sur TvMiniChart (défaut 1M)
- ReportTab: TvAdvancedChart → TvMiniChart (plus de popup TV), Or remplace US10Y
S&P 500/VIX dateRange=12M (daily), DXY/Or dateRange=60M (weekly)
- rateprobability: cache TTL 4h → 48h (OIS revient même sans GitHub Actions hourly)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 22:02:53 +02:00
caty21
dc801638d8
fix: tooltips OIS blanc (#ffffff) — Rate Curve + Implied Pts
2026-06-27 20:29:08 +02:00
caty21
df731732c5
fix: convergence bloc neutre visible — bg-slate-700/40 border-slate-500/50 text-slate-300
2026-06-27 20:22:40 +02:00
caty21
25a802e6eb
fix: Résumé IA → amber #f59e0b (diagnostic cache navigateur)
2026-06-27 20:16:22 +02:00
caty21
ec248744b1
fix: Résumé IA inline color, tooltip Implied Pts custom renderer, tryUrl cancel
...
- NarrativeButton: style inline pour forcer #94a3b8 (imbattable vs bundle CDN caché)
- CurrencyCard: Tooltip Implied Pts remplacé par custom content renderer (text visible)
- investinglive.ts: res.body.cancel() en fire-and-forget (ne masque plus le succès)
+ console.log article courant/précédent pour diagnostic dans logs Vercel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 20:12:21 +02:00
caty21
a978f19088
fix: Sem. préc. HEAD→GET, prevMeetings cache, remove footer
...
- investinglive: tryUrl HEAD→GET + res.body?.cancel() (WordPress bloque HEAD)
fenêtre recherche article préc. élargie 21→28 jours
- rateprobability: CBRatePath + prevMeetings/prevWeekDate, loadPrevWeekCachedBody()
fetchAllCBPaths enrichit prevMeetings depuis snapshot GitHub Actions
- fetch-rate-data.mjs: rotation current→previousWeek (5–9 jours) pour Rate Curve
- CurrencyCard: rateCurveData préfère prevMeetings (exact/meeting) > ilDelta (approx)
légende hasPrevCurve pilote affichage ligne bleue et label date
- page.tsx: suppression footer Sources/LLM, remplacement par pb-12
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 19:40:48 +02:00
caty21
1a7468d718
fix: bloc convergence toujours visible pour EUR/AUD (état Neutre)
...
É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 >
2026-06-27 19:27:19 +02:00
caty21
52b0167d28
fix: tooltip OIS charts — labelStyle + itemStyle pour texte lisible
...
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 >
2026-06-27 19:11:51 +02:00
caty21
a5870901d0
fix: convergence bloc toujours visible, ESI pill, suppression spread bps
...
- Bloc convergence : toujours affiché (plus conditionnel à "non-neutre")
- Suppression du score numérique +8/-7 (non-objectif)
- Texte "Neutre" quand les deux côtés sont neutres
- Réorganisation : Fond. ↑ [verdict centré] ↑ Marché (labels à l'extérieur)
- ESI : barre → pill colorée compacte (vert/rouge/gris + valeur signée)
- 10Y Yield : suppression de l'affichage (-177bps) spread vs USD
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 19:09:50 +02:00
caty21
623b1fa2a0
fix: compact convergence block, cache icon tooltip, Résumé IA dark theme
...
- Bloc FOND./MARCHÉ/Signaux seuls : 3 colonnes larges → 1 ligne compacte
- cache 2h : retiré de l'affichage inline → icône Database tooltip (hover)
- Résumé IA : text-indigo-600 → text-slate-400/hover:slate-200 (harmonisé)
- Modal Résumé IA : bg-white → dark (bg-slate-900, textes slate-200/300)
- Dot "Réel" → abbr "Tx.R" + tooltip explicatif (Taux Réel = CT − CPI YoY)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 19:05:23 +02:00
caty21
c7ec82d82a
fix: sync — goToSignauxSlide force mispricing tab, goToMacroSlide force overview tab
...
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 >
2026-06-27 18:58:40 +02:00
caty21
6ad3e440d9
fix: visibilité textes — labels indicatifs text-slate-300, tabs text-slate-400, rename Sentiment
...
- MacroBlock titles (Politique Monétaire, Inflation...) : slate-500 → slate-300
- COT CFTC header + "vs date" : slate-600 → slate-300 / slate-400
- Mouvement HF · semaine, Δ Longs/Shorts, xxx acc. : slate-600 → slate-300/400
- Δ AM/HF deltas : slate-600 → slate-400
- Sentiment Long/Short labels, Long/Short barre : slate-600 → slate-400
- Sentiment titre : slate-600 → slate-300, rename → "Sentiment Retail (DXM)"
- Tous les boutons tabs non-sélectionnés : slate-500 → slate-400 (hover → white)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 18:55:16 +02:00
caty21
82d7775e60
fix: OIS charts — tooltip lisible, légende visuelle, détection article précédent
...
- 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 >
2026-06-27 18:47:01 +02:00
caty21
7e97a079fc
feat: news — compact filters bar, remove currency bias cards, live 1min
...
- 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 >
2026-06-27 17:17:44 +02:00
caty21
bcc30ed5ba
feat: sync button now syncs all tabs — macro slide, main tab, signaux slide
...
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 >
2026-06-27 16:40:35 +02:00
caty21
b82c680f83
fix: GitHub Actions cache fallback + diagnostic logging for rate-probabilities
...
- data/rate-probabilities.json: initial seed (6 CBs fresh from rateprobability.com)
- lib/rateprobability.ts: fallback to cache file when live fetch fails (Vercel block)
parseCBBody() reuses same parsing logic; cache valid 4h max
- .github/scripts/fetch-rate-data.mjs: fetch script (run manually or via Actions)
- HTTP status now logged for diagnostics
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-27 16:33:38 +02:00