# Tâche 2 — SJ-7 : Profils OS Proxmox/RPi + machine_probe + proxy persistent > Statut : **implémenté** (2026-06-06). tsc 0 · 95 tests · build OK. Résolution OS vérifiée. > Réf. design : `docs/design/tache2/60-profils-os-machine.md`, `80-sous-jalons.md` SJ-7. ## Périmètre livré (additif, fallback base préservé) - **Templates OS-spécifiques** : - `templates/proxmox/update-analyze.sh.tpl` (détection dépôts PVE enterprise/no-subscription) + `full-upgrade.sh.tpl` (dist-upgrade kernel/proxmox-ve/Ceph). - `templates/raspbian/update-analyze.sh.tpl` (contrôle espace disque carte SD) + `full-upgrade.sh.tpl` (`apt full-upgrade`). `rpi-update` volontairement non utilisé. - **Résolution par profil OS dans `execute.ts`** : les actions APT passent par `resolveTemplate(file, osFamily)` → `proxmox/`/`raspbian/` si dispo, sinon `apt/`. Vérifié : proxmox/raspbian pris ; debian/ubuntu → fallback `apt/` (non-régression jalon 1). `refresh.ts` résolvait déjà `update-analyze`. - **`machine_probe`** (action lecture seule) : - `templates/apt/machine-probe.sh.tpl` (os-release, arch, systemd-detect-virt, /etc/pve, /proc/cpuinfo RPi, lspci GPU, ip addr). - `machineProbe.ts` : `parseProbe` + `proposeCorrections` (TDD, 4 cas : Proxmox/RPi/VM KVM) → propose `os_family`/`machine_kind`/`virtualization`. `runProbe` persiste les faits matériels (`machine_hardware` gpus/network) et renvoie un diff **jamais appliqué auto**. - Branche `execute` (archiveExecution) + allowlist route. - **Proxy APT persistant** (`apt_proxy_persistent`) : - ActionType ajouté ; `templates/apt/apt-proxy-persistent.sh.tpl` écrit `/etc/apt/apt.conf.d/01proxy` (idempotent, sauvegarde horodatée de l'existant). - `TemplateVars.aptProxyUrl` ; rendu avec `m.aptProxyUrl` ; allowlist route. ## Sécurité / invariants - `machine_probe` ne modifie rien ; les corrections OS/kind sont **proposées**, l'opérateur garde le dernier mot (pas d'application auto). - Proxy persistant = action explicite idempotente avec backup ; l'URL n'est pas un secret. - Aucun secret dans les templates ; fallback `base` garantit la non-régression Debian/Ubuntu. ## Reste tâche 2 SJ-8 / SJ-9 (post-install : bootstrap/identité, paquets de base/Docker officiel/partages/VM tools). UI : bouton « Sonder » + affichage des propositions, sélecteur de proxy persistant = tâche 3.