Skip to content

Latest commit

 

History

History
400 lines (338 loc) · 24.3 KB

File metadata and controls

400 lines (338 loc) · 24.3 KB

Changelog

[1.7.3] - 2025-05-13

Fixed

  • Conformité stricte JSON-RPC 2.0 pour le mode MCP:
    • Implémentation de la fonction mcpLog pour une gestion standardisée des logs en mode MCP
    • Remplacement de tous les console.error par des logs conformes au protocole JSON-RPC
    • Format homogène pour toutes les sorties du serveur MCP
  • Détection intelligente des modes CLI et MCP:
    • Préservation du fonctionnement CLI même avec MCP_EXECUTION=true ou --mcp
    • Activation du mode MCP uniquement quand nécessaire
  • Problèmes de linting dans les tests:
    • Correction des apostrophes françaises dans les fichiers de test
    • Résolution des erreurs de parsing liées aux caractères accentués

[1.7.2] - 2025-05-12

Fixed

  • Correction du mode MCP pour generateFeature:
    • Amélioration de la fonction adaptResultForMarkdown pour extraire correctement les user stories quelle que soit leur structure
    • Renforcement de la fonction createRule3Structure avec gestion d'erreurs détaillée et logs de diagnostic
    • Résolution des problèmes de création de la structure RULE 3 pour les features générées via MCP
    • Compatibilité multi-LLM améliorée pour le traitement des formats de données variables
  • Résolution du problème d'ouverture de Notepad sur Windows:
    • Normalisation des flux stderr/stdout en mode MCP pour éviter l'ouverture involontaire d'applications externes
    • Détection intelligente du mode MCP qui préserve le fonctionnement du CLI
    • Désactivation des codes couleur ANSI en mode MCP pour une meilleure compatibilité multiplateforme
    • Forcing du mode MCP avec --mcp ou MCP_EXECUTION=true lorsqu'aucune commande CLI spécifique n'est demandée

Improved

  • Robustesse du système de génération:
    • Logs de diagnostic détaillés pour faciliter l'identification des problèmes en mode MCP
    • Fallbacks et validations robustes des paramètres d'entrée
    • Sauvegarde des fichiers d'information pour référence et débogage
    • Meilleure traçabilité de l'exécution en mode MCP

[1.7.1] - 2025-05-12

Refactor

  • Réduction de la complexité cognitive dans le code critique:
    • Refactorisation de json-parser.js pour réduire la complexité cognitive de 31 à < 15 (lint ID: 4aef1b1a-e476-4b16-8ae0-5da4f62d9058)
    • Refactorisation de _createRule3Structure dans mcp-router.js en 6 sous-fonctions avec responsabilités uniques (lint ID: 6e6877fb-de75-4a5b-9376-41bab2df4a4b)
    • Amélioration de la robustesse de server/index.js avec gestion optimisée des erreurs et chaînage optionnel (?.) (lint ID: 2a5bf084-b3b6-46ad-9e0e-68205cc8bc7c)

Improved

  • Validation de la structure RULE 3 dans l'interface MCP:
    • Test réussi avec test-mcp-rule3.js validant la création correcte de la structure de dossiers
    • Optimisation de test-mcp-rule3.js avec les nouveaux utilitaires MCP (nettoyage automatique des ressources)
    • Conformité complète avec la spécification RULE 3 pour tous les modes d'exécution
  • Amélioration de la suite de tests:
    • Création d'utilitaires dédiés aux tests MCP dans tests/utils/mcp-test-utils.js
    • Optimisation des tests d'intégration pour éviter les fuites de processus et améliorer la fiabilité
    • Script d'exécution ciblée des tests critiques avec scripts/run-critical-tests.js
    • Stratégie de test en deux niveaux (tests critiques et tests alternatifs)

