gilles
fa73ab07b0
feat(events): timeline d'événements machine (tâche 5 backlog)
...
- listMachineEvents (machine_events, 30 derniers, desc) + route GET /machines/:id/events
- api machineEvents ; section repliable « Timeline » dans le panneau détail
(badge sévérité + horodatage), exploite les events déjà enregistrés par recordEvent
tsc 0 · 118 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 19:36:06 +02:00
gilles
a93a43e1c8
feat(messages): extraction des messages importants APT (tâche 5 backlog)
...
- extractImportantMessages (TDD) : E:/dpkg error → error, W:/GPG → warning,
déprecations/EOL → future_major_change ; nettoyage des secrets dans les URLs
- recordImportantMessages : dédup par (machine, source, message) non acquitté →
maj lastSeenAt, sinon insert (firstSeen/lastSeen) dans important_messages
- branché dans refreshMachine (sortie APT) avec snapshotId
- routes GET /machines/:id/messages + POST .../:msgId/ack
- UI : carte « Messages importants » (badge sévérité + ack) dans le panneau détail
tsc 0 · 118 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 19:30:07 +02:00
gilles
d1b0290e3b
feat(apt): analyse des dépôts APT (lecture seule) (tâche 4)
...
- template repositories (deb lines + deb822), non destructif
- analyzeRepositories (TDD) : composants, repos, détection Proxmox
enterprise/no-subscription, warnings (pve_enterprise_without_subscription,
pve_repo_missing) + notes Debian/Ubuntu composants manquants
- route POST /machines/:id/apt-repositories ; api analyzeRepositories
- popup config : bloc « Dépôts APT » (composants + warnings + notes)
Analyse uniquement (modification = action validée séparée, future). tsc 0 · 113 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 18:41:11 +02:00
gilles
e3e824185f
feat(probe): sonde enrichie CPU/RAM/disques + recommandations de profils (tâche 4)
...
- template machine-probe : lscpu Model name + nproc, MemTotal, lsblk disques
- parseProbe étendu (cpuModel/cpuCores/memoryBytes/disks) + buildRecommendations
(KVM/QEMU → vm_guest_tools) ; tests TDD
- runProbe persiste cpu/mem/disks dans machine_hardware ; /probe renvoie recommendations
- popup Sonde affiche cpu/ram/disks + profils conseillés
tsc 0 · 110 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 18:36:49 +02:00
gilles
c390addadb
feat(metrics): machine_metrics_simple — CPU/RAM/disque live par machine (tâche 4)
...
- template machine-metrics (loadavg/nproc, /proc/meminfo, df -B1) non destructif
- parseMetrics (TDD) → cpu load/cores, mémoire kB→B + %, filesystems, warnings >=90%
- collectMetrics (SSH léger) persiste machine_metrics_latest ; getLatestMetrics (sans SSH)
- routes GET /machines/:id/metrics + POST /metrics/collect ; api latestMetrics/collectMetrics
- section Hardware : bloc métriques live (CPU/RAM/disques + alertes) + bouton Collecter
→ comble le gap « Health » de la tâche 3
tsc 0 · 108 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 17:01:45 +02:00
gilles
58abebf687
feat(ui): ajout machine OS/type, section Hardware, identité app (tâche 3)
...
- AddMachineModal : sélecteurs OS + Type machine ; createMachine accepte
osFamily/machineKind (manuel prioritaire, "Autre/auto" → détection os-release)
- section Hardware sur la tuile + panneau détail : os/type/virt/arch/gpu/réseau
depuis machine_hardware (sonde) via GET /machines/:id/hardware
- identité : favicon.svg (serveur + LED Gruvbox), favicon.ico, apple-touch-icon,
PWA 192/512, site.webmanifest ; liens + theme-color dans index.html
tsc 0 · 104 tests · build OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 14:07:46 +02:00
gilles
2b684da9cd
feat(api): profil machine éditable, sonde, et réglages globaux apt-cacher-ng
...
- machines : updateMachine (PATCH /machines/:id) + POST /machines/:id/probe
(sonde synchrone → faits + proposition de correction) ; MachineView expose
machineKind/virtualization ; CreateMachineInput accepte aptProxyMode persistent
- app_settings (clé/valeur, migration 0006) + service appSettings :
défaut apt-cacher-ng (mode + url) ; applyProxyToAllMachines
- routes /settings : GET, PUT /apt-proxy, POST /apt-proxy/apply-all
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 07:53:47 +02:00
gilles
c3584f4ec8
feat: routes HTTP Hono (machines, refresh, actions, executions)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-05 04:13:15 +02:00