Microcap

Console de supervision micro-cap

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.