Documentation

  • Refonte majeure de la documentation architecture:
    • Création de docs/architecture/mcp-server-architecture.md pour détailler l'architecture MCP complète
    • Ajout de docs/architecture/markdown-generation.md documentant le système de génération markdown
    • Création de docs/guides/mcp-integration.md pour faciliter l'intégration avec les clients MCP
    • Mise à jour de docs/development/testing-guide.md pour inclure les tests MCP end-to-end
    • Ajout de diagrammes Mermaid pour visualiser l'architecture et les flux MCP
    • Mise à jour des dates de modification dans tous les documents
  • Nouvelle documentation de développement:
    • Création de docs/development/KNOWN_ISSUES.md listant tous les problèmes connus et la dette technique
    • Création de docs/development/REFACTORING-PLAN.md avec un plan détaillé de refactorisation TDD
    • Création de docs/development/TEST-REFACTORING.md détaillant les tests à corriger
    • Création de docs/development/ROADMAP.md avec la feuille de route des versions futures
  • Mise à jour des commentaires JSDoc dans les fichiers refactorisés
  • Documentation du pattern d'extraction de méthode appliqué pour réduire la complexité cognitive
  • Amélioration de la tracabilité des erreurs dans les logs
  • Suppression des documents obsolètes et archivage du plan de refactorisation original
  • Conformité complète avec RULE 2 (documentation complète avant commit)

[1.7.0] - 2025-05-12

Refactor

  • Modularisation complète du CLI:
    • Réduction de cli.js de 608 lignes à 31 lignes (bien en-dessous de la limite de 500 lignes)
    • Création d'une structure modulaire avec séparation claire des responsabilités :
      • cli/index.js (85 lignes) - Point d'entrée et coordination
      • cli/utils.js - Utilitaires et fonctions de support CLI
      • cli/backlog.js - Génération de backlogs
      • cli/feature.js - Génération de features
    • Maintien de la rétro-compatibilité avec l'API existante via un module de compatibilité

Improved

  • Améliorations de robustesse:
    • Gestion intelligente du client API entre les différents modes d'exécution
    • Correction du problème avec backlog-last-dump.json pour les tests et audits
    • Meilleure gestion des fichiers générés avec l'option auditMode
    • Support des trois modes de fonctionnement : CLI interactif, CLI non-interactif, MCP (stdio)

Added

  • Tests d'intégration améliorés:
    • Test d'intégration end-to-end pour le mode CLI
    • Test d'intégration end-to-end pour le mode MCP (stdio)
    • Tests pouvant être exécutés en mode rapide ou complet via la variable d'environnement SKIP_INTEGRATION

Documentation

  • Documentation complète des modules CLI avec JSDoc
  • Mise à jour des commentaires pour refondation syntaxe moderne
  • Amélioration de la lisibilité du code et des messages logs

[1.6.2] - 2025-05-12

Refactor

  • Réduction de complexité cognitive:
    • Refactorisé la méthode handleInvoke dans mcp-server.js en extrayant trois méthodes privées (_handleToolNotFound, _sendSuccessResponse, _handleToolExecutionError) pour améliorer la lisibilité et la maintenabilité.
    • Refactorisé la fonction handleToolsCall dans mcp-router.js en extrayant trois méthodes (_extractToolParams, _getToolHandler, _handleToolError) pour réduire sa complexité cognitive.
    • Refactorisé la fonction handleGenerateBacklog dans mcp-router.js en extrayant trois méthodes auxiliaires (_cleanupApiClient, _prepareBacklogResponse, _handleBacklogGenerationError).
    • Refactorisé la fonction _cleanupApiClient en extrayant des sous-fonctions (_resetClientProperties, _forceGarbageCollection) pour réduire sa complexité.
    • Refactorisé la fonction initializeYargs dans server/index.js en extrayant des fonctions dédiées pour chaque commande et configuration.
    • Amélioré la méthode extractBacklogData dans schema-validator.js en extrayant des méthodes privées (_isWrapperMCP, _logExtractionDebug) et en ajoutant une documentation claire.

Documentation

  • Mise à jour de la documentation dans les fichiers refactorisés pour améliorer la compréhension du code.
  • Ajout de commentaires explicatifs pour les nouvelles méthodes extraites.

[1.6.1] - 2025-05-11

