lardon3d/docs/architecture/foundation_review.md
fy59 b84f860d86 refactor(core): freeze global maintenance baseline
Complete the A-to-Z Lardon3D maintenance and coherence pass.

Generalize host resource policy, remove the global CPU12 ceiling, preserve
host CPU/RAM reserves, scale Task capabilities through the Resource Governor,
and validate deterministic parallel GV execution.

Migrate Project DB to v23 with data-driven camera, lens, optical configuration
and calibration profiles, including manual lenses without EXIF.

Integrate safe optional LARDON SSD swap/scratch control with Governor and F10
drain/safe-to-unplug semantics.

Refactor the ncurses TUI into a runtime observatory with durable progress,
elapsed time, smoothed ETA, throughput, resource telemetry, Governor state,
optics workflow, colors and compact/no-color fallbacks.

Reconcile Queue lifetime, persistence, concurrency, comments, tests,
README, AGENTS and canonical documentation.

GLOBAL_MAINTENANCE_AUDIT=PASS/FROZEN
2026-09-01 08:00:47 +02:00

97 lines
2.8 KiB
Markdown

# Revue historique des fondations Lardon3D
Ce document conserve l'état de la revue de fondation à son époque. Les limites
« absence de persistance », tombstones et tickets recommandés ci-dessous ne
décrivent plus l'état courant. Pour l'architecture active, voir
[Task](task_system.md), [Queue](task_queue.md),
[Resource Governor](resource_governor.md) et le
[registre de maintenance](global_maintenance_audit.md).
## Objectif
Documenter la revue technique de la phase de fondation : task, task_queue, hardware_profile, resource_snapshot, resource_governor, réservations et intégration au scheduler.
## Composants évalués
### Task
- Cycle de vie complet
- États et transitions
- Pause/reprise coopérative
- Annulation coopérative
- Checkpoints
- Estimations de ressources
### Task Queue
- File FIFO
- Sélection de la première tâche admissible
- Backpressure
- Bornage du pending_count
- Comportement WAIT
### Hardware Profile
- Détection des capacités matérielles
- CPU, RAM, GPU/VRAM
### Resource Snapshot
- Capture instantanée des ressources
- RAM libre, charge CPU, VRAM
### Resource Governor
- Arbitrage centralisé
- Calcul de lots adaptatifs
- Réservations opaques
- Historique borné
### Intégration Scheduler ↔ Governor
- Cycle d'exécution
- Admission
- Gestion des pauses
- Séquences adaptatives
## Invariants garantis
1. Intégrité des estimations (immuables)
2. Obligation de réservation active avant démarrage
3. Cohérence du contrat de lot transmis au callback
4. Gestion sécurisée de WAIT et des variables de condition
5. Libération unique des réservations
6. Protection mutex unique du gouverneur
7. Séparation stricte des rôles (scheduler ne décide pas des ressources)
## Limites connues lors de cette revue historique
- File à worker unique avec FIFO strict
- Absence de notification automatique de libération externe
- Accumulation de tombstones de réservations
- Absence de persistance
- Absence de DAG
- Absence de priorités
- Absence de pools de workers multiples
## Risques à surveiller
- Ordre de destruction des objets
- Concurrence sur la libération des réservations
- Récursivité/blocage par un callback détruisant sa propre tâche
- Bornage de la mémoire
- Indépendance de la publication atomique
## Feuille de route historique (désormais supersédée)
### Prochains tickets recommandés
1. Sélectionner une tâche admissible sans blocage par la tête de file ✓
2. Introduire le DAG et les dépendances
3. Persister les tâches et checkpoints de reprise
4. Orchestrer et mesurer les séquences adaptatives
5. Ajouter les pools bornés CPU, IO et GPU
6. Migrer l'import vers le scheduler générique
7. Ajouter la publication live validée, puis le viewer Vulkan séparé
## Validation
- Tests unitaires passés
- ASan/UBSan passés
- TSan passé
- git diff --check propre
## Statut : ARCHIVE D'ÉVIDENCE HISTORIQUE