12 Commits

Author SHA1 Message Date
Gilles Soulier 3406edbab1 feat: espace LVM — thin pool data_percent + ext4 offline via tune2fs
- lvs query enrichi : lv_dm_path, data_percent, lv_attr
- thin_pool_used_percent sur les thin pools (ex: Proxmox pve/data)
- LV ext4 non montés lus via tune2fs sur /dev/mapper path
- _format_lv() centralise la construction des entrées LV

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:54:32 +02:00
Gilles Soulier 325b5dc281 fix: type disque SATA + df timeout Proxmox
- disk_type : rota booléen (False/True) en plus des int (0/1) — lsblk récent
- df --local : évite le timeout sur montages réseau/NFS (Proxmox)
- 6 nouveaux tests disk_type

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:50:19 +02:00
Gilles Soulier 29a63be483 feat: offline_note sur partitions NTFS verrouillées
Distingue volume verrouillé (Windows hibernate/Fast Startup)
de ntfsresize absent. Champ offline_note dans le payload JSON.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:45:26 +02:00
Gilles Soulier 2ac5a3b2de feat: espace offline pour partitions non montées
tune2fs pour ext4, ntfsresize pour NTFS, btrfs partiel.
Utile pour dual-boot et partitions de données non montées.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:39:30 +02:00
Gilles Soulier ac51959eb2 fix: SMART NVMe + messages debug verbeux
- Parsing NVMe séparé de SATA (Temperature/Power On Hours/Available Spare)
- Flag --debug et --dry-run activent les messages détaillés sur stderr
- run() affiche les erreurs et exceptions en mode verbose
- Fallback du -d 1 -> --max-depth=1 pour home_users
- dprint() sur chaque étape : OS, disques, partitions, SMART, LVM, /home

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:35:32 +02:00
Gilles Soulier b53c46ad21 chore: .gitignore + settings Claude Code
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:19:01 +02:00
Gilles Soulier c0e737244c feat: script client inventaire.py (stdlib only, 28 tests)
CLI argparse : --host, --port, --dry-run/-n, --debug, --output
Variables env : MES_HDD_HOST, MES_HDD_PORT
Détection OS : proxmox/ubuntu/debian
SMART en français : ok/warn/fail/unavailable avec détail lisible
Partitions : fstype, UUID, espace, LVM, /home users
Distribution : curl | sudo python3 -

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:15:46 +02:00
Gilles Soulier d269ca8bc9 docs: plan d'implémentation complet (10 tâches)
Script Python stdlib, FastAPI + SQLite + Alembic, Docker Compose nginx,
routes dashboard + agents IA, tests pytest par tâche.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 20:07:20 +02:00
Gilles Soulier ee0dc2461c docs: API complète + évolutivité schéma Alembic
- Routes read séparées dashboard vs agents IA
- Endpoints /api/ai/* (summary, at-risk, moved-disks, backup-needed)
- Stratégie migrations Alembic (alembic upgrade head au démarrage)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 19:58:24 +02:00
Gilles Soulier 73c61b50fe docs: ajout UUID par partition dans la spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 19:55:28 +02:00
Gilles Soulier 0f6d579a28 docs: enrichissement spec — /home, distribution Gitea, détection OS
- Calcul taille /home par utilisateur (home_users[])
- Commande one-liner curl | sudo python3 depuis git.maison43gil.com
- Variable MES_HDD_API configurable
- Détection Proxmox/Ubuntu/Debian avec adaptations (ZFS, Ceph, snap)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 19:53:04 +02:00
Gilles Soulier f9f805cd8b chore: init projet — spec design + design system
Spec complète dans docs/superpowers/specs/2026-05-28-inventaire-hdd-design.md :
architecture 2 conteneurs Docker (FastAPI + nginx), script Python stdlib only,
SQLite avec serial comme clé de vérité, API ingest + dashboard + agents IA.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 19:46:54 +02:00