Fixed

  • Refactored parseJsonResponse function in server/lib/utils/json-parser.js to significantly reduce its Cognitive Complexity from 31 to within acceptable limits (target < 15). This was achieved by extracting parsing logic into helper functions (tryDirectParse, tryParseFromMarkdown, tryParseFirstJsonObject) and iterating through them. This improves code maintainability and readability. (Related to lint ID: 4aef1b1a-e476-4b16-8ae0-5da4f62d9058)
  • MCP E2E Test (tests/integration/mcp.e2e.test.js):
    • Corrected assertions for the generateBacklog command to align with actual output:
      • Updated expected success message to French: "Backlog généré avec succès".
      • Removed incorrect assertion for result.outputPath (validated by file system checks).
    • Ensured robust error handling for file system assertions by wrapping them in a try...catch block and properly calling done(error).
    • Reinstated a missing check for the existence of backlog.json in the output directory.
    • These changes resolved persistent test failures and ensure reliable testing of the generateBacklog MCP stdio interface.

[1.6.0] - 2025-05-11

Fixed

  • MCP generateBacklog (stdio Interface):
    • Resolved chalk is not defined error in server/lib/mcp-router.js by restoring missing require statements.
    • Fixed TypeError: ToolExecutionError is not a constructor and Right-hand side of 'instanceof' is not an object in server/lib/mcp-router.js by correctly handling the direct JSON data return from backlog-generator.js.
    • Ensured full and correct generation of all markdown files (epic.md, feature.md, [story-slug].md) and directory structure according to RULE 3 when invoked via MCP stdio.
    • Corrected the output path for backlog-last-dump.json to be saved in the root of the specified output path, aligning behavior with CLI and fixing MEMORY[1045ac32-1491-4647-a1eb-9e920a769771] and MEMORY[e599048a-f87f-4c93-8816-ad563570cc62].
    • Overall stability and output consistency of the MCP stdio generateBacklog process significantly improved, now matching CLI output.

[1.5.0] - 2025-05-11

Fixed

  • Markdown Output Structure:
    • Corrected path generation in server/lib/markdown/index.js to prevent nested .agile-planner-backlog/.agile-planner-backlog directories.
    • Ensured epics and orphan-stories folders are created directly under the main .agile-planner-backlog directory, removing the intermediate project slug folder, to comply with RULE 3.
  • Markdown Generation Error:
    • Resolved TypeError: userStoryMap.set is not a function in server/lib/markdown/index.js by correctly initializing userStoryMap as new Map().

Refactor

  • Linting:
    • Removed redundant try...catch block around fs-extra.ensureDirSync in server/lib/cli.js to allow error propagation.
    • Refactored a console.log statement in server/lib/markdown/index.js to avoid nested template literals.

[1.4.6] - 2025-05-11

Refactoring et robustesse

  • Centralisation de la gestion d’erreur dans generateBacklog et generateBacklogDirect via handleBacklogError
  • Plus aucune duplication de logique d’erreur
  • Robustesse et conformité TDD renforcées
  • README mis à jour pour documenter le format d’erreur unifié
  • Nécessite la mise à jour des tests d’intégration si des assertions vérifient le format d’erreur

[1.4.5] - 2025-05-10

Refactoring et documentation

  • Ajout des tests d’intégration end-to-end :
    • tests/integration/cli.e2e.test.js (mode CLI)
    • tests/integration/mcp.e2e.test.js (mode MCP stdio)
  • Documentation d’architecture complète Mermaid (macro et modules détaillés)
  • Suppression de toute référence à MVP, itérations, scripts obsolètes dans la doc
  • Alignement strict avec la RULE 3 (structure backlog = epics/features/user-stories/orphan-stories)
  • Mise à jour des exemples et guides utilisateur

[1.4.4] - 2025-05-10

Réorganisation du Projet et Amélioration de la Maintenance

  • ✅ Restructuration complète du projet pour améliorer la maintenabilité
  • ✅ Réorganisation de la documentation dans des répertoires dédiés (guides, development, api, architecture)
  • ✅ Déplacement des fichiers de test vers les répertoires appropriés (tests/mock)
  • ✅ Implémentation de l'association intelligente des features avec les epics existantes
  • ✅ Création d'un plan de réorganisation détaillé dans docs/reorganisation-plan.md
  • ✅ Mise à jour du README principal pour refléter la nouvelle structure
  • 📝 Documentation améliorée de la navigation entre les différents documents

