Releases: morfredus/ComponentHub
Release list
v1.7.1 - Synchro robuste au reset du hub
La synchronisation se répare toute seule si le hub est réinitialisé.
Corrigé
Si le hub voit son dossier de données déplacé ou réinitialisé (son journal repart de zéro), ComponentHub le détecte automatiquement à la synchro suivante et re-synchronise tout — plus besoin de supprimer un fichier d'état à la main.
Cela corrige le cas où une suppression faite sur un poste n'était pas propagée aux autres après un déménagement des données du hub.
Nécessite HomeServerHub ≥ 0.2.5.
Détails : docs/fr/SYNCHRONISATION.md → « Robustesse : réinitialisation du hub ».
v1.7.0
Added
- LAN synchronization with HomeServerHub (offline-first). ComponentHub can now
keep the same data across several machines through a lightweight local-network
hub, without any cloud. The local database stays sovereign: the app always
works on its local copy; the hub is only used to reconcile copies when reachable.
Configure the hub address in Settings → Synchronization, then:- automatic sync at startup if the hub is reachable (short, non-blocking probe
with on-screen feedback so it never feels frozen); - on-demand button ("Synchroniser maintenant");
- sync proposed on quit — both automatic triggers are toggleable;
- an explicit "local only" mode that disables all synchronization.
See docs/fr/SYNCHRONISATION.md (FR).
- automatic sync at startup if the hub is reachable (short, non-blocking probe
- Last-sync metrics in Settings (date + items received/sent).
- Configuration backup/restore: the full
.tarbackup now includes the
configuration; a new "Configuration only" backup/restore exports just the
settings (hub address, options, appearance) as JSON, to replicate them on
another machine.
Changed
- Permanent identity is now a UUID for every entity (was an auto-increment
integer). Required for conflict-free identity across machines; internal
references (location, project, BOM links, document owners) were migrated too.
Deletion is now logical (tombstone) so it propagates through sync. - Migration note: an existing integer-id database is not auto-converted.
Start from a fresh database and re-import your data (Bomist or native CSV). - Synchronization is incremental: only entities changed since the last push
are sent (scales to large inventories).
Full Changelog: v1.6.0...v1.7.0
ComponentHub 1.6.0
What's new in 1.6.0
- LAN supervision (morfBeacon). ComponentHub announces its presence on the local network (UDP heartbeat) and exposes live metrics over a local HTTP
/statusendpoint, so it can be watched from a central dashboard — no scanning, no configuration, automatic discovery. - Update check (morfUpdate). ComponentHub now checks GitHub Releases for a newer version — silently at startup, and on demand via Help → "Check for updates…".
- Both are shared modules vendored under
third_party/morf/, compiled into the binary (no external dependency), identical on Windows, Linux and Raspberry Pi. - Also includes the 1.5.4 comment cleanups (removed the ESP32/LittleFS "shared core" wording).
See the CHANGELOG and docs/fr/SUPERVISION_ET_MAJ.md for details.
Full Changelog: v1.5.2...v1.6.0
v1.5.2
🚀 ComponentHub v1.5.2
Nouveautés depuis la v1.2.0
La v1.2.0 était un firmware ESP32 à interface web. Depuis, ComponentHub a pris un tournant majeur : il devient une véritable application de bureau, qui s'impose comme le projet maître (la base de données de l'atelier), tandis que le firmware ESP32 se recentre en satellite mobile. Voici l'essentiel.
🖥️ Une application de bureau native (nouveau)
- Application Qt 6 / C++17, native sur Windows, Linux (x86_64) et Raspberry Pi (ARM64) (build CMake).
- Réutilise tel quel le cœur métier existant : mêmes services, même format de données. Seuls le stockage fichier (JSON) et l'interface Qt sont spécifiques au bureau.
- Écrans complets : Inventaire (recherche/filtres, fiche détaillée), Catégories, Emplacements (hiérarchie), Projets (nomenclature + manquants), Référentiels, Import/Export, Réglages.
- Thème clair/sombre suivant l'OS, icônes vectorielles, UTF-8 correct (accents, « € »).
- Paquets distribuables : ZIP autonome (Windows),
.debet AppImage (Linux).
🔀 Réorganisation : bureau maître, ESP32 satellite
- La base de référence de l'atelier vit désormais côté bureau : stockage fiable, capacité et évolution non bridées (JSON aujourd'hui, SQLite envisageable).
- Pourquoi : l'ESP32-S3 ne peut pas détenir une base faite pour grossir sur des années (RAM/flash limitées), et l'extension par carte SD est écartée pour fiabilité insuffisante (corruption, faux contacts, usure).
- L'ESP32 devient un satellite : terminal mobile de consultation/modification du stock (scan QR) qui, à terme, consultera la base du bureau.
- Le firmware est extrait dans un dépôt séparé
ComponentHub-ESP32, avec sa propre copie du cœur. Décision complète : ADR-0001. - Le format JSON / sauvegarde
.tarreste interchangeable carte ↔ PC.
🧩 Fonctionnalités inventaire
- Référentiels administrables : listes normalisées (types, fabricants, boîtiers, fournisseurs, technologies, états, mots-clés) avec fusion de doublons et propagation aux composants ; ajout inline depuis la fiche.
- Recherche globale : balaie tous les champs texte, gère plusieurs mots (ET logique).
- Sauvegarde / restauration complète de la base en une archive
.tar(toutes les tables + fichiers joints, à l'octet près). - Import/Export CSV par table (composants — natif & Bomist —, catégories, emplacements avec hiérarchie, projets), avec BOM UTF-8 pour les tableurs.
🖱️ Ergonomie & interface
- Barre de menus native (Fichier · Aller à · Affichage · Aide) en complément de la barre latérale — accès souris et clavier :
- Fichier : ouvrir le dossier de données, Quitter (Ctrl+Q)
- Aller à : saut direct vers chaque section (Ctrl+1…7)
- Affichage : thème Système / Clair / Sombre, synchronisé
- Aide : guide « Bien démarrer » (F1), À propos (version, Qt, licence), À propos de Qt
- Version affichée dans le titre de la fenêtre (lue depuis CMake, sans valeur en dur).
- Tri des colonnes de l'inventaire (numérique correct pour Qté/Prix), boutons de compteurs +/− fiabilisés.
🛰️ Firmware ESP32 (dépôt ComponentHub-ESP32, v1.5.0)
- Dépôt autonome, documenté séparément (architecture, API, WiFi, boot log).
- Nom mDNS renommé
componenthub→componenthub-esp32(http://componenthub-esp32.local) pour éviter tout télescopage avec le futur service du bureau.⚠️ Pensez à mettre à jour marque-pages / commandes OTA.
🔧 Corrections & packaging
- Paquet Debian (
scripts/linux/package-deb.sh) : la création du raccourci.desktopéchouait avec « No such file or directory » car le dossierusr/share/applications/n'était pas créé avant la redirection. Corrigé — le.debse construit à nouveau (testé sur Raspberry Pi, ARM64).
📸 Documentation
- Captures de l'application dans le README et BUILD_DESKTOP.
- ADR-0001 documentant la décision maître/satellite ; ROADMAP recentré côté bureau.
🧭 Détail par version (bureau)
| Version | Points clés |
|---|---|
| 1.3.0 | Sauvegarde/restauration .tar complète ; export/import CSV des tables secondaires ; correctifs encodage & en-têtes figés |
| 1.4.0 | 🎯 Naissance de l'app bureau + séparation ESP32 (maître/satellite) ; référentiels ; recherche globale |
| 1.4.1 – 1.4.2 | Consolidation : docs firmware déplacées vers le dépôt ESP32 ; ROADMAP réécrit côté bureau |
| 1.5.0 | Barre de menus, version au titre, À propos / Aide |
| 1.5.1 | Captures d'écran dans la documentation |
| 1.5.2 | Correctif packaging .deb (dossier applications/ manquant) |
⚙️ Compatibilité & notes de mise à niveau
- Données : format inchangé — vos sauvegardes
.taret CSV restent valides et interchangeables entre bureau et ESP32. - Deux dépôts désormais : bureau (
ComponentHub, 1.5.2) et firmware (ComponentHub-ESP32, 1.5.0), versionnés indépendamment. - mDNS ESP32 : ancien
componenthub.localremplacé parcomponenthub-esp32.local.
Initial public release v1.0.0
First public release of ComponentHub.
Highlights
- Electronic component inventory
- Stock management
- Search and filtering
- Qt 6 desktop application
- Windows and Linux support