Changelog
Historique des modifications et nouvelles fonctionnalités.
83 versions
0.10.24
Version actuelle
2026-05-12
Dernière release
83
Versions publiées
vUnreleased
Aucun changement documenté.
v0.10.24
2026-05-12
Fixed
1
- Rendu des pages admin : les routes HTML (`/`, `/setup`, `/portfolio`, `/changelog`, `/providers`, `/llm`, `/guide`) utilisent désormais la signature compatible de `TemplateResponse`, corrigeant le `500 Internal Server Error` observé sur la racine après le déploiement v0.10.23.
Technical
3
- Test de régression ajouté sur les pages template de l'admin.
- Bump `microcap-core` vers 0.10.24
- Bump `microcap-admin` vers 0.10.24
v0.10.23
2026-05-12
Fixed
2
- Audit news microcaps : les absences de news société ne sont plus traitées comme une dégradation systématique quand elles sont optionnelles, le seuil de fraîcheur est désormais aligné sur la fenêtre de collecte et la recherche secondaire NewsAPI utilise le nom de société quand il est disponible.
- Propagation de la configuration de risque : le `RiskManager` et les chemins `run_daily`, `rebalance` et `scheduler` réappliquent désormais correctement les paramètres dynamiques stockés en base au lieu de retomber silencieusement sur `RiskConfig()` par défaut.
Technical
3
- Tests ciblés ajoutés sur l'audit news, la collecte multi-source et la reprise des paramètres runtime du `RiskManager`.
- Bump `microcap-core` vers 0.10.23
- Bump `microcap-admin` vers 0.10.23
v0.10.22
2026-03-18
Technical
3
- Stabilité des tests news : remplacement des timestamps figés par des dates récentes calculées dynamiquement dans les fixtures pour éviter qu'un score de confiance devienne stale et casse la suite de tests avec le temps.
- Bump `microcap-core` vers 0.10.22
- Bump `microcap-admin` vers 0.10.22
v0.10.21
2026-03-18
Fixed
3
- Fallback pétrole WTI/Brent : ajout d'une chaîne de repli Alpha Vantage -> EIA -> FRED -> dernière bonne valeur persistée pour éviter la disparition des indicateurs énergie quand un provider est limité ou indisponible.
- Cache énergie obsolète : ajout d'une politique de fraîcheur explicite sur la dernière bonne valeur avec niveaux `warning` après 24h et `critical` après 48h, exposés dans les métadonnées et dans le prompt LLM.
- Rendu macro du prompt LLM : correction du filtrage des erreurs pour ne plus masquer des données pétrole valides quand seules des erreurs de fallback sont présentes dans les métadonnées.
Technical
3
- Tests ciblés ajoutés sur le fallback FRED, le repli sur la dernière bonne valeur, les alertes de stale cache et le rendu du prompt enrichi.
- Bump `microcap-core` vers 0.10.21
- Bump `microcap-admin` vers 0.10.21
v0.10.20
2026-03-18
Fixed
1
- Provider Alpha Vantage : ajout d'un retry/backoff sur les réponses de rate limit (`Information` / `Note`) afin de fiabiliser les appels macro consécutifs et d'éviter la disparition intermittente de WTI/Brent dans le prompt LLM.
Technical
3
- Test unitaire ajouté sur le retry du provider Alpha pour les prix pétrole.
- Bump `microcap-core` vers 0.10.20
- Bump `microcap-admin` vers 0.10.20
v0.10.19
2026-03-18
Fixed
1
- Contexte énergie du prompt LLM : réutilisation des données WTI/Brent déjà récupérées dans le contexte économique pour éviter un double appel Alpha Vantage dans le même run, qui faisait parfois disparaître WTI du prompt à cause du rate limit free.
Technical
3
- Test ciblé ajouté pour garantir la réutilisation des données pétrole sans second appel provider.
- Bump `microcap-core` vers 0.10.19
- Bump `microcap-admin` vers 0.10.19
v0.10.18
2026-03-18
Fixed
3
- Concentration des achats : blocage des BUY répétés sur une ligne déjà détenue hors pyramiding explicite et plafonnement de l'exposition totale restante dans le filtre pré-trade du RiskManager.
- Sizing d'exécution : `_execute_buy_operations` recalcule désormais les quantités en tenant compte de la valeur de position déjà détenue pour empêcher une seconde passe de sizing de rouvrir une surconcentration au-delà de `max_position_pct`.
- Contexte marché sans watchlist : le prompt quotidien et l'endpoint Ops `daily-context` collectent maintenant le contexte marché global même quand aucun ticker n'est surveillé, au lieu d'envoyer un simple message de fallback.
Changed
1
- Prompt LLM marché : ajout d'une section explicite `Risques géopolitiques / énergie détectés` qui met en avant les headlines Iran/Hormuz/pétrole/énergie issues des news générales et business.
Technical
3
- Tests ciblés ajoutés sur le blocage des rachats hors pyramiding, le plafonnement d'exposition totale et la conservation du contexte marché/géopolitique quand la watchlist est vide.
- Bump `microcap-core` vers 0.10.18
- Bump `microcap-admin` vers 0.10.18
v0.10.17
2026-03-17
Technical
3
- Redéploiement production Raspberry Pi : publication d'un nouveau tag de release pour redéclencher GitHub Actions et republier l'état courant de la branche `master` sur la production.
- Bump `microcap-core` vers 0.10.17
- Bump `microcap-admin` vers 0.10.17
v0.10.16
2026-03-17
Changed
1
- Vectorisation planifiée en continu : le job `vectorize_data` reste désormais programmé même lorsque `rag_enabled` est désactivé, afin de garder les embeddings news à jour en production.
Fixed
2
- Réconciliation des ordres historiques : les ordres non terminaux anciens mais jamais resynchronisés restent désormais éligibles à la réconciliation automatique, ce qui permet de rattraper les BUY `PENDING` historiques encore visibles en base.
- Suppression prématurée des `risk_positions` : `run_daily` ne supprime plus une `risk_position` au simple envoi d'un ordre de vente complet tant que le broker ne confirme pas un état terminal ou un remplissage complet.
Technical
3
- Tests ciblés ajoutés sur la sélection d'ordres à réconcilier, la conservation des `risk_positions` après une vente non finalisée et la programmation du job `vectorize_data` sans RAG.
- Bump `microcap-core` vers 0.10.16
- Bump `microcap-admin` vers 0.10.16
v0.10.15
2026-03-16
Added
3
- Observabilité news Ops : ajout des endpoints `/ops/news-audit`, `/ops/news`, `/ops/news-confidence` et `/ops/buy-gating` pour suivre les audits news, l'historique persisté, le score de confiance et les raisons de blocage d'achat ticker par ticker.
- Audit qualité news multi-source : persistance d'audits structurés par provider et scope, avec corroboration Finnhub/NewsAPI, score de confiance par ticker et fallback historique vectorisé pour l'analyse quotidienne.
- Vectorisation minimale des news : ajout d'embeddings déterministes internes pour les news persistées et récupération de news historiques pertinentes sans dépendance externe supplémentaire.
Changed
3
- Job `ingest_news` : remplacement du placeholder par une ingestion réelle basée sur les tickers de surveillance avec persistance en base et journalisation du résumé `news_audit`.
- Routine quotidienne : ajout d'un gating achat par confiance news avant exécution des BUY et enrichissement du snapshot runtime de santé marché avec les métriques news.
- Synchronisation portefeuille : réalignement automatique des `risk_positions` avec le snapshot broker et prise en compte explicite des ordres broker `open` pendant la collecte portefeuille.
Fixed
4
- Réconciliation des ordres : interrogation des ordres broker `open` et `closed` pour corriger les BUY fantômes restant en `PENDING` alors que le broker les avait déjà terminés.
- Agrégation des `risk_positions` : correction des renforcements pour mettre à jour correctement quantité, prix d'entrée moyen, plus haut observé et conviction.
- Prises de profit partielles : suppression des dernières écritures JSON legacy au profit de la persistance PostgreSQL du RiskManager.
- Cohérence portefeuille / risque : suppression des `risk_positions` orphelines et création/mise à jour automatique des positions broker observées lors de `sync_portfolio`.
Technical
4
- Tests ciblés ajoutés sur l'audit news, les embeddings, le store news, le scheduler et l'agrégation des `risk_positions`.
- Plan de sprint documenté et clôturé dans `docs/roadmap/SPRINT_PLAN_ORDERS_RISK_NEWS_AUDIT.md`.
- Bump `microcap-core` vers 0.10.15
- Bump `microcap-admin` vers 0.10.15
v0.10.14
2026-03-12
Fixed
1
- Rapport quotidien : le job `daily_report` ne s'auto-déclare plus en échec pendant son exécution. Le rapport ne compte plus les runs `running` comme des échecs et ne remonte que les statuts terminaux `failed`, `error` et `missed`.
Technical
3
- Test de régression sur la génération du rapport quotidien pour exclure le run `daily_report` en cours de la section des échecs récents.
- Bump `microcap-core` vers 0.10.14
- Bump `microcap-admin` vers 0.10.14
v0.10.13
2026-03-09
Fixed
1
- Providers Mail UI : rechargement des secrets SMTP lisibles au démarrage de la page et forçage de la lecture du vrai `SMTP_PASSWORD` sauvegardé pour éviter les valeurs d'autofill parasites comme `change_me`.
Technical
2
- Bump `microcap-core` vers 0.10.13
- Bump `microcap-admin` vers 0.10.13
v0.10.12
2026-03-09
Technical
3
- Redéploiement production Raspberry Pi : publication d'un nouveau tag de release pour relancer le pipeline GitHub Actions sur la version courante validée.
- Bump `microcap-core` vers 0.10.12
- Bump `microcap-admin` vers 0.10.12
v0.10.11
2026-03-09
Added
4
- Alerting e-mail d'observabilité : ajout d'un provider SMTP centralisé avec envoi d'alertes temps réel, récapitulatifs quotidiens/hebdomadaires et endpoint admin de test SMTP.
- Gating qualité des données marché : détection des erreurs d'authentification sur providers critiques avec snapshot de santé du run et blocage optionnel des achats.
- Onglet Mail dans Providers : configuration SMTP, destinataires, état de complétude et test d'envoi directement depuis l'interface admin.
- Tests ciblés : couverture des redactions HTTP sensibles, santé marché, notifications e-mail et UI Providers mail.
Changed
3
- Job daily_report : remplacement du placeholder par un vrai rapport d'exploitation avec synthèse runs/logs/portefeuille et envoi e-mail conditionnel.
- Observabilité des jobs : envoi d'alertes e-mail sur échec de job, anomalies de réconciliation ordres et erreurs d'authentification provider.
- Configuration applicative : ajout des paramètres `notifications.*` et des garde-fous `data.block_buys_on_critical_provider_failure` / `data.critical_provider_failure_threshold`.
Fixed
3
- Fuite de secrets dans les logs HTTP : redaction des query params sensibles (`token`, `apiKey`, `access_token`) dans les erreurs provider et messages fallback.
- Exécution malgré providers dégradés : la routine quotidienne tient désormais compte de la santé réelle des collectes de marché avant d'autoriser les achats.
- Diagnostic SMTP côté admin : l'UI remonte maintenant une cause exploitable en cas d'échec d'envoi (auth, connexion, TLS/SSL, timeout, etc.).
Technical
2
- Bump `microcap-core` vers 0.10.11
- Bump `microcap-admin` vers 0.10.11
v0.10.10
2026-02-27
Fixed
1
- NameError `config` dans `_execute_buy_operations` : la fonction module-level utilisait `config.risk.*` et `config.execution.*` sans recevoir `config` en paramètre — ajout du paramètre `config: AppConfig` et passage depuis `run_trading_operations`. Ce bug empêchait l'exécution de tous les ordres d'achat.
Technical
2
- Bump `microcap-core` vers 0.10.10
- Bump `microcap-admin` vers 0.10.10
v0.10.9
2026-02-27
Added
4
- Synchronisation bidirectionnelle broker ↔ système : nettoyage automatique des `risk_positions` orphelines (absentes du broker) à chaque `run_daily`, supprimant la dérive historique.
- Implémentation `auto_cancel_open_orders` : les ordres restés ouverts plus de 24h sont automatiquement annulés au début de chaque exécution quotidienne (le flag de config existait mais n'était pas câblé).
- Création en DB des ordres broker non trackés : la réconciliation importe désormais les ordres trouvés sur le broker mais absents de la base de données (`meta.source = "reconciliation"`).
- Tests de synchronisation : 9 tests unitaires couvrant le nettoyage des orphelins, le retour des sold_tickers, l'annulation des ordres périmés et l'import des ordres non trackés.
Fixed
3
- Suppression `risk_positions` après vente : `_execute_sell_operations` retourne les tickers vendus et `remove_position()` est appelé immédiatement — les positions vendues ne restaient plus comme orphelines.
- Bug `qty` → `quantity` : dans `_sync_missing_risk_positions` : le paramètre incorrect empêchait la synchronisation de nouvelles positions broker vers le risk manager.
- Volume persistant `/app/data` : sur Raspi : ajout du volume nommé `core_data` dans `docker-compose.raspi.yml` pour éviter la perte de l'historique de recommandations et du score de cohérence.
Technical
3
- Script `scripts/extract_llm_profiles.py` pour extraire et afficher les profils LLM depuis la base de données locale.
- Bump `microcap-core` vers 0.10.9
- Bump `microcap-admin` vers 0.10.9
v0.10.8
2026-02-26
Changed
2
- Contexte broker portefeuille durci : synchronisation systématique du contexte actif depuis `/broker/info` avant les requêtes portefeuille afin d'éviter les décalages localStorage entre profils Alpaca (1k/10k).
- Visibilité du contexte actif : ajout d'un indicateur en en-tête de la page Portefeuille affichant broker, profil Alpaca actif, `account_id` et mode Paper/Live.
Fixed
1
- Persistance broker principal lors du switch Alpaca : le switch de profil persiste désormais aussi `broker.primary=ALPACA_PY` en base, évitant le retour involontaire à `SIMULATOR` après redémarrage.
Technical
2
- Bump `microcap-core` vers 0.10.8
- Bump `microcap-admin` vers 0.10.8
v0.10.7
2026-02-26
Added
2
- Endpoint de lecture ponctuelle des secrets : ajout de `GET /secrets/{key}/peek` et `GET /llm/profiles/{profile_id}/api-key/peek` pour faciliter l'édition sécurisée des profils et clés depuis l'UI admin.
- Persistance des capacités LLM en base : nouvelle colonne `llm_capabilities` (JSONB) dans `llm_profiles` avec migration Alembic `20260225_01_add_llm_capabilities.py`.
Changed
3
- UI Providers LLM : flux de création/édition/test fiabilisé (save puis test, gestion collision d'identifiant auto-généré, suppression des doubles initialisations, support modèle OpenAI en saisie libre + suggestions GPT-5.x).
- Chargement des secrets dans les formulaires : récupération on-demand des clés masquées via endpoints `peek` pour Alpaca/Data Providers/LLM.
- Core LLM Azure : adaptation automatique des paramètres (`max_tokens`/`max_completion_tokens`, `temperature`) avec réutilisation des capacités persistées en base plutôt que via fichier cache local.
Fixed
2
- Erreur faux positive "La clé API est requise" : sur profils LLM déjà existants lors du test depuis modal.
- Erreurs de compatibilité modèles récents : (`unsupported_parameter max_tokens`, `unsupported_value temperature`) sur certains modèles Azure/OpenAI compatibles GPT-5.x.
Technical
3
- Tests admin enrichis pour les endpoints `peek` secrets/LLM.
- Bump `microcap-core` vers 0.10.7
- Bump `microcap-admin` vers 0.10.7
v0.10.6
2026-02-25
Fixed
3
- NameError `config` dans `_apply_liquidity_gating` : la fonction recevait maintenant `config: AppConfig` en paramètre au lieu de référencer la variable locale du scope appelant — les recommandations d'achat étaient systématiquement bloquées à chaque routine quotidienne.
- Logs `%s` non substitués dans scheduler.py : migration de la syntaxe `%s` (logging standard) vers `{}` (loguru) — 25 messages de log affichaient littéralement `%s` au lieu des valeurs réelles.
- Path Traversal sécurisé sur `GET /ops/prompts/{template_name}` : remplacement de la concaténation du paramètre HTTP dans le chemin par une itération du répertoire + whitelist regex `^[\w\-]+\.[\w]+$`.
Changed
1
- Horaires des jobs trading alignés sur NYSE : `run_daily` passé de 14h35 à **15h45 Paris (09:45 ET)** — 15 min après ouverture ; `rebalance_portfolio` de 15h35 à **16h15 Paris (10:15 ET)**.
Build
2
- `matplotlib` ajouté aux dépendances : du service core (`>=3.8,<4`) — absent de l’image Docker, bloquait la génération des graphiques.
- Script `scripts/migrate_schedule_times.py` pour appliquer les nouveaux horaires sur une base de données existante.
Technical
2
- Bump `microcap-core` vers 0.10.6
- Bump `microcap-admin` vers 0.10.6
Changed
3
- Trading store unifié PostgreSQL : suppression du stockage SQLite `data/trading.db` pour les ordres/fills du moteur de trading au profit d'un stockage unique PostgreSQL.
- Idempotence ordres côté PostgreSQL : ajout de `client_order_id` dans `orders` (modèle + migration Alembic) et persistance systématique lors de l'enregistrement d'ordre.
- Intégration trading simplifiée : suppression des doubles écritures SQLite + PostgreSQL ; PostgreSQL devient la source de vérité.
Fixed
1
- Kelly status Ops : correction du logging d'exception détaillé et ajout d'une migration Alembic de rattrapage idempotente pour les colonnes de réconciliation manquantes dans `orders`.
Technical
2
- Bump `microcap-core` vers 0.10.5
- Bump `microcap-admin` vers 0.10.5
v0.10.4
2026-02-18
Added
1
- Calculateur VaR Monte Carlo : Nouveau module de calcul de la Value at Risk (VaR) par simulation Monte Carlo avec tests associés.
Changed
1
- Sidebar responsive : Amélioration de la gestion de la sidebar et ajustements de style pour la réactivité de l'interface.
Technical
3
- Nettoyage des sections de code inutilisées dans les fichiers de configuration.
- Bump `microcap-core` vers 0.10.4
- Bump `microcap-admin` vers 0.10.4
v0.10.3
2026-02-11
Added
7
- Feature 3.3 : Gestion Arrondis Petites Positions : — Sprint 3 completé
- Nouveau paramètre `partial_profit_min_qty` (défaut: 5) pour définir le seuil de petite position
- Désactivation automatique du profit partiel pour les positions < seuil
- Warning log lors du sizing si quantité < 2 actions
- Badge ⚠️ orange dans l’UI Portfolio pour les petites positions
- Tooltip instantané CSS au survol du badge
- 3 nouveaux tests unitaires
Technical
4
- Ajout du système de tooltips CSS instantanés (`.hover-tooltip`)
- Enrichissement de `serialize_position()` avec `is_small_position`, `partial_profit_disabled`
- Bump `microcap-core` vers 0.10.3
- Bump `microcap-admin` vers 0.10.3
v0.10.2
2026-02-09
Added
7
- Trailing Stop Adaptatif : L'offset du trailing stop s'adapte automatiquement à la volatilité du titre (ATR%).
- ATR% < 5% → offset 4% (vol. faible)
- ATR% 5-10% → offset 5% (vol. normale)
- ATR% > 10% → offset 7% (vol. élevée)
- Nouveaux paramètres : `trailing_volatility_adjust`, `trailing_low_vol_offset`, `trailing_mid_vol_offset`, `trailing_high_vol_offset`
- Affichage UI avec icône 📈 et niveau trailing dans le tableau des positions
- 9 tests unitaires couvrant tous les scénarios
Fixed
3
- Cohérence horaires jobs : Correction de l'enchaînement des jobs pour éviter les conflits.
- `sync_portfolio` : 15:25 → **14:00** (avant `run_daily` pour avoir les positions fraîches)
- `rebalance` : 15:00 → **15:35** (après ouverture US à 15:30 et après `run_daily`)
Technical
2
- Bump `microcap-core` vers 0.10.2
- Bump `microcap-admin` vers 0.10.2
v0.10.1
2026-02-09
Fixed
1
- Vérification config LLM : Correction de `check_provider_config()` dans `run_daily.py` pour utiliser les profils LLM en base de données au lieu des variables d'environnement obsolètes. Le job `run_daily` échouait avec "Variables Azure OpenAI manquantes" alors que la configuration était correctement stockée dans la table `llm_profiles`.
Technical
2
- Bump `microcap-core` vers 0.10.1
- Bump `microcap-admin` vers 0.10.1
v0.10.0
2026-02-09
Added
1
- Profils LLM : Ajout du champ `api_version` et mise à jour des formulaires associés.
Technical
2
- Bump `microcap-core` vers 0.10.0
- Bump `microcap-admin` vers 0.10.0
v0.9.2
2026-02-09
Fixed
3
- Dépendance cryptography core : Ajout de `cryptography>=41.0,<43` aux dépendances du service core pour permettre la lecture des secrets chiffrés (profils Alpaca) depuis la base de données.
- Synchronisation secrets OPS_TOKEN/JWT : Script `sync_secrets_to_db.py` pour synchroniser les secrets générés par settings.py avec la DB.
- Scripts de maintenance : Ajout de `fix_missing_secrets.py` pour corriger les secrets manquants après migration v0.9.0 (OPS_TOKEN, ADMIN_JWT_SECRET, conversion profils Alpaca).
Technical
2
- Bump `microcap-core` vers 0.9.2
- Bump `microcap-admin` vers 0.9.2
v0.9.1
2026-02-08
Fixed
6
- Setup wizard JS : Correction de 9+ bugs dans setup.js — noms de propriétés (`field.name` → `field.key`, `field.hint` → `field.description`), extraction incorrecte du tableau d'étapes, format des options select (tuples vs objets), dépendances conditionnelles multi-valeurs, corps POST enveloppé dans `{data: formData}`, détermination du type de connexion pour les tests, rendu du récapitulatif avec cache stepData.
- Incompatibilité passlib/bcrypt : Remplacement de `passlib.hash.bcrypt` par `hash_password()` (pbkdf2_sha256) dans le setup wizard pour contourner l'incompatibilité bcrypt 5.0 + passlib 1.7.4.
- Chiffrement ENCRYPTION_KEY : Support base64 URL-safe (`-_`) en plus du base64 standard (`+/`) dans crypto.py — `urlsafe_b64decode`/`urlsafe_b64encode` pour compatibilité avec les clés générées par Fernet.
- Modèle SetupStatus : Correction du type de colonne `config_data` de `Text` à `JSONB` pour correspondre au schéma PostgreSQL réel.
- Docker Compose ENCRYPTION_KEY : Suppression de `ENCRYPTION_KEY: ${ENCRYPTION_KEY:-}` dans docker-compose.raspi.yml qui écrasait la valeur de env_file avec une chaîne vide si la variable shell n'était pas définie.
- CI/CD update_env_var() : Quotation automatique des valeurs contenant des caractères spéciaux (`/+=&|$#!`) dans le workflow de déploiement.
Technical
2
- Bump `microcap-core` vers 0.9.1
- Bump `microcap-admin` vers 0.9.1
v0.9.0
2026-02-07
Added
22
- Kelly Criterion auto-enable : Activation automatique du critère de Kelly lorsque le seuil de trades (`kelly_min_trades`, défaut 50) est atteint, sans intervention manuelle.
- Nouveau paramètre `kelly_auto_enable` (défaut `True`) dans `RiskSettings`
- Log informatif émis lors de l'activation automatique
- Override manuel conservé via `kelly_enabled` (force on/off)
- Widget état Kelly dans le dashboard (barre de progression trades, mode, Kelly %, win rate)
- Endpoint `GET /ops/kelly-status` avec proxy admin et rendu JS
- 4 tests unitaires couvrant tous les scénarios (auto-activation, seuil non atteint, override manuel)
- Pyramiding des positions gagnantes : Renforcement automatique des positions en gain via ajouts progressifs.
- Paramètres configurables : `pyramiding_enabled`, `pyramiding_trigger_pct` (15%), `pyramiding_max_adds` (2), `pyramiding_add_pct` (50%)
- Trigger progressif : chaque ajout requiert un gain supplémentaire
- Respect du budget risque global avec réduction automatique de la taille si nécessaire
- Recalcul du stop-loss pondéré après chaque ajout
- Colonnes `pyramid_adds_count` et `original_quantity` dans `RiskPosition`
- Intégration dans `run_daily.py` (étape 0.5 avant les achats IA)
- UI : badges colorés dans le tableau positions (🟢 0/2, 🟡 1/2, ⚫ 2/2)
- 7 tests unitaires (trigger, max adds, budget, stop recalculé, quantité originale)
- Console LLM : Interface pour tester des prompts et gérer des templates LLM.
- Création de la table `llm_profiles` pour la gestion multi-provider LLM
- Pages configuration initiale et gestion des secrets : Nouvelles pages d'onboarding pour la configuration et les secrets.
- Gestion des oscillations de configuration : Détection et audit des modifications fréquentes de configuration.
- Roadmap Money Management : Documentation complète du plan d'amélioration du système de money management (4 sprints, score cible 9.2/10).
- Synthèse Money Management : Documentation d'analyse du système de gestion de l'argent.
Changed
5
- Contexte broker dans l'analyse de configuration : L'analyse LLM récupère maintenant les informations du compte broker (solde, positions, ordres ouverts) pour des recommandations contextualisées.
- Validation broker obligatoire (bloquée si simulateur ou non connecté)
- Exception `BrokerNotAvailableError` pour gestion propre des cas d'indisponibilité
- Template de prompt enrichi : Le template `config_analysis_template.txt` inclut le contexte broker.
- Max tokens augmenté : Passage de 3000 à 4000 tokens pour l'analyse de configuration.
Technical
3
- Bump `microcap-core` vers 0.9.0
- Bump `microcap-admin` vers 0.9.0
- Sprint 1 du roadmap Money Management complété (Kelly auto-enable + Pyramiding)
v0.8.8
2026-01-31
Changed
1
- Menu utilisateur : Refonte du header avec un menu dropdown utilisateur (icône plus grande, email affiché, bouton déconnexion) pour une meilleure expérience utilisateur et préparer l’ajout de futures fonctionnalités utilisateur.
v0.8.7
2026-01-30
Added
1
- Cache-busting : Tous les fichiers JS/CSS statiques incluent maintenant un paramètre de version (`?v=X.Y.Z`) pour forcer le rechargement après chaque mise à jour.
Fixed
1
- Cache mobile agressif : Ajout du middleware Cache-Control avec `max-age=60, must-revalidate` pour les fichiers statiques, résolvant les problèmes de cache sur Chrome mobile.
v0.8.6
2026-01-30
Fixed
1
- Tooltips : Suppression du timer de fermeture automatique (3s) - les popups restent ouvertes jusqu'au clic sur la croix ou ailleurs.
v0.8.5
2026-01-30
Added
1
- Calcul automatique day_pnl : Si le broker ne fournit pas le PnL du jour, il est maintenant calculé automatiquement en comparant l'equity actuelle avec le premier snapshot du jour.
Fixed
1
- Clarification affichage Réalisé/Latent : Le titre de la carte portfolio passe de "Réalisé / Latent" à "PnL Réalisé" pour plus de clarté - seul le réalisé est affiché en valeur principale, le latent restant en sous-titre.
v0.8.4
2026-01-29
Added
3
- Réconciliation ordres DB ↔ Broker : Nouveau module `order_reconciliation.py` qui vérifie la cohérence entre les ordres stockés en base de données et ceux présents sur le broker à chaque `run_daily`.
- Colonnes orders : Ajout de `broker_order_id`, `last_synced_at` et `reconciled` à la table `orders` pour le tracking des ordres.
- Alertes anomalies : Détection automatique des ordres disparus du broker, ordres non trackés en DB, et mismatches de statut.
Changed
2
- Documentation Money Management : Mise à jour complète avec explication détaillée de toutes les 12 techniques de money management implémentées.
- Intégration ordres : Les ordres passés sont maintenant sauvegardés dans PostgreSQL avec leur `broker_order_id` pour permettre la réconciliation.
Technical
3
- Nouvelle migration Alembic `20260129_01_add_broker_order_id.py`
- Bump `microcap-core` vers 0.8.4
- Bump `microcap-admin` vers 0.8.4
v0.8.3
2026-01-29
Added
1
- Synchronisation automatique risk_positions : Les positions broker manquantes sont automatiquement ajoutées à la table `risk_positions` à chaque exécution de `run_daily`, garantissant le fonctionnement du money management.
Fixed
1
- Script sync_risk_positions : Utilise maintenant PostgreSQL au lieu du fichier JSON.
v0.8.2
2026-01-29
Fixed
1
- Health check CI/CD : Augmentation des délais du health check post-déploiement (60s initial + 10 retries x 15s) pour laisser le temps aux migrations Alembic.
v0.8.1
2026-01-28
Fixed
2
- Bug money management : Correction de `cfg.risk` en `config.risk` dans `run_daily.py` - empêchait l'évaluation des sorties automatiques.
- Lecture réponse LLM : Lecture depuis la table `llm_logs` PostgreSQL au lieu du fichier `logs/last_azure_response.txt` inexistant dans Docker.
Changed
2
- Migration persistence PostgreSQL : Le `RiskManager` et le module `coherence_score` utilisent maintenant PostgreSQL au lieu des fichiers JSON pour la persistence des positions de risque et de l'historique des recommandations IA.
- Migrations Alembic automatiques : Les migrations de base de données s'exécutent automatiquement au démarrage du conteneur Docker core.
Added
3
- Tables PostgreSQL : Nouvelles tables `risk_positions` et `ai_recommendation_history` pour la persistence des données du money management.
- Module `risk_persistence` : Nouvelle couche de persistence pour les positions de risque compatible Docker.
- Entrypoint Docker : Script d'entrypoint pour exécuter les migrations Alembic avant le démarrage de l'application.
Technical
2
- Bump `microcap-core` vers 0.8.1
- Bump `microcap-admin` vers 0.8.1
v0.8.0
2026-01-28
Added
1
- Page Changelog : Nouvelle page affichant le changelog du projet avec un parser dédié pour `CHANGELOG.md`.
Changed
2
- Sécurité JWT : Mise à jour des algorithmes JWT et migration vers PyJWT.
- Organisation scripts admin : Réorganisation des scripts et outils d'administration pour une meilleure maintenabilité.
Removed
1
- Script de réinitialisation du mot de passe admin (remplacé par les identifiants de secours).
Technical
2
- Bump `microcap-core` vers 0.8.0
- Bump `microcap-admin` vers 0.8.0
v0.7.0
2026-01-27
Added
6
- Gestion des ordres en attente : Interface utilisateur pour visualiser et gérer les ordres en attente dans le portefeuille.
- Historique des trades : Nouvelle section affichant l'historique complet des transactions effectuées.
- Récupération des activités Alpaca : Implémentation de la récupération des activités de compte via l'API Alpaca.
- Calcul du PnL réalisé : Nouveau module pour calculer le profit/perte réalisé sur les positions fermées.
- Synchronisation des positions existantes : Fonctionnalité de synchronisation des positions pour le money management avancé.
- Scripts d'automatisation : Nouveaux scripts pour exécuter des exits automatiques et synchroniser les positions de risque.
Fixed
2
- Déploiement CI/CD : Préservation des fichiers `.env` existants lors du déploiement pour éviter l'écrasement des configurations locales.
- Healthcheck PostgreSQL : Augmentation de la période de démarrage (`start_period`) pour le contrôle de santé de PostgreSQL.
Tests
1
- Tests unitaires pour vérifier la récupération des activités Alpaca et le calcul du PnL réalisé.
Technical
2
- Bump `microcap-core` vers 0.7.0
- Bump `microcap-admin` vers 0.7.0
v0.6.0
2026-01-25
Added
12
- Module calendrier de marché US : gestion des jours de trading et des horaires d'ouverture/fermeture du marché américain.
- Kelly Criterion : implémentation du critère de Kelly pour le sizing optimal des positions avec calcul des statistiques de trading.
- Analyse du système de money management : évaluation complète du système de gestion de l'argent avec fonctionnalités avancées.
- Gestion avancée de l'argent : trailing stop, détection de stagnation et prise de profit partielle.
- Tooltips contextuels : amélioration de l'expérience utilisateur avec des infobulles explicatives.
- Sources d'actualités financières : prise en charge de Finnhub et NewsAPI pour la récupération des news.
- Contexte portefeuille multi-comptes : snapshots enrichis avec `account_id` et `is_paper` pour distinguer multi-comptes Alpaca et multi-brokers.
- Endpoint admin `GET /portfolio/contexts` pour lister les contextes détectés.
- UI Portefeuille : sélecteur de contexte (avec persistance navigateur) pour filtrer les courbes et métriques.
- Dashboard : affichage du broker/compte « Observé » basé sur le dernier snapshot.
- Application des recommandations : fonctionnalité d'application automatique des recommandations issues de l'analyse de configuration.
- Scripts utilitaires : vérification et réinitialisation des mots de passe utilisateurs admin.
Changed
3
- Endpoints portefeuille (`/portfolio/current`, `/portfolio/history`, `/portfolio/pnl`) acceptent désormais des filtres `broker`, `account_id`, `is_paper`.
- Amélioration de l'interface utilisateur du portefeuille avec options de filtrage et d'exportation.
- Mise à jour des étiquettes des tâches Docker dans `tasks.json`.
Documentation
2
- Mise à jour du guide de configuration locale avec instructions détaillées.
- Ajout de la configuration base de données et tokens admin dans `.env.example`.
Tests
1
- Tests pour la récupération de l'`account_id` Alpaca et la gestion des brokers.
v0.5.0
2025-10-29
Changed
5
- Architecture configuration majeure : PostgreSQL devient la source unique de vérité pour tous les paramètres opérationnels
- Refactorisation complète de `run_daily.py` : signature `main(config: AppConfig)` avec chargement automatique depuis ConfigStore
- Remplacement de 32 appels `os.getenv()` par accès direct à `config.execution`, `config.risk`, `config.liquidity`, `config.coherence`, `config.data`, `config.ia`
- Interface web `/config` désormais pleinement fonctionnelle : les modifications sont immédiatement prises en compte
- Conservation de `os.getenv()` uniquement pour secrets (API keys) et infrastructure (REPO_ROOT, LOG_LEVEL)
Added
5
- Nouveaux champs configuration : Extension du schema pour supporter tous les paramètres de `run_daily.py`
- `DataSettings.ohlcv_enabled`, `ohlcv_lookback_days`, `generate_charts`, `snapshots_enabled`
- `ExecutionSettings.min_quantity`
- Documentation architecture : Création de `docs/CONFIG_DB_ISSUES.md` détaillant le problème résolu et la nouvelle architecture
- Script migration : `scripts/migrate_config_schema.py` pour initialiser la config DB depuis fichiers .env
Fixed
2
- BrokerManager : Lecture de `config.broker.primary` depuis PostgreSQL au lieu de `BROKER` env var
- Docker Compose : Suppression des fichiers `.env.*.example` de la section `env_file` (ne doivent pas être chargés en production)
v0.4.10
2025-10-29
Added
2
- Persistance DB des overrides de jobs : stockage des modifications horaire/intervalle/activation dans la table `job_overrides` (remplacement du fichier JSON) avec migration automatique du fichier legacy si présent.
- Job manuel de test erreurs : ajout du job `test_error_job` pour déclencher des scénarios succès/erreur/délai lors des validations observabilité.
v0.4.9
2025-10-28
Fixed
2
- Dashboard configuration : le diff sélectionné reste lisible sans surbrillance
- Alignement de la couleur du texte du bloc code sur la palette principale de Tabler
v0.4.8
2025-10-28
Fixed
4
- Build Docker Core : Ajustement du contexte de build pour embarquer les prompts
- Dockerfile core copie désormais les fichiers depuis la racine du dépôt
- `docker-compose.yml` et le workflow Raspberry utilisent le contexte racine
- Corrige l'échec `"/prompts": not found` lors du build multi-arch
v0.4.7
2025-10-27
Fixed
5
- Templates de prompts embarqués : Les templates de prompts sont maintenant inclus dans les images Docker
- Ajout de `COPY prompts ./prompts` dans les Dockerfiles core et admin
- Les templates (`daily_template.txt`, `config_analysis_template.txt`, etc.) sont disponibles en production
- Plus de dépendance aux bind mounts pour accéder aux prompts
- Résout les problèmes d'analyse de configuration et de génération de prompts IA en production
v0.4.6
2025-10-27
Fixed
4
- Packaging core : Inclusion du module `microcap_core.data` dans le paquet distribué
- Ajustement de `.gitignore` pour suivre le package `data`
- Ajout des collecteurs et utilitaires (`market_data_collector`, `price_updater`, `snapshot_writer`, etc.)
- Résolution définitive de `No module named 'microcap_core.data'` sur les environnements déployés
v0.4.5
2025-10-24
Fixed
6
- Streaming logs jobs : Réactivation du flux SSE lors des exécutions `run_daily`
- Suppression de la réinitialisation forcée du logger quand le module est importé
- Conservation du comportement standalone via `__main__`
- Normalisation niveaux de logs : Harmonisation des niveaux capturés via stdout/stderr
- Détection des préfixes `INFO:`, `WARNING:` afin d'éviter les faux positifs `ERROR`
- Lisibilité améliorée dans la console Ops et le streaming SSE
v0.4.4
2025-01-24
Fixed
4
- Vrai fix modules manquants : Ajout des fichiers `__init__.py` manquants
- Création de `microcap_core/config/__init__.py` qui empêchait l'inclusion du package
- Retour à installation normale (`pip install .`) au lieu de mode editable
- Résolution définitive de `No module named 'microcap_core.data'`
Technical
2
- Bump `microcap-core` vers 0.4.4 (ajout __init__.py config)
- Bump `microcap-admin` vers 0.4.4
v0.4.3
2025-01-24
Fixed
5
- Modules manquants en production : Correction critique de l'installation du package microcap-core
- Installation en mode editable (`pip install -e .`) dans le Dockerfile
- Garantit l'inclusion de TOUS les sous-modules (`microcap_core.data`, `microcap_core.data.providers`, etc.)
- Résolution de l'erreur `No module named 'microcap_core.data'` sur Raspberry Pi
- Les jobs `run_daily` peuvent maintenant s'exécuter complètement sans erreur d'import
Technical
3
- Bump `microcap-core` vers 0.4.3 (fix installation package)
- Bump `microcap-admin` vers 0.4.3
- Ajout `namespaces = false` dans `[tool.setuptools.packages.find]`
v0.4.2
2025-01-24
Fixed
5
- Démarrage scheduler en production : Correction critique du démarrage du scheduler sur Raspberry Pi
- Utilisation de `uvicorn` CLI au lieu de `uvicorn.run()` dans le Dockerfile
- Garantit l'appel fiable des event handlers `@ops_app.on_event("startup")`
- Les jobs planifiés se chargent maintenant correctement au démarrage du conteneur
- Script `fix_config_portfolio.py` pour migration de configuration legacy vers schéma actuel
Technical
2
- Bump `microcap-core` vers 0.4.2 (fix CMD Dockerfile)
- Bump `microcap-admin` vers 0.4.2
v0.4.1
2025-01-24
Added
4
- Amélioration capture logs jobs : Redirection complète stdout/stderr des jobs vers loguru via StreamToLogger
- Capture des prints et sorties console des jobs dans les logs structurés
- Queue centrale thread-safe pour collecter tous les logs depuis le handler loguru synchrone
- Diffusion temps réel aux clients SSE via queues asyncio dédiées
Changed
3
- Authentification SSE : Nouveau endpoint sécurisé avec token en query parameter
- Fonction `secure_endpoint_with_query_token()` pour valider le token admin via URL
- Support authentification WebSocket et EventSource compatible navigateur
Technical
3
- Bump `microcap-core` vers 0.4.1 (StreamToLogger + queue centrale logs)
- Bump `microcap-admin` vers 0.4.1 (auth SSE par query token)
- Ajout instructions publication version dans `.github/copilot-instructions.md`
v0.3.33
2025-10-16
Technical
1
- Déploiement Raspberry Pi : le workflow GitHub Actions s'exécute désormais pour tout tag SemVer `v*.*.*`, quelle que soit la branche associée.
v0.4.0
2025-01-15
Added
13
- Logging centralisé en base de données : Implémentation complète du système de logs en PostgreSQL
- DatabaseHandler custom pour Loguru avec injection automatique de contexte (request_id, trade_id, job, evt, correlation_id, duration_ms)
- Double sink : fichier JSONL (backup) + PostgreSQL (consultation)
- Modèle `LLMLog` pour tracking des interactions LLM (providers AZURE/OPENAI/DEEPSEARCH)
- Migration Alembic `20251015_01` pour création de la table `llm_logs` avec indexes optimisés
- 3 nouveaux endpoints REST API :
- `GET /logs` : logs applicatifs avec filtres (level, source, hours, limit)
- `GET /logs/llm` : logs LLM avec mode preview
- `GET /logs/llm/{id}` : détail complet d'une interaction LLM
- Interface utilisateur Admin complète avec 2 onglets :
- Application Logs : filtres par niveau/source/période, affichage table avec badges colorés
- LLM Logs : filtres par provider/template, preview table + modal détail avec prompt/response complets
- JavaScript handlers avec auto-chargement, refresh, et gestion des onglets
Changed
4
- LLM clients : Tous les clients (llm_provider_manager, azure_openai_client, openai_client) sauvegardent maintenant en DB au lieu de fichiers texte
- Retour `llm_log_{id}` au lieu de chemin fichier
- Métadonnées enrichies (deployment, endpoint, model, temperature, max_tokens, prompt_length, response_length)
- Navigation Admin : Ajout du lien "Logs" dans la sidebar après "Historique"
Technical
3
- Variables d'environnement : `LOG_DB_ENABLED`, `LOG_FILE`, `LOG_STDOUT`, `LOG_ROTATION`, `LOG_RETENTION`
- Bump `microcap-core` vers 0.4.0 (DatabaseHandler + LLMLog + migration)
- Bump `microcap-admin` vers 0.4.0 (endpoints /logs* + UI logs)
v0.3.32
2025-10-15
Added
5
- Métriques portefeuille étendues : Ajout de 4 nouvelles métriques dans la page portefeuille
- Drawdown actuel (drawdown depuis le dernier pic)
- Ratio Sharpe (rendement ajusté au risque)
- Exposition totale (pourcentage investi)
- Cash disponible (montant de trésorerie)
Changed
6
- Interface utilisateur : Améliorations UX de la page portefeuille
- Graphique d'équité en pleine largeur avec hauteur optimisée (180px)
- Cartes "Changements & drawdown" et "Top expositions" côte à côte (50/50)
- Meilleur équilibre visuel entre les sections
- Branding : Titre de l'application simplifié de "Microcap Admin" à "Microcap"
- Synthèse configuration : Affichage du texte complet au lieu de la version tronquée
Technical
2
- Bump `microcap-core` vers 0.3.25 (calcul drawdown actuel et Sharpe ratio)
- Bump `microcap-admin` vers 0.3.32
v0.3.31
2025-10-15
Added
1
- Synthèse configuration sur le dashboard : nouvelle carte "Configuration active" affichant le broker utilisé, le provider LLM et son modèle, ainsi qu'un extrait de la dernière analyse IA.
Technical
3
- Endpoint authentifié `/config/summary` fournissant un snapshot de configuration et la synthèse LLM
- Bump `microcap-core` vers 0.3.24
- Bump `microcap-admin` vers 0.3.31
v0.3.30
2025-10-15
Fixed
4
- Schéma de configuration vide : Correction du cache LRU qui retournait 0 champs au lieu de 58
- Ajout de `clear_schema_cache()` pour vider le cache au redémarrage du service admin
- L'endpoint `/config/schema` retourne maintenant les 58 champs regroupés en 9 groupes
- Le formulaire de configuration se construit désormais correctement
Improved
6
- Feedback visuel de sauvegarde de configuration : Interface utilisateur améliorée
- Messages avec icônes : ⏳ pendant l'enregistrement, ✅ après succès, ❌ en cas d'erreur
- Changement dynamique du texte du bouton "Enregistrer" pendant la sauvegarde
- Spinner visible pendant l'envoi de la requête HTTP
- Logs de debug dans la console navigateur pour faciliter le troubleshooting
- Messages d'erreur plus explicites avec détails de la réponse serveur
Changed
4
- Détection des modifications : Amélioration de `updateConfigDirtyState()` avec logs
- Le bouton "Enregistrer" s'active automatiquement lors de modifications
- Logs console affichent l'état dirty et le patch à envoyer
- Meilleure traçabilité du workflow de sauvegarde
Technical
2
- Bump `microcap-admin` vers 0.3.30
- Documentation complète dans `docs/notes/config-save-improvements.md`
v0.3.29
2025-10-15
Added
9
- Architecture multi-provider avec fallback : Élimination du SPOF (Single Point of Failure) de Yahoo Finance
- Nouveau module `microcap_core.data.price_fallback` avec 5 fonctions de fallback automatique
- `get_price_with_fallback()` : Prix temps réel (Finnhub → Alpha Vantage → Yahoo)
- `get_historical_data_with_fallback()` : Données OHLCV historiques (Alpha Vantage → Yahoo)
- `compute_addv_with_fallback()` : Calcul ADDV pour liquidité (multi-provider)
- `compute_atr_with_fallback()` : Calcul ATR pour sizing (multi-provider)
- `get_market_cap_with_fallback()` : Market cap (Finnhub → Alpha Vantage → Yahoo)
- Documentation complète dans `docs/architecture/multi-provider-fallback.md`
- Tests unitaires dans `tests/unit/test_price_fallback.py`
Changed
4
- Configuration des sources de données : Déclaration explicite de tous les providers
- `schema.py` : `providers` passe de `["yahoo"]` à `["finnhub", "alpha_vantage", "yahoo", "newsapi"]`
- L'analyse LLM de configuration reflète maintenant l'architecture réelle multi-provider
- Ordre des providers = priorité de fallback
Improved
6
- Résilience des composants critiques : Intégration du fallback multi-provider
- `price_updater.py` : Mise à jour quotidienne des prix avec fallback
- `run_daily.py` : Calcul ADDV (liquidité) avec fallback
- `risk_manager.py` : Calcul ATR (sizing) avec fallback
- `ticker_validator.py` : Validation des tickers avec fallback
- Logs explicites sur le provider utilisé pour chaque donnée
Fixed
3
- Alerte "Forte dépendance à Yahoo" : L'analyse de configuration ne génère plus cette alerte incorrecte
- Le système utilise maintenant 4 sources de données (Finnhub, Alpha Vantage, Yahoo, NewsAPI)
- Yahoo n'est plus un SPOF, c'est un fallback de secours
Technical
5
- Bump `microcap-core` vers 0.3.23
- Bump `microcap-admin` vers 0.3.29
- Nouveau module : `services/core/microcap_core/data/price_fallback.py`
- Nouvelle documentation : `docs/architecture/multi-provider-fallback.md`
- Nouveaux tests : `tests/unit/test_price_fallback.py`
v0.3.28
2025-10-15
Fixed
5
- Template LLM embarqué : Correction du problème des `undefined` dans l'analyse de configuration
- Template de prompt complet copié dans le package `microcap_core/config/`
- Le template est maintenant inclus dans l'image Docker au lieu d'être externe
- Analyse de configuration retourne maintenant toutes les données structurées correctement
- Fix: recherche du template modifiée pour privilégier la version embarquée
Technical
3
- Bump `microcap-core` vers 0.3.22
- Bump `microcap-admin` vers 0.3.28
- Ajout de `config_analysis_template.txt` dans le package core
v0.3.27
2025-10-14
Fixed
4
- Healthcheck Docker : Correction du healthcheck du service core qui échouait avec 401 Unauthorized
- Ajout d'un endpoint public `/health` pour le healthcheck Docker (sans authentification)
- Endpoint `/ops/health` reste protégé par token pour usage interne
- Le conteneur core passe maintenant le healthcheck et le déploiement fonctionne
Technical
2
- Bump `microcap-core` vers 0.3.21
- Bump `microcap-admin` vers 0.3.27
v0.3.26
2025-10-14
Added
4
- Auto-chargement des analyses : L'analyse de configuration se charge automatiquement depuis la base de données au chargement de la page
- Nouvel endpoint GET `/config/analysis/latest` pour récupérer la dernière analyse
- Fonction `loadLatestAnalysis()` appelée automatiquement au chargement de la page Configuration
- Plus besoin de re-cliquer sur "Analyser ma configuration" si une analyse existe déjà
Changed
5
- UX améliorée page Configuration : Simplification et amélioration de l'interface utilisateur
- Suppression du bouton "Historique" redondant (l'historique est déjà visible à droite)
- Boutons responsive : pleine largeur sur mobile, taille automatique sur desktop
- Badges de sévérité avec largeur fixe (90px) pour un meilleur alignement
- Couleurs de badges haute-contraste : Vert (#0ca678), Orange (#f76707), Rouge (#d63939)
Technical
2
- Bump `microcap-admin` vers 0.3.26
- Nettoyage des fichiers `.env` : suppression des paramètres legacy migrés en base de données
v0.3.24
2025-10-14
Fixed
5
- Corrections critiques analyse LLM : Corrections multiples pour rendre opérationnel l'endpoint d'analyse de configuration
- Fix méthode ConfigCache : `get_config()` → `get()` dans scheduler.py
- Fix paramètre save_analysis : `created_by` → `author` pour correspondre à la signature
- Fix appel async : Ajout `async`/`await` pour `analyze_config_with_llm()` dans l'endpoint Ops
- Fix timeout HTTP : Augmentation de 10s → 60s pour laisser le temps au LLM de répondre
Technical
2
- Bump `microcap-core` vers 0.3.20
- Bump `microcap-admin` vers 0.3.24
v0.3.23
2025-01-14
Changed
6
- Refactoring d'architecture : Refactorisation majeure de la fonctionnalité d'analyse de configuration pour respecter la séparation des responsabilités
- Déplacement de l'analyse LLM du service Admin vers le service Core/Ops
- Nouveau endpoint Ops API `/ops/analyze-config` (POST) pour déclencher les analyses
- Endpoint Admin `/config/analyze` modifié pour appeler l'Ops API au lieu du LLM directement
- Persistance des analyses en base de données via la nouvelle table `config_analyses`
- Architecture cible : Frontend → Admin API → Ops API → LLM → Database → Admin lit depuis DB
Added
10
- Stockage des analyses : Nouvelle table `config_analyses` pour persister l'historique des analyses
- Champs : id, config_version, analysis_data (JSON), created_at, created_by
- Indexes sur config_version et created_at pour requêtes efficaces
- Module `analysis_store.py` : Fonctions de persistence et récupération des analyses
- `save_analysis()` : Sauvegarde une analyse en base
- `get_latest_analysis()` : Récupère l'analyse la plus récente
- `get_analysis_by_config_version()` : Récupère l'analyse pour une version de config
- `parse_analysis_data()` : Parse le JSON depuis la base
- Template LLM par défaut : Template d'analyse embarqué comme fallback si le fichier externe n'est pas accessible dans le conteneur Docker
- Migration Alembic : `20250114_add_config_analyses_table` pour créer la table
Technical
4
- Bump `microcap-core` vers 0.3.19
- Bump `microcap-admin` vers 0.3.23
- Ajout de `analyze_config()` au `OpsClient` pour appeler le nouvel endpoint Ops
- Correction des imports dans `analysis_store.py` pour utiliser `session_scope` correctement
v0.3.22
2025-10-14
Fixed
1
- Dépendance openai : Ajout de `openai>=1.0,<2` dans les dépendances du service core pour l'analyse de configuration via LLM
Technical
2
- Bump `microcap-core` vers 0.3.18
- Bump `microcap-admin` vers 0.3.22
v0.3.21
2025-10-14
Fixed
2
- Import matplotlib optionnel : L'import de matplotlib dans `plot_results.py` est maintenant optionnel pour éviter l'erreur lors de l'analyse de configuration en production où matplotlib n'est pas installé
- Gestion gracieuse de l'absence de matplotlib avec messages informatifs
v0.3.20
2025-10-14
Added
17
- Analyse intelligente de configuration : Nouvelle fonctionnalité d'analyse de configuration via LLM sur la page Configuration
- Bouton "Analyser ma configuration" qui génère une synthèse complète de la configuration actuelle
- Analyse structurée en plusieurs sections claires :
- Synthèse générale de la philosophie de configuration
- Niveau de risque global avec facteurs détaillés
- 5-7 paramètres critiques avec leur impact
- Avantages de la configuration actuelle (3-5 points forts)
- Points d'attention et inconvénients (3-5 faiblesses)
- Recommandations d'optimisation priorisées (Haute/Moyenne/Basse)
- Score de cohérence avec détection d'incohérences
- Interface utilisateur moderne avec cartes colorées et badges visuels
- Traitement asynchrone avec indicateurs de chargement et gestion d'erreurs
- Sanitization automatique des secrets avant envoi au LLM
- Endpoint API : `/config/analyze` (POST) pour déclencher l'analyse via le LLM configuré
- Template de prompt : `prompts/config_analysis_template.txt` spécialisé pour l'analyse de configuration
- Module d'analyse : `microcap_admin.config.llm_analyzer` avec fonctions de sanitization et extraction JSON
- Documentation : Guide utilisateur complet dans `docs/setup/config-analysis-guide.md`
Technical
4
- Intégration avec `microcap_core.llm.get_llm_client` pour analyse
- Ajout de styles CSS dédiés pour l'affichage des résultats d'analyse
- Validation structurelle de la réponse JSON du LLM avec gestion des erreurs
- Tests unitaires et d'intégration pour l'analyse de configuration
v0.3.19
2025-10-14
Fixed
1
- UI Admin - Page portefeuille : Ajout d'un délai de 100ms avant `renderHealth()` pour s'assurer que les éléments DOM de la sidebar sont bien chargés avant mise à jour des infos système.
v0.3.18
2025-10-14
Fixed
2
- UI Admin - Page portefeuille : Affichage des informations système (statut Ops connecté/déconnecté, fuseau horaire, version) dans la sidebar même sur la page portefeuille. Le JavaScript charge désormais `/health` pour mettre à jour ces indicateurs.
- Configuration base de données : Correction de l'insertion de la configuration avec dollar quoting PostgreSQL pour éviter l'échappement incorrect des guillemets JSON qui provoquait des erreurs de validation Pydantic.
Added
1
- UI Admin - Gestion des secrets : Ajout de `MICROCAP_ADMIN_ROOT` pointant vers `/opt/microcap-ai` et montage read-only du répertoire projet dans le conteneur admin pour que l'UI puisse lire/écrire les fichiers `.env.*.local` et afficher correctement l'état des secrets configurés.
Technical
1
- Suppression des bind mounts de développement (`./services/admin:/app`) dans `docker-compose.raspi.yml` qui écrasaient le code des images Docker en production
v0.3.17
2025-10-13
Fixed
1
- Force rebuild to fix version deployment issue (Docker cache problem)
v0.3.16
2025-10-12
Fixed
2
- Seuil responsive mode "stack" pour tables administratives augmenté à 768px (au lieu de 560px) pour couvrir tous les appareils mobiles en mode portrait et éviter le scroll horizontal.
- Injection correcte de APP_VERSION et GIT_SHA dans les builds Docker pour affichage précis de la version déployée.
v0.3.15
2025-10-11
Added
5
- Mode mobile "table-stack" (<560px) pour les tables Jobs, Runs, Secrets et Positions portefeuille :
- Suppression de l'en-tête et affichage cartifié des lignes avec labels `data-label`.
- Wrap intelligent des messages d'erreur / code.
- Data-labels injectés dynamiquement côté JS (Jobs, Runs, Portefeuille) pour accessibilité.
- Documentation plan d'itérations responsive `docs/notes/responsive_ui_plan.md`.
Changed
1
- Table positions portefeuille marquée `table-stack` pour cohérence UX mobile.
Technical
1
- Bump `microcap-admin` vers 0.3.15 (itération 2 responsive : tables).
v0.3.13
2025-10-10
Fixed
1
- L'interface admin lit désormais la version depuis `pyproject.toml` lorsque le fichier `/app/VERSION` est absent, garantissant l'affichage correct de la release déployée.
Note
1
- La release `0.3.12` a été taggée mais l'image générée ne contenait pas la correction. Cette version `0.3.13` est la première à embarquer le correctif.
v0.3.12
2025-10-10
Yanked
1
- Version transitoire non déployée (remplacée par `0.3.13`).
v0.3.11
2025-10-10
Added
6
- Job GitHub Actions `cleanup-old-images` pour nettoyage automatique des anciennes images Docker sur ghcr.io après chaque déploiement réussi
- Script `scripts/maintenance/cleanup_ghcr_images.sh` pour nettoyage manuel interactif des images distantes
- Script `scripts/maintenance/prune_docker.sh` pour rétention automatique des images Docker locales
- Script `scripts/maintenance/install_cron.sh` pour installation automatique du cron
- Documentation complète d'entretien Docker (local + distant) dans `docs/maintenance/DOCKER_CLEANUP.md`
- README détaillé pour tous les scripts de maintenance dans `scripts/maintenance/README.md`
Changed
2
- Conservation automatique des 3 dernières versions sémantiques uniquement (local + distant)
- Workflow de déploiement augmenté du job de nettoyage automatique pour éviter saturation quota GitHub
Fixed
3
- Résolution du problème de saturation du quota GitHub (13.5 GB cache + packages) qui bloquait les workflows
- Suppression automatique des images non taguées (dangling) sur ghcr.io
- Libération automatique de l'espace disque après chaque déploiement
v0.3.10
2025-10-09
Changed
2
- Bump versions `microcap-core` et `microcap-admin` à 0.3.10 pour déclencher un déploiement de validation après nettoyage disque et mise en place de la maintenance automatique des images.
- Pas de changement fonctionnel applicatif: build de contrôle et vérification endpoint `/version` sur l'instance Raspberry.
v0.3.9
2025-10-09
Fixed
3
- Déploiement admin ne mettait pas à jour le fichier /app/VERSION (étape RUN non paramétrée dynamiquement) provoquant l'absence de l'endpoint /version sur l'image supposée 0.3.8.
- Ajout d'arguments de build (`APP_VERSION`, `GIT_SHA`, `BUILD_DATE`) et écriture robuste du fichier `/app/VERSION`.
- Pull forcé des images versionnées + `latest` dans `scripts/deploy.sh` pour éliminer les conteneurs obsolètes.
Added
1
- Labels d'image (`app.version`, `git.sha`, `build.date`) facilitant l'observabilité.
v0.3.8
2025-10-09
Ajouté
1
- Endpoint public `/version` (texte brut) sur le service admin pour vérifier rapidement la version déployée sans passer par l'authentification ni la couche Nginx.
Modifié
1
- Incrément de version `microcap-admin` et `microcap-core` vers `0.3.8` pour refléter l'ajout de l'endpoint de diagnostic.
v0.3.7
2025-10-09
Fixed
3
- Z-index sidebar mobile renforcé
- Augmentation du `z-index` de la barre latérale mobile (`900`) pour garantir qu'elle reste au-dessus du contenu
- Assure que le panneau d'overlay reste masqué derrière le menu (overlay toujours à `800`)
v0.3.6
2025-10-09
Fixed
4
- Compatibilité des tags Docker avec le déploiement Raspberry
- Publication automatique des tags `vX.Y.Z`, `vX.Y` et `vX` pour les images `core` et `admin`
- Aligne les tags poussés sur GHCR avec ceux utilisés par `docker-compose` (`v0.3.6`, etc.)
- Évite les erreurs `manifest unknown` et supprime le fallback en build local (qui réutilisait l'ancien cache Docker)
v0.3.5
2025-10-09
Fixed
5
- Désactivation complète du cache Docker
- Ajout de `no-cache: true` dans le workflow GitHub Actions pour forcer la reconstruction complète des images
- Suppression de `cache-from` et `cache-to` (type=gha) qui causait la réutilisation des layers malgré les changements
- Solution définitive au problème de persistance du cache qui affectait toutes les versions v0.3.0 à v0.3.4
- Les modifications CSS (z-index sidebar, responsive logout, footer) seront maintenant correctement déployées
v0.3.4
2025-10-09
Fixed
4
- Invalidation du cache Docker garantie
- Utilisation de `github.run_id` et `github.run_number` pour le BUILD_DATE au lieu du timestamp du commit
- Chaque build GitHub Actions a maintenant un BUILD_DATE unique, forçant la reconstruction
- Fix définitif du problème de cache qui persistait en v0.3.3
v0.3.3
2025-10-09
Fixed
5
- Cache Docker invalidé correctement
- Ajout d'un ARG `BUILD_DATE` dans le Dockerfile admin pour forcer l'invalidation du cache lors de chaque build
- Ajout d'une instruction `RUN echo "Build date: $BUILD_DATE"` AVANT la copie des fichiers pour garantir la reconstruction
- Passage du timestamp du commit dans `BUILD_DATE` via GitHub Actions workflow
- Cette modification force maintenant la reconstruction complète des images à chaque tag, assurant que les modifications CSS sont bien appliquées
v0.3.2
2025-10-08
Fixed
1
- Force la reconstruction des images Docker sans cache pour appliquer les modifications CSS de la v0.3.1
v0.3.1
2025-10-08
Fixed
1
- Correction du z-index de la sidebar mobile pour éviter le chevauchement avec le contenu de la page
v0.3.0
2025-10-08
Ajouté
16
- Interface Admin responsive améliorée
- Menu latéral mobile avec z-index correct pour éviter le chevauchement avec le contenu
- Bouton de déconnexion adaptatif (icône seule sur mobile, texte + icône sur desktop)
- Positionnement du footer système en bas de la barre latérale
- CI/CD automatisé sur Raspberry Pi
- Workflow GitHub Actions `.github/workflows/deploy-raspberry.yml` avec 4 jobs (tests, build multi-arch, deploy, rollback)
- Support déploiement via tags sémantiques (`v*.*.*`) ou branches (`main`, `staging`)
- Builds multi-plateformes (amd64, arm64) avec push automatique vers GHCR
- Backups PostgreSQL automatiques avant chaque déploiement avec rollback en cas d'échec
- Health checks post-déploiement pour validation automatique
- Documentation CI/CD complète
- `docs/setup/QUICKSTART_CICD.md` : Guide de démarrage rapide (30 min)
- `docs/setup/CICD_STRATEGY.md` : Stratégie de déploiement détaillée (tags vs branches, workflows, best practices)
- `docs/setup/RUNNER_SETUP.md` : Installation du GitHub Actions runner sur Raspberry Pi (sécurité, monitoring, multi-runners)
- `docs/setup/SECRETS_SETUP.md` : Configuration des secrets GitHub (rotation, environments, troubleshooting)
- `docs/setup/DEPLOYMENT_RASPBERRY.md` : Guide de déploiement manuel existant (référence)
Modifié
2
- `README.md` : Ajout de la section CI/CD dans la documentation complémentaire avec liens vers les nouveaux guides
- `docs/NEXT_STEPS.md` : Mise à jour complète de l'avancement (Phase 2 à 100%, Dashboard Portefeuille terminé, Documentation synchronisée)
Supprimé
1
- Documentation roadmap `docs/roadmap/RESTRUCTURATION_COMPLETE.md`, désormais obsolète après finalisation de la réorganisation.
v0.1.0
2025-10-07
Ajouté
5
- Service core `microcap-core` orchestrant les jobs APScheduler avec persistance PostgreSQL et intégration brokers (simulateur, IBKR, Alpaca).
- Service admin `microcap-admin` (FastAPI) offrant configuration versionnée, gestion des secrets en écriture seule et supervision temps réel des jobs.
- Timeline visuelle des jobs ainsi que l'export CSV/JSON des runs côté interface opérateur.
- Pipeline IA micro-cap (analyse quotidienne, RAG, recommandations) et scripts d'automatisation pour exécution locale.
- Documentation structurée (`docs/`, `prompts/`) couvrant architecture, configuration et plans de développement.