Correction complète des Tests - Approche TDD Wave 8

  • ✅ Création de 9 nouveaux tests ultra-minimaux selon l'approche TDD Wave 8
    • validators-factory.ultra-minimal.test.js
    • errors.ultra-minimal.test.js
    • backlog-generator.minimal.test.js
    • epic-formatter.ultra-minimal.test.js
    • schema-validator.ultra-minimal.test.js
    • mcp-router.ultra-minimal.test.js
    • cli.ultra-minimal.test.js
    • format-user-story.ultra-minimal.test.js
    • rule3-structure.test.js - Test de validation de la structure RULE 3
  • ✅ Développement de scripts d'automatisation pour la correction des tests et la validation de structure:
    • fix-tests.js - Correction automatique des chemins d'importation
    • fix-jest-syntax.js - Correction automatique de la syntaxe Jest 29.7.0
    • fix-module-imports.js - Correction des imports directs depuis les modules source
    • verify-rule3-structure.js - Vérification et création automatique de la structure RULE 3
  • ✅ Création de tests super-minimaux pour isoler efficacement les problèmes :
    • backlog-super-minimal.test.js - Test de validation de la structure du module sans dépendances
    • backlog-ultra-mini.test.js - Test avec mocks pour isoler les dépendances problématiques
  • ✅ Résolution de plus de 60 chemins d'importation incorrects après la réorganisation
  • ✅ Correction des variables avec tirets (transformation en camelCase)
  • ✅ Documentation détaillée du processus de correction dans docs/development/test-fix-plan.md
  • ✅ Mise à jour de TEST-ROADMAP.md avec les progrès réalisés (71,2% des composants critiques testés)

Améliorations et corrections

  • ✅ Création d'utilitaires dédiés pour la manipulation de fichiers (file-utils.js)
  • ✅ Application des principes SOLID dans la réorganisation du code
  • ✅ Suppression des fichiers temporaires et redondants
  • ✅ Automation complète de la structure RULE 3 pour la génération de backlog
    • Script verify-rule3-structure.js pour vérification et création automatique
    • Test unitaire rule3-structure.test.js pour validation
    • Création correcte des fichiers .md dans les répertoires appropriés
  • ✅ Association intelligente de features aux epics appropriées
  • ✅ Correction des problèmes d'import via modules façade dans les tests
    • Résolution du problème dans format-user-story.test.js
    • Import direct depuis les modules sources pour éviter les conflits de mock
  • ✅ Identification et documentation des problèmes fondamentaux de tests
    • Syntaxe obsolète des mocks Jest (resolves()mockResolvedValue())
    • Importations via modules façade causant des problèmes avec les mocks

[1.4.3] - 2025-05-09

TDD Wave 8 - Compatibilité Multi-LLM & Structure RULE 3

  • ✅ Correction systématique des tests pour Jest 29.7.0 (.resolves().mockResolvedValue() et .returns().mockReturnValue())
  • ✅ Implémentation des tests ultra-minimaux pour tous les composants critiques (10 fichiers)
  • ✅ Test dédié multi-llm-compatibility.ultra-minimal.test.js pour valider la compatibilité Windsurf, Claude et Cursor
  • ✅ Correction du bug dans feature-generator.js qui causait des erreurs en cascade
  • ✅ Résolution de l'erreur truncatedOutput is not defined dans les scripts de test
  • ✅ Correction de la génération de fichiers selon la structure RULE 3 (.agile-planner-backlog/)
  • ✅ Résolution du problème de chemin de sortie (outputPath) ignoré lors de la génération
  • 📝 Documentation complète des progrès de compatibilité dans MULTI_LLM_COMPATIBILITY.md
  • 📝 Stratégie de test documentée dans TEST-ROADMAP.md avec les étapes de résolution

