Corrections majeures:
- Digital Ocean: Récupération réelle XML depuis /wp-content/XML/ (86k chars au lieu de mock 1k)
- Nettoyage tags: Suppression <strong> dans extractElements() pour éviter parsing errors
- Doublons résilients: Tolérance doublons XML avec validation tags uniques
- Hiérarchie complète: StepExecutor génère 36 éléments depuis hierarchy.originalElement.name
- Format Google Sheets: Adaptation colonnes selon useVersionedSheet (17 legacy vs 21 versioned)
- Range Google Sheets: Force A1 avec INSERT_ROWS pour éviter décalage U:AO
- xmlTemplate optimisé: Exclusion du JSON metadata pour limite 50k chars
Résultat: 2151 mots, 36 éléments, sauvegarde correcte A-Q
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Combines two parallel developments:
1. Remote: API setup base (326a6a5) with new /api/generate-simple endpoint
2. Local: Main.js/StepExecutor alignment for production consistency
Key technical improvements:
- Main.js: Migrated from generateSimple() to StepExecutor.executeInitialGeneration()
- StepExecutor: Fixed to respect HTML options (selectiveStack, adversarialMode, etc.)
* executeSelective() now uses applyPredefinedStack() with specific stack
* executeAdversarial() uses proper mode mapping (light→lightDefense, etc.)
* executeHumanSimulation() uses applyPredefinedSimulation() with mode
* executePatternBreaking() uses applyPatternBreakingStack() with mode
- Updated process_real.js and DigitalOceanWorkflow.js to use handleModularWorkflow()
- Removed legacy ManualTrigger.js (Apps Script compatibility)
This ensures 100% consistency between step-by-step debugging interface and
automated Main.js workflow, while preserving the new API functionality.
Both development paths now use identical, tested and validated functions.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>