Changelog
Historique des modifications et nouvelles fonctionnalités.
56 versions
0.8.8
Version actuelle
2026-01-31
Dernière release
56
Versions publiées
vUnreleased
Aucun changement documenté.
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.