Tests TDD pour structure RULE 3

  • ✅ Création de tests spécifiques pour valider la structure RULE 3 (rule3-structure.test.js)
  • ✅ Test MCP dédié pour vérifier le respect de la structure avec paramètre outputPath
  • ✅ Intégration des tests selon la méthodologie TDD (tests écrits avant l'implémentation)
  • ✅ Double génération de backlog.json pour compatibilité optimale (chemin utilisateur + structure RULE 3)

Qualité du code

  • ✅ Application de l'opérateur de coalescence nullish (??) pour améliorer la lisibilité
  • ✅ Correction des problèmes de linting dans les tests et scripts
  • ✅ Restructuration du script run-final-tests.js pour une meilleure robustesse
  • ✅ Utilisation des optional chaining pour améliorer la qualité du code

[1.1.6] - 2025-05-08

Amélioré

  • Compatibilité multi-LLM assurée pour:
    • Windsurf (PRIORITÉ 1)
    • Claude.ai (PRIORITÉ 2)
    • Cursor (PRIORITÉ 3)
  • Tests MCP corrigés et améliorés
  • Nettoyage des mocks entre les tests
  • Test spécifique de compatibilité multi-LLM ajouté

Corrigé

  • Problèmes de linting dans les scripts
  • Erreurs dans les tests MCP
  • Format des réponses JSON-RPC pour conformité MCP
  • Agile Planner MCP Server

[1.4.2] - 2025-05-08

TDD Wave 8 - Approche critique

  • Tests ultra-minimaux pour les 5 composants les plus critiques
  • Validation complète du routeur MCP et de la conformité Context7
  • Stratégie incrémentale pour améliorer progressivement la couverture de tests
  • Identification et suppression des tests obsolètes (tests/e2e/cli.test.js)
  • Audit complet de l'architecture avec rapports détaillés dans le dossier 'reports/'

[1.4.1] - 2025-05-08

MCP Context7 & Test Validation

  • Validation complète de la conformité au protocol MCP selon les standards Context7
  • Tests isolés ultra-minimaux pour garantir la robustesse des composants critiques
  • Vérification systématique de la gestion des erreurs MCP (validation des paramètres et formats de réponse)
  • Correction des problèmes de linting dans les scripts de validation
  • Création de scripts d'exécution ciblés pour les tests critiques (run-critical-tests.js)
  • Documentation complète de la validation MCP dans le guide de test

[1.4.0] - 2025-05-08

TDD Wave 8 - Refactorisation des tests

  • Standardisation des mocks pour tous les tests: création de setupTests.js centralisé avec mocks communs
  • Configuration optimisée de Jest pour éviter les conflits entre les différentes options (resetMocks, restoreMocks, clearMocks)
  • Nouveau script d'exécution test:wave8 garantissant la cohérence entre npm test et npx jest
  • Stratégie d'isolation des tests documentée dans test-resolution-strategy.md
  • Résolution méthodique des conflits entre sinon et jest pour les mocks
  • Robustesse des tests unitaires : mocks explicites OpenAI et Groq avec baseURL, reset des mocks entre sous-tests
  • Correction du nom de la fonction mockée (deliver_backlog)

v1.3.3 (2025-05-08)

Tests & Qualité

  • Refactorisation complète des tests unitaires conformément aux principes Wave 8
  • Standardisation des mocks pour les dépendances externes (fs-extra, chalk, etc.)
  • Correction systématique des chemins d'importation pour la nouvelle structure
  • Réorganisation hiérarchique des tests en modules (validators, formatters, utils, generators)
  • Isolation stricte des tests unitaires pour assurer leur fiabilité et leur maintenabilité
  • Uniformisation des patterns d'assertion pour mieux identifier la source des erreurs
  • Création d'un plan de refactorisation détaillé conforme à TDD Wave 8 (dans test-refactoring-plan.md)
  • Mise à jour du guide de test avec la stratégie de résolution TDD Wave 8

v1.3.1 (2025-05-08)

Ajouté

  • Documentation détaillée sur la convention d'import des modules dans les tests (README du dossier tests)
  • Tests ultra-minimaux pour les composants les plus critiques
  • Guide complet pour les contributeurs (CONTRIBUTING.md)
  • Exemples de documentation avec Mermaid pour visualiser l'architecture
  • Support pour la nouvelle syntaxe des mocks Jest 29.7.0

Amélioré

  • Réduction de la duplication de code dans les tests
  • Isolation explicite des tests pour éviter les effets de bord
  • Réduction de la complexité cognitive des fonctions de test
  • Meilleure organisation des fixtures de test
  • Optimisation des imports dans les fichiers de test

Corrigé

  • Problème de double import dans les tests
  • Erreurs liées aux mocks de fs-extra
  • Dépendances circulaires entre les modules
  • Variables inutilisées et problèmes de linting
  • Correction des variables inutilisées et optimisation des closures
  • Résolution de problèmes de qualité de code signalés par l'IDE

v1.2.3 (2025-05-08)

Améliorations

  • Support complet des formats backlog 'epic' (singulier) et 'epics' (pluriel)
  • Normalisation automatique des backlogs pour garantir la rétrocompatibilité
  • Refactorisation des validateurs pour réduire la complexité cognitive
  • Meilleure gestion des erreurs dans la validation des objets imbriqués
  • Amélioration des messages d'erreur pour faciliter le débogage
  • Compatibilité complète avec les spécifications MCP 2025
  • Documentation détaillée sur l'utilisation et la configuration
  • Outils de conversion pour les backlogs existants
  • Meilleure organisation des modules pour faciliter la maintenance
  • Configuration des tests unitaires pour garantir la qualité du code
  • Optimisation du générateur de backlog pour améliorer les performances
  • Amélioration du routeur MCP pour une meilleure gestion des requêtes
  • Mise à jour de l'index principal pour une meilleure intégration
  • Amélioration des exemples d'user stories pour une meilleure compréhension
  • Ajout d'exemples de migration pour faciliter la transition vers le nouveau système
  • Mise à jour des tests pour assurer la qualité du code

v1.2.1 (2023-11-20)

Améliorations

  • Refactorisation du système de validation avec le pattern Strategy
  • Création de validateurs spécialisés pour chaque entité (UserStory, Feature, Epic, Iteration, Backlog)
  • Implémentation d'une Factory pour faciliter l'accès aux validateurs
  • Documentation du pattern Strategy dans design.md
  • Amélioration de la couverture de tests (100% pour les nouveaux validateurs)
  • Ajout d'exemples d'utilisation des validateurs dans examples/validators-usage.js
  • Ajout d'un exemple d'intégration progressive dans examples/migration-integration.js
  • Création d'un guide de test (TESTING-GUIDE.md) pour clarifier l'utilisation de npm test et npx jest
  • Identification des fichiers obsolètes dans OBSOLETE-FILES.md pour faciliter le nettoyage futur

Corrections

  • Amélioration de la précision des messages d'erreur pour les validateurs
  • Réduction de la complexité cognitive dans plusieurs fonctions
  • Compatibilité avec l'ancien système de validation pour faciliter la migration progressive
  • Réduction de la complexité cognitive des fonctions de validation
  • Documentation complète de l'architecture des validateurs dans server/lib/utils/validators/README.md

v1.2.0 (2025-05-06)

Nouvelles fonctionnalités

  • Implémentation de la structure hiérarchique epic > feature > user story
  • Ajout de métadonnées et d'instructions AI pour faciliter le travail collaboratif avec les IA

Améliorations

  • Refactorisation majeure du module markdown-generator pour améliorer la maintenabilité et la robustesse
  • Division du module monolithique (1124 lignes) en 7 modules spécialisés respectant la limite de 500 lignes par fichier
  • Préservation complète de la structure hiérarchique lorsqu'elle est appelée via l'outil MCP generateBacklog
  • Ajout de la licence MIT avec clause Commons sur le modèle de claude-task-master
  • Mise à jour des changelogs pour correspondre précisément à la version actuelle
  • Création d'exemples détaillés dans le dossier examples/ montrant le format exact des sorties
  • Enrichissement de la documentation dans les README en anglais et français
  • Ajout de liens vers le guide d'utilisation optimal (OPTIMAL_USAGE_GUIDE.MD)

Corrections

  • Correction d'un problème critique dans la fonction generateMarkdownFilesFromResult empêchant la création correcte des liens entre fichiers
  • Normalisation des chemins relatifs pour assurer la compatibilité cross-platform
  • Résolution d'un problème d'encodage des caractères spéciaux dans les fichiers markdown
  • Amélioration de la robustesse des appels MCP
  • Gestion de l'ID unique pour les entités (forced 'lowercase')
  • Tests unitaires pour tous les composants (story, feature, epic, iteration, MVP)