feat(analysis): scheduler de jobs d'analyse avec routage par capacités, priorités et dead-letter #159
No reviewers
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall!159
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/analysis-job-scheduler"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Implémente l'orchestrateur de jobs d'analyse (issue #74) : sélection d'agents par capacités (GPU/CPU/RAM), affinité site, et charge actuelle.
Changements
Domaine
AnalysisJob, enumsAnalysisJobType/Status/PriorityApplication
IAnalysisJobSchedulerServiceInfrastructure
SecurityCritical > SecurityHigh > Periodic > BackgroundAnalysisJobConfigurationavec index pour pending/timeout/workloadTests
Closes #74
🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
📊 Rapport Coverage SonarQube
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 2 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
80644fb5bc8796409abb🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
Revue the-reviewer — 2026-08-20
Statut : ⚠️ Corrections nécessaires — scheduler d'analyse bien architecturé, mais anomalies.
Résumé du diff
Code — ⚠️
Tests — ❌
CI — ❌
Conformité — ✅
feat(analysis): ...).Anomalies
Verdict
Architecture solide, mais le manque de tests est un blocage pour un composant critique.
Actions
PR prête pour validation : NON (tests manquants)
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 6 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
8796409abb6d56f7391e🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 6 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
6d56f7391e5b9f695ba7🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 6 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
5b9f695ba77ed96382cc🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 6 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
7ed96382ccd4488029a7🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
🔄 Rebase automatique effectué
La branche
feat/analysis-job-schedulerétait derrièremainde 6 commit(s). Rebase effectué et force-pushé.CI relancée automatiquement.
d4488029a7622029e7ab🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
Revue the-reviewer — 2026-08-22
Statut : ⚠️ Corrections nécessaires — Jobs DBCI et UI OK, mais 4 PRs Heimdall partagent un même blocage CI + coverage.
Points validés
test-dben jobs parallèles bien isolés.camera_eventsetPartitionManagerJobcorrects.Blocage commun
Verdict
Aucune PR Heimdall n’est prête pour
the-validatortant que CI + coverage ne sont pas réparés.Actions
PR prête pour validation : NON
Mise à jour suite à vérification CI.
Conséquence : aucun déblocage depuis la revue précédente.
État:
Revue the-reviewer — 2026-08-23 (mise à jour)
Statut : ⚠️ Corrections nécessaires
Changements depuis dernière revue (2026-08-22)
Résumé du diff
Type/Status/PrioritySecurityCritical > SecurityHigh > Periodic > BackgroundAnalysisJobConfigurationavec index pending/timeout/workloadCode — ✅
Tests — ✅
CI — ❌
mergeable: truemais build failureConformité — ✅
Closes #74présentAnomalies
AnalysisJobDispatcherJobcron en prodActions requises
PR prête pour validation : NON (CI instable uniquement — code/tests OK)
🤖 Coding Orchestrator — 2026-08-25 21:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 21:52 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 22:18 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 22:35 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 22:49 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 23:02 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 23:15 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 23:28 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 23:41 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-25 23:54 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 00:07 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 00:20 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 00:33 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 00:46 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 01:00 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 01:13 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 01:26 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 01:39 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 01:52 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 02:05 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 02:19 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 02:32 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 03:04 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 03:17 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 03:30 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 03:43 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 03:56 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 04:17 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 04:30 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 04:43 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 04:56 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 05:21 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 05:34 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 05:47 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 06:00 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 06:14 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 06:27 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 06:40 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 06:54 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 07:20 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 07:39 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 07:53 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 08:07 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 08:22 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 08:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 08:49 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 09:02 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 09:15 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 09:29 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 09:42 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 09:55 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 10:08 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 10:21 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
622029e7abe1f2041427🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Skippé (aucun changement IHM)
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
🤖 Coding Orchestrator — 2026-08-26 10:44 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 10:57 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 11:12 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 11:28 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 11:48 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 11:51 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🔍 Revue de code — the-reviewer
PR #159 : feat(analysis): scheduler de jobs d'analyse avec routage par capacités, priorités et dead-letter
Branche :
feat/analysis-job-scheduler→main| 16 fichiers | ~1790 lignes ajoutéesCommit :
e1f2041| Mergeable : ✅📊 État CI
e1f2041e1f2041⚠️ Run 5355 échoué sur le même commit que le run 5354 (vert) — symptomatique d'un runner flaky ou d'un cache corrompu (cf. pitfalls templates). Le dernier run est le #5355 (failure). Vérifier le runner (UUID dans les logs) avant merge.
✅ Points positifs
IDbContextFactorycorrectement utilisé dans le Hangfire job (évite le sharing de DbContext entre workers).AsNoTracking()/.AsTracking()bien placés.ConfigureAwait(false)systématiqueServiceResultpattern cohérent avec le reste du projet⚠️ Anomalies mineures
AnalysisJob.csStatus = AnalysisJobStatus.TimedOutest assigné AVANT le checkRetryCount >= MaxRetries, puis écrasé parDeadLettered. Le statusTimedOutn'est jamais persisté en dead-letter. Corriger : assignerTimedOutUNIQUEMENT dans le branch else, ou rebaptiser le status enTimedOutOrDeadLetteredsi l'intention est de marquer la tentative.AnalysisJobSchedulerService.csGetTimedOutJobsAsynccharge TOUS les jobs Dispatched/Running en mémoire (ToListAsync+ filterWherein-memory). Avant utilisation en prod, prévoir unWHERE "DispatchedAt" + interval 调度超时 < NOW()côté SQL ouExecuteSqlRawpour éviter de charger N lignes inutilement. Pour l'instant acceptable si le volume est faible (<100 jobs actifs).AnalysisJobSchedulerService.csSelectBestAgentInternalAsynccharge TOUS les agents Online + TOUS les jobs actifs en mémoire. Même constat : scalable pour quelques dizaines d'agents, mais à surveiller. UnGroupBySQL + index sur(AssignedAgentId, Status)pourrait aider. L'indexix_analysis_jobs_agent_workloadest bien configuré — il sera exploité si on passe à une sous-requête SQL.AnalysisJobSchedulerService.csMaxRetries > 0niMaxExecutionTime > TimeSpan.Zero. Les setters publicsSetMaxRetries/SetTimeoutn'ont pas de guard. UnMaxRetries = 0dead-letterait immédiatement. Ajouter un guard dans les setters (ou un builder pattern).AnalysisJobSchedulerService.csRowVersion(timestamp) ou unEF Core rowversionsurAnalysisJobpour la détection de concurrence optimistic.JobSetup.csExecuteAsyncfait déjà un timeout sweep interne (GetTimedOutJobsAsync). Le job séparéanalysis-job-timeout-sweep(60s) est un filet de sécurité — documenter explicitement cette intention dans les XML docs du sweep job pour éviter qu'on le supprime en "nettoyage".CreateJobInDbAsyncApplyCapabilityRequirementsest dupliquée entreAnalysisJobSchedulerService(L360) et les helpers de test (CreateJobInDbAsync). Si les thresholds changent, les tests passent quand même. Utiliser directement_service.CreateJobAsync()dans les tests (qui applique déjà les requirements) ou extraire la logique dans un shared helper.❌ Anomalies bloquantes
analysis_jobsdans le diff.EnsureCreated()fonctionne pour les tests mais pas en prod. Il faut un snapshot de migration pour le deploy. → Délégation à the-developer : créer la migration (dotnet ef migrations add AddAnalysisJobs).Closes #74mais le format attendu estFixes #74pour la fermeture automatique de l'issue au squash merge. Vérifier que le squash commit message contient bienFixes #74.📋 Conformité process
Closes #74(pasFixes #74— vérifier le squash)feat/analysis-job-scheduler→main)🎯 Actions requises
analysis_jobs> 0surSetMaxRetriesetSetTimeoutRowVersion) surAnalysisJobpour éviter le double-dispatchTimeOut()Revue effectuée par the-reviewer le 2026-08-26. Je ne merge pas. Validation finale → the-validator.
🤖 Coding Orchestrator — 2026-08-26 12:13 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 12:16 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 12:35 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 12:37 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 13:12 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 13:14 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 13:40 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 13:43 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 13:48 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 14:15 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 14:17 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:02 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:08 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:17 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:35 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 15:49 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:15 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:17 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:18 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:19 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:48 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 16:57 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 17:00 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 17:05 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 17:47 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 17:49 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 18:26 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 18:31 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 19:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 19:41 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 19:45 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 20:30 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 20:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.
🤖 Coding Orchestrator — 2026-08-26 21:36 UTC
Changement détecté: code
auto-fix-trivial
⏭️ À vérifier
review-gate
⏭️ À vérifier
Ce commentaire est généré automatiquement par le coding orchestrator.