Backend Go: - Remplacement complet des anciennes migrations par la base V1 alignée sur ORIGIN. - Durcissement global du parsing JSON (BindAndValidateJSON + RespondWithAppError). - Sécurisation de config.go, CORS, statuts de santé et monitoring. - Implémentation des transactions P0 (RBAC, duplication de playlists, social toggles). - Ajout d’un job worker structuré (emails, analytics, thumbnails) + tests associés. - Nouvelle doc backend : AUDIT_CONFIG, BACKEND_CONFIG, AUTH_PASSWORD_RESET, JOB_WORKER_*. Chat server (Rust): - Refonte du pipeline JWT + sécurité, audit et rate limiting avancé. - Implémentation complète du cycle de message (read receipts, delivered, edit/delete, typing). - Nettoyage des panics, gestion d’erreurs robuste, logs structurés. - Migrations chat alignées sur le schéma UUID et nouvelles features. Stream server (Rust): - Refonte du moteur de streaming (encoding pipeline + HLS) et des modules core. - Transactions P0 pour les jobs et segments, garanties d’atomicité. - Documentation détaillée de la pipeline (AUDIT_STREAM_*, DESIGN_STREAM_PIPELINE, TRANSACTIONS_P0_IMPLEMENTATION). Documentation & audits: - TRIAGE.md et AUDIT_STABILITY.md à jour avec l’état réel des 3 services. - Cartographie complète des migrations et des transactions (DB_MIGRATIONS_*, DB_TRANSACTION_PLAN, AUDIT_DB_TRANSACTIONS, TRANSACTION_TESTS_PHASE3). - Scripts de reset et de cleanup pour la lab DB et la V1. Ce commit fige l’ensemble du travail de stabilisation P0 (UUID, backend, chat et stream) avant les phases suivantes (Coherence Guardian, WS hardening, etc.).
254 lines
6.4 KiB
Markdown
254 lines
6.4 KiB
Markdown
# PHASE 0: ERROR RESOLUTION - Guide de Démarrage
|
|
|
|
## 🎯 Objectif
|
|
|
|
Corriger **TOUTES** les erreurs existantes dans le codebase avant de reprendre l'implémentation des 2100+ tâches restantes. Cette phase garantit une base stable et fonctionnelle.
|
|
|
|
## ⚡ Démarrage Rapide (5 minutes)
|
|
|
|
### 1. Découvrir les Erreurs
|
|
|
|
```bash
|
|
cd /home/senke/Documents/veza-full-stack
|
|
./scripts/discover-errors.sh
|
|
```
|
|
|
|
Ce script va :
|
|
- Compiler le backend Go
|
|
- Compiler le frontend React
|
|
- Exécuter tous les tests
|
|
- Générer un rapport détaillé
|
|
|
|
### 2. Consulter le Résumé
|
|
|
|
```bash
|
|
# Trouver le dernier rapport
|
|
ls -lt docs/ORIGIN/error-logs/summary-*.md | head -1
|
|
|
|
# L'afficher
|
|
cat docs/ORIGIN/error-logs/summary-XXXXXXXX-XXXXXX.md
|
|
```
|
|
|
|
### 3. Mettre à Jour le Registre
|
|
|
|
Éditer `docs/ORIGIN/ORIGIN_ERROR_REGISTRY.md` avec toutes les erreurs découvertes.
|
|
|
|
### 4. Corriger par Priorité
|
|
|
|
```bash
|
|
# Ordre: P0 → P1 → P2 → P3
|
|
# Voir ORIGIN_IMPLEMENTATION_TASKS.md (section PHASE 0)
|
|
# Commencer par TERR-001
|
|
```
|
|
|
|
### 5. Valider et Recommencer
|
|
|
|
Après chaque correction :
|
|
|
|
```bash
|
|
# Recommencer la découverte pour voir la progression
|
|
./scripts/discover-errors.sh
|
|
|
|
# Vérifier que le nombre d'erreurs diminue
|
|
```
|
|
|
|
## 📚 Documentation Complète
|
|
|
|
| Document | Description |
|
|
|----------|-------------|
|
|
| **ORIGIN_ERROR_RESOLUTION_STRATEGY.md** | Stratégie complète de résolution |
|
|
| **ORIGIN_ERROR_REGISTRY.md** | Registre de toutes les erreurs |
|
|
| **ORIGIN_IMPLEMENTATION_TASKS.md** | Tâches TERR-XXX détaillées |
|
|
| **ORIGIN_CODE_STANDARDS.md** | Standards à respecter |
|
|
| **ORIGIN_MASTER_ARCHITECTURE.md** | Architecture de référence |
|
|
|
|
## 🔍 Erreurs Actuellement Identifiées
|
|
|
|
Au moment de la création de cette phase (2025-01-XX), **4 erreurs P0** ont été identifiées :
|
|
|
|
1. **TERR-001** : Packages manquants dans backend API router (P0, 2-4h)
|
|
2. **TERR-002** : Cycle d'imports dans internal/config (P0, 2-3h)
|
|
3. **TERR-003** : Docker daemon non démarré (P0, 15min)
|
|
4. **TERR-004** : Erreur de syntaxe YAML dans docker-compose.yml (P0, 5min)
|
|
|
|
**Temps estimé total P0** : ~5-8 heures
|
|
|
|
## 📋 Checklist de la Phase 0
|
|
|
|
### Avant de Commencer
|
|
|
|
- [ ] Lire `ORIGIN_ERROR_RESOLUTION_STRATEGY.md`
|
|
- [ ] Comprendre les catégories d'erreurs (CAT-XX)
|
|
- [ ] Comprendre les priorités (P0 > P1 > P2 > P3)
|
|
- [ ] Sauvegarder le code actuel (`git commit`)
|
|
|
|
### Pendant la Résolution
|
|
|
|
- [ ] Pour chaque erreur, créer/mettre à jour la tâche TERR-XXX
|
|
- [ ] Respecter `ORIGIN_CODE_STANDARDS.md`
|
|
- [ ] Tester après chaque correction
|
|
- [ ] Documenter la solution
|
|
- [ ] Commiter avec format : `TERR-XXX: [type] [description]`
|
|
|
|
### Avant de Reprendre les Tâches Normales
|
|
|
|
- [ ] 100% des erreurs P0 résolues
|
|
- [ ] 100% des erreurs P1 résolues
|
|
- [ ] ≥ 80% des erreurs P2 résolues
|
|
- [ ] Backend compile et démarre
|
|
- [ ] Frontend compile et démarre
|
|
- [ ] Tests backend ≥ 80% coverage
|
|
- [ ] Tests frontend ≥ 80% coverage
|
|
- [ ] Builds de production OK
|
|
- [ ] `./scripts/discover-errors.sh` : 0 erreur critique
|
|
- [ ] Rapport de validation créé
|
|
- [ ] Commit final : `PHASE 0: Error Resolution Complete`
|
|
|
|
## 🛠️ Commandes Utiles
|
|
|
|
### Analyse
|
|
|
|
```bash
|
|
# Découverte complète
|
|
./scripts/discover-errors.sh
|
|
|
|
# Backend uniquement
|
|
cd veza-backend-api
|
|
go build ./...
|
|
go test ./... -v
|
|
go vet ./...
|
|
|
|
# Frontend uniquement
|
|
cd apps/web
|
|
npm run build
|
|
npm test
|
|
npm run lint
|
|
npx tsc --noEmit
|
|
```
|
|
|
|
### Correction
|
|
|
|
```bash
|
|
# Format du commit pour corrections
|
|
git commit -m "TERR-XXX: [type] [description]
|
|
|
|
[Description détaillée]
|
|
|
|
Fixes: TERR-XXX
|
|
Category: CAT-XX
|
|
Priority: PX
|
|
Files: file1.go, file2.tsx
|
|
Tests: Added/Updated/None"
|
|
```
|
|
|
|
### Validation
|
|
|
|
```bash
|
|
# Vérifier que tout fonctionne
|
|
docker-compose up -d postgres redis
|
|
cd veza-backend-api && go run main.go &
|
|
cd apps/web && npm run dev &
|
|
|
|
# Tester les endpoints
|
|
curl http://localhost:8080/api/v1/health
|
|
curl http://localhost:3001
|
|
```
|
|
|
|
## 📊 Métriques de Succès
|
|
|
|
| Métrique | Cible | Actuel |
|
|
|----------|-------|--------|
|
|
| **Erreurs P0** | 0 | 4 |
|
|
| **Erreurs P1** | 0 | 0 |
|
|
| **Erreurs P2** | ≤ 20% | TBD |
|
|
| **Tests Backend Coverage** | ≥ 80% | ~92% |
|
|
| **Tests Frontend Coverage** | ≥ 80% | ~42% |
|
|
| **Build Backend** | ✅ | ❌ |
|
|
| **Build Frontend** | ✅ | ❌ |
|
|
|
|
## 🚨 Problèmes Courants
|
|
|
|
### "Package not found"
|
|
|
|
- **Cause** : Import vers un package non créé
|
|
- **Solution** : Créer stub OU retirer l'import
|
|
- **Voir** : TERR-001
|
|
|
|
### "Import cycle not allowed"
|
|
|
|
- **Cause** : Dépendances circulaires
|
|
- **Solution** : Refactorer, créer package intermédiaire
|
|
- **Voir** : TERR-002
|
|
|
|
### "Cannot connect to Docker"
|
|
|
|
- **Cause** : Docker daemon non démarré
|
|
- **Solution** : `sudo systemctl start docker`
|
|
- **Voir** : TERR-003
|
|
|
|
### "YAML syntax error"
|
|
|
|
- **Cause** : Indentation ou caractères invalides
|
|
- **Solution** : Corriger YAML, valider avec `docker-compose config`
|
|
- **Voir** : TERR-004
|
|
|
|
## 📈 Progression Attendue
|
|
|
|
| Jour | Objectif |
|
|
|------|----------|
|
|
| **Jour 1** | Découverte + Classification complète |
|
|
| **Jour 2-3** | Correction erreurs P0 (100%) |
|
|
| **Jour 4-5** | Correction erreurs P1 (100%) |
|
|
| **Jour 6-7** | Correction erreurs P2 (≥80%) |
|
|
| **Jour 8** | Validation finale + rapport |
|
|
|
|
## ✅ Critères de Sortie
|
|
|
|
La Phase 0 est **TERMINÉE** quand :
|
|
|
|
1. ✅ **Toutes les erreurs critiques corrigées**
|
|
- P0 : 100%
|
|
- P1 : 100%
|
|
- P2 : ≥ 80%
|
|
|
|
2. ✅ **Tous les services fonctionnent**
|
|
- Backend démarre sans erreur
|
|
- Frontend démarre sans erreur
|
|
- PostgreSQL + Redis accessibles
|
|
|
|
3. ✅ **Qualité du code**
|
|
- Tests backend ≥ 80% coverage
|
|
- Tests frontend ≥ 80% coverage
|
|
- Builds de production OK
|
|
|
|
4. ✅ **Documentation à jour**
|
|
- ORIGIN_ERROR_REGISTRY.md complet
|
|
- Toutes les tâches TERR-XXX documentées
|
|
- Rapport de validation créé
|
|
|
|
5. ✅ **Commit final**
|
|
- Message : `PHASE 0: Error Resolution Complete - Ready for T0511`
|
|
|
|
## 🎉 Après la Phase 0
|
|
|
|
Une fois la Phase 0 terminée :
|
|
|
|
1. ✅ Marquer la phase comme **TERMINÉE** dans `ORIGIN_IMPLEMENTATION_TASKS.md`
|
|
2. ✅ Reprendre à partir de **T0511** (tâche suivant T0510)
|
|
3. ✅ Maintenir la qualité (ne plus accumuler de dette technique)
|
|
4. ✅ Corriger immédiatement toute nouvelle erreur
|
|
|
|
## 🤝 Besoin d'Aide ?
|
|
|
|
- **Documentation** : Voir `/docs/ORIGIN/`
|
|
- **Standards** : `ORIGIN_CODE_STANDARDS.md`
|
|
- **Architecture** : `ORIGIN_MASTER_ARCHITECTURE.md`
|
|
- **Stratégie** : `ORIGIN_ERROR_RESOLUTION_STRATEGY.md`
|
|
|
|
---
|
|
|
|
**Date de création** : Janvier 2025
|
|
**Version** : 1.0.0
|
|
**Auteur** : Méthodologie ORIGIN_
|
|
**Statut** : 🔄 Phase active
|
|
|