v1.0.0 — release avec auto-update Gitea

Ajout du systeme de mise a jour automatique :
- UpdateManager (main) : verifie les tags Gitea, telecharge et applique les MAJ
- UpdateBanner (renderer) : banniere UI avec progression et retry
- IPC channels : check-for-updates, apply-update, update-available, update-progress, update-error
- Desactivation asar pour permettre le remplacement des sources
- version.json comme source de verite pour la version locale

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
sorlinv
2026-02-25 15:58:02 +01:00
parent b556cce88c
commit f31f5aa605
16 changed files with 766 additions and 54 deletions

14
main.js
View File

@@ -4,6 +4,7 @@ const fs = require("fs");
const CameraParser = require("./src/main/CameraParser.js");
const QueueManager = require("./src/main/QueueManager.js");
const ConfigManager = require("./src/main/ConfigManager.js");
const UpdateManager = require("./src/main/UpdateManager.js");
let obj_main_window = null;
let obj_queue_manager = null;
@@ -25,6 +26,11 @@ const create_window = () => {
obj_main_window.loadFile(path.join(__dirname, "src", "renderer", "index.html"));
obj_queue_manager = new QueueManager(obj_main_window);
UpdateManager.init(obj_main_window);
obj_main_window.webContents.on("did-finish-load", () => {
UpdateManager.check_for_updates();
});
};
// ── App lifecycle ──────────────────────────────────────────────
@@ -153,6 +159,14 @@ ipcMain.handle("read-image", (event, str_image_path) => {
return fn_try_read(0);
});
ipcMain.handle("check-for-updates", () => {
return UpdateManager.check_for_updates();
});
ipcMain.handle("apply-update", (event, str_tag_name) => {
return UpdateManager.download_and_apply(str_tag_name);
});
ipcMain.handle("select-output-folder", () => {
return dialog.showOpenDialog(obj_main_window, {
title: "Selectionner le dossier de sortie",