Commit Graph
47 Commits
Author SHA1 Message Date
bruno 8ddee212e5 feat(desktop): manifeste de mise a jour latest.json + builds locaux signes (#77)
CI / lint (push) Successful in 1m7s
CI / security (push) Successful in 43s
CI / test (push) Successful in 2m12s
CI / build (push) Successful in 42s
CI / e2e (push) Successful in 10m43s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- scripts/updater_manifest.py : construit latest.json (version, pub_date, platforms Windows/Linux avec signature .sig et URLs des assets).

- publish_release.py : genere latest.json, upload des .sig + latest.json, rappel de commit.

- tauri.conf.json : endpoint updater -> raw/branch/main/desktop/latest.json.

- build-windows.bat / build-linux.sh : detection automatique de obsigate-updater.key (signature) ou repli non signe.

- .gitignore : ignore desktop/key/ ; tests/test_updater_manifest.py (8 tests).
2026-09-12 10:01:56 -04:00
bruno d3299166bb feat(desktop): signature updater Tauri + wizard persistant + protocole E2E (#77)
CI / lint (push) Successful in 1m11s
CI / security (push) Successful in 43s
CI / test (push) Successful in 2m22s
CI / build (push) Successful in 1m41s
CI / e2e (push) Successful in 10m50s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- Signature des mises a jour Tauri : paire de cles minisign generee, cle publique dans tauri.conf.json, createUpdaterArtifacts actif, secrets CI exposes (repli build non signe si secret absent).

- Wizard 1er lancement : etat persistant wizard_done cote Rust (get_wizard_state/complete_wizard) pour ne plus reafficher la banniere, retro-compatible.

- Protocole des 6 tests E2E manuels : docs/DESKTOP_E2E_CHECKLIST.md.

- CI : desktop.test.mjs ajoute au job lint.

- Docs : ROADMAP, fiche desktop-tauri, CHANGELOG, README desktop, guide releases.

- fix(build): retirer les libs WeasyPrint inutiles du stage builder Docker.
2026-09-12 09:29:47 -04:00
bruno ac16fc1f0e feat: #78 Excalidraw finitions + #67 push + #68 health-detailed + #77 desktop jumplist
CI / lint (push) Successful in 52s
CI / security (push) Successful in 36s
CI / test (push) Successful in 1m6s
CI / build (push) Successful in 1m15s
CI / e2e (push) Failing after 12m40s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
#78 Excalidraw — finitions B5/C8/F2/F3
- backend/indexer.py: port Python pur de lz-string decompressFromBase64 (bitsPerChar=6, resetValue=32) validé contre 4 fixtures JS truth (texte accentué, edge cases) — remplace le stub base64 non-fonctionnel
- B5 indexation: .excalidraw.md (format plugin Obsidian) maintenant décompressé côté Python → texte indexé pour recherche TF-IDF
- 7 nouveaux tests B5 dans tests/test_excalidraw.py (13/13 total)
- F2: excalidraw-viewer.test.mjs enregistré dans CI (lint job)
- F3: tests/e2e/excalidraw.spec.js (9 specs — ouverture .excalidraw/.excalidraw.md, création via modale/menu contextuel, toolbar, thème, pop-out, recherche)
- Fixtures test_vault/diagram.excalidraw + diagram.excalidraw.md

#67 Push notifications (Web Push API + VAPID)
- backend/push.py: router + VAPID keys + send_push_notification (pywebpush>=2.3.0)
- frontend/js/push.js: subscription UI + service worker integration
- tests/test_push.py: 10 tests (subscribe/list/unsubscribe/vapid key)
- requirements.txt + sw.js + locales push strings

#68 Health check enrichi
- backend/main.py: GET /api/health/detailed (admin) — memory/cpu/disk/backups/index/SSE connections
- backend/indexer.py: _last_full_index_ts tracking
- tests/conftest.py: admin_client fixture
- tests/test_api_main.py: 3 nouveaux tests health detailed

#77 Desktop jumplist
- desktop/src/jumplist.rs: Windows jumplist integration
- Cargo.toml/lock + capabilities + main.rs
- frontend/js/desktop.js: Tauri bridge (isTauriEnv, invoke, getSystemTheme, syncSystemTheme, shouldShowWizard, crash banner)
- tests/frontend/desktop.test.mjs: 21 tests JSDOM (détection, invoke degradation, theme gating, wizard, crash banner)
- tests/frontend/unit.test.mjs: desktop.js whitelisted (standalone global reader)

# Frontend & CI
- frontend/sw.js: réécriture complète (precache + push event handlers + offline)
- frontend/index.html: section push dans settings + about repositionné
- frontend/js/app.js: initDesktopIntegration + initPush
- CI .gitea/workflows/ci.yml: excalidraw-viewer.test.mjs ajouté au lint job

All checks: ruff clean, 552 backend tests pass, 9 frontend unit, 5 excalidraw-viewer, 21 desktop, 9 pane-manager, validate-imports 33 modules.
2026-09-09 23:18:29 -04:00
bruno c066b2c82a feat(desktop): #77 B5 port auto-increment si 17890 occupe (pick_free_port) + 3 tests Rust 2026-09-07 23:55:36 -04:00
bruno 3e0940da8c feat(desktop): v2.0.0 - tests unitaires Rust #77 complets
CI / lint (push) Failing after 17s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 21s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- 16 tests Rust: config roundtrip, JSON parsing, vault dedup,
  dir remove, backend URL, paths, branding, edge cases
- Ajout tempfile dev-dependency pour tests avec tmpdir
- .gitignore: exclusions junction points backend/frontend
- Build debug + release vérifié et fonctionnel
- Compilation: rustc 1.94.1, tauri-cli 2.11.4
2026-09-06 18:24:45 -04:00
bruno c9733b944a feat: preparation release v2.0.0 - guide dev/releases, script publication Gitea, build NSIS+MSI
CI / lint (push) Successful in 35s
CI / security (push) Successful in 22s
CI / test (push) Successful in 37s
CI / build (push) Successful in 13s
CI / e2e (push) Successful in 5m40s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
2026-08-25 21:21:51 -04:00
bruno 331c614330 feat(boot): écran de chargement inline + staging backend/frontend pour le bundle desktop
CI / lint (push) Failing after 16s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 18s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- frontend/index.html : splash #boot-splash 100% inline (CSS+JS), scripts CDN en defer pour ne pas bloquer le premier paint
- frontend/js/app.js : signale le boot terminé via __OBSIGATE_BOOTED (try/finally)
- desktop/src/main.rs : met à jour le statut du splash avant la redirection vers le backend
- ci: stage backend/ + frontend/ sous desktop/ avant tauri build (resources backend/** et frontend/**) dans desktop-build.yml et build-linux.sh
- desktop/gen/schemas/windows-schema.json : régénéré (permissions store/updater)
- docs: README, README.fr, ROADMAP
2026-08-24 15:50:49 -04:00
bruno c8d35b2ee6 fix(docs): corrige les ancres des liens internes avec caractères accentués
CI / lint (push) Failing after 2m59s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 29s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Les ancres des tables des matières utilisaient des caractères accentués
qui ne correspondaient pas aux identifiants de titres générés par
ObsiGate (suppression des accents et normalisation des slugs).

Fichiers concernés :
- README.md
- docs/ANALYSE_REVIEW.md
- desktop/README.md
2026-08-13 12:53:26 -04:00
bruno c8b19d507a feat: versioning SemVer MAJOR.MINOR.PATCH basé sur git describe
CI / lint (push) Failing after 9s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- backend/version.py: get_version() lit git describe --tags (ex: 1.8.0-301-gabc1234)
- main.py: FastAPI version = get_version() dynamique
- build.rs: injecte GIT_VERSION, GIT_HASH, SEMVER depuis git describe
- main.rs: ABOUT_MSG, get_version(), log utilisent GIT_VERSION
- Format: MAJOR.MINOR.PATCH[-commits-gHASH] (ex: 1.8.0, 1.8.0-3-gabc1234)
- Fallback: VERSION file ou 0.0.0-dev si Git indisponible
2026-07-27 17:16:52 -04:00
bruno da00aa4826 feat: version dynamique basée sur Git — build.rs injecte GIT_HASH
CI / lint (push) Failing after 11s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 15s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- build.rs: lit git rev-parse --short HEAD, passe GIT_HASH au compilateur
- main.rs: ABOUT_MSG constant au compile-time avec CARGO_PKG_VERSION + GIT_HASH
- get_version() command Tauri retourne v2.0.0-abc1234
- Log + À propos (menu natif + tray) utilisent la version dynamique
- rerun-if-changed sur .git/HEAD pour recompiler à chaque commit
2026-07-27 17:09:06 -04:00
bruno 2ba7138881 feat: affichage PDF avec TOC + frame-src CSP
CI / lint (push) Successful in 23s
CI / security (push) Successful in 14s
CI / test (push) Successful in 27s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 1m29s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- CSP: ajout frame-src 'self' http://127.0.0.1:* (permet iframe PDF)
- pdf_reader.py: extract_pdf_toc() — extrait les bookmarks/outline (pypdf + pymupdf)
- main.py: inclut pdf_toc dans la réponse /api/file pour les PDF
- viewer.js: sidebar TOC avec liens vers les pages (si bookmarks présents)
- style.css: layout .pdf-body flex + .pdf-toc sidebar 240px
2026-07-27 12:32:11 -04:00
bruno 1dd14e0bfd fix: resources sans ../ — backend/**/* et frontend/**/* locaux
CI / lint (push) Successful in 27s
CI / security (push) Successful in 13s
CI / test (push) Successful in 31s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 31s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-27 11:58:24 -04:00
bruno 50ffca3bdc fix: forcer windows_subsystem = windows sans condition (plus de console au double-clic)
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 27s
CI / build (push) Successful in 11s
CI / e2e (push) Failing after 4m6s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-27 11:26:57 -04:00
bruno 19c987585a fix: build NSIS uniquement (currentUser, pas de droits admin) + console cachée
CI / lint (push) Successful in 28s
CI / security (push) Successful in 15s
CI / test (push) Successful in 29s
CI / build (push) Successful in 9s
CI / e2e (push) Failing after 19s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- --bundles nsis seulement (le .msi WiX ignore installMode: currentUser)
- L'installeur NSIS installe dans %LOCALAPPDATA%\Programs\ObsiGate\ sans admin
- La console: déjà gérée par cfg_attr windows_subsystem + CREATE_NO_WINDOW
2026-07-27 10:49:35 -04:00
bruno 2dcbcd0949 fix: desktop — use HOME instead of USERPROFILE on Linux for default vault path
CI / lint (push) Successful in 27s
CI / security (push) Successful in 17s
CI / test (push) Successful in 32s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 31s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-27 01:12:27 -04:00
bruno e46437d967 fix: desktop build — correct resource paths (../backend, ../frontend)
CI / security (push) Failing after 12m18s
CI / lint (push) Failing after 12m26s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-27 01:01:45 -04:00
bruno 82fe053c7d feat: Phase 3 Desktop — native menu, auto-update, hidden terminal
CI / lint (push) Successful in 26s
CI / security (push) Successful in 13s
CI / test (push) Successful in 31s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 33s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- #![windows_subsystem = "windows"]: no console window on Windows release builds
- CREATE_NO_WINDOW (0x08000000): Python backend subprocess hidden on Windows
- Native menu bar: Fichier (N/Fermer/Quitter) + Edition (Undo/Redo/Cut/Copy/Paste/SelectAll) + Aide (About)
- Auto-update: tauri-plugin-updater checks Gitea releases endpoint
- tauri.conf.json: updater plugin config with passive install mode
- ROADMAP: Phase 3 marked as complete (11/11 subtasks done)
2026-07-27 00:45:23 -04:00
bruno 757614eb57 fix: cacher la fenêtre console du backend Python (CREATE_NO_WINDOW)
CI / lint (push) Successful in 26s
CI / security (push) Successful in 13s
CI / test (push) Successful in 29s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 25s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
Ajout de creation_flags(0x08000000) sur Windows pour que le processus
Python ne montre pas de fenêtre terminal au démarrage
2026-07-26 22:47:00 -04:00
bruno 08f97e9e29 feat: séparer vaults et dirs dans la config — type VAULT vs DIR
CI / lint (push) Successful in 24s
CI / security (push) Successful in 15s
CI / test (push) Successful in 36s
CI / build (push) Successful in 7s
CI / e2e (push) Failing after 20s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- AppConfig: ajout dirs: Vec<DirConfig> distinct de vaults: Vec<VaultConfig>
- spawn_backend: passe VAULT_N_* et DIR_N_* séparément (backend les supporte déjà)
- Config par défaut: 'Bruno' → %USERPROFILE% (type DIR), 'Obsidian' → voute_obsidian (type VAULT)
- Commandes: add_dir, remove_dir, list_dirs
2026-07-26 22:08:20 -04:00
bruno 0fbdf0ef1b feat: config vaults par défaut au premier lancement
CI / lint (push) Successful in 35s
CI / security (push) Successful in 16s
CI / test (push) Successful in 30s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- Détecte config.vaults vide → premier lancement
- Crée %USERPROFILE%\voute_obsidian\ automatiquement
- Ajoute deux vaults: 'Dossier' (%USERPROFILE%) et 'Obsidian' (voute_obsidian)
- vault_path = USERPROFILE pour le sélecteur de dossier
2026-07-26 21:04:30 -04:00
bruno 73d798015d feat: config vaults desktop — VaultConfig, add_vault, remove_vault, list_vaults
CI / lint (push) Successful in 24s
CI / security (push) Successful in 13s
CI / test (push) Successful in 29s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 14s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- AppConfig: nouveau champ vaults: Vec<VaultConfig> (name + path)
- spawn_backend: passe VAULT_N_NAME / VAULT_N_PATH en variables d'env
- Commandes Tauri: add_vault, remove_vault, list_vaults
- Nécessite restart_backend() pour appliquer les changements
2026-07-26 17:32:32 -04:00
bruno 85e2912d62 fix: backend data/ dans %APPDATA%\ObsiGate au lieu de Program Files
CI / lint (push) Successful in 25s
CI / security (push) Successful in 13s
CI / test (push) Successful in 28s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 25s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- spawn_backend: current_dir → app_data_dir() (writable sur Windows)
- PYTHONPATH = exe_dir pour que 'import backend' trouve le package
- Création de data/ dans app_data_dir avant le spawn

Corrige PermissionError [WinError 5] Access is denied: 'data'
2026-07-26 17:14:28 -04:00
bruno 004bf6f10b fix: bundle MSI — copier backend/frontend dans desktop/ avant build Tauri
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 23s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- tauri.conf.json: resources: backend/**/* + frontend/**/* (local, pas ../)
- build-windows.bat: étape 2b copie backend+frontend dans desktop/, clean après build
- .gitignore: desktop/backend/ + desktop/frontend/
2026-07-26 16:50:46 -04:00
bruno bbf23df6ab fix: taskkill au début du script (étape 0) avant de toucher python-embed
CI / lint (push) Successful in 24s
CI / security (push) Successful in 15s
CI / test (push) Successful in 29s
CI / build (push) Successful in 7s
CI / e2e (push) Failing after 23s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
Évite 'os error 32' quand Tauri essaie de lire python-embed/ pour le bundle
alors que le processus Python du run précédent verrouille les .pyd
2026-07-26 16:04:06 -04:00
bruno 0a560d5f7b fix: double tray icon + bundle resources pour MSI
CI / lint (push) Successful in 23s
CI / security (push) Successful in 14s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 20s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- tauri.conf.json: supprimer trayIcon (géré par build_tray_menu dans main.rs → plus de double icône)
- tauri.conf.json: ajouter bundle.resources (python-embed/**, ../backend/**, ../frontend/**)
- build-windows.bat: echo ..>> dans _pth AVANT build Tauri (pour que le bundle ait le bon sys.path)
2026-07-26 14:57:32 -04:00
bruno b6a03fff42 fix: plugins.single-instance attend null pas {} (même problème que store)
CI / lint (push) Successful in 22s
CI / security (push) Successful in 13s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 8s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 14:17:43 -04:00
bruno ae6b997b72 fix: nettoyer warning state_clone + xcopy /Y + taskkill avant copie runtime
CI / lint (push) Successful in 24s
CI / security (push) Successful in 13s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 27s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- main.rs: supprimer state_clone unused dans restart_backend
- build-windows.bat: taskkill /F python.exe avant xcopy (évite Access denied)
- build-windows.bat: /Y sur xcopy (pas de prompt interactif)
- build-windows.bat: 2>nul sur rmdir (silencieux si dossier absent)
2026-07-26 14:11:54 -04:00
bruno 96d426a2e1 fix: plugins.store attend null pas {} (invalid type: map, expected unit)
CI / lint (push) Successful in 22s
CI / security (push) Successful in 17s
CI / test (push) Successful in 27s
CI / build (push) Successful in 17s
CI / e2e (push) Failing after 22s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 13:53:31 -04:00
bruno e78248c296 fix: move closure + MutexGuard Send dans la boucle de monitoring
CI / lint (push) Successful in 23s
CI / security (push) Successful in 13s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 22s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- setup: move |app| pour ownership de config
- monitoring loop: MutexGuard droppé dans un bloc avant wait_for_backend().await
2026-07-26 13:04:10 -04:00
bruno 8212a9453a fix: erreurs de compilation — MutexGuard Send, i32/u32→f64, exe_dir Option, warnings
CI / lint (push) Successful in 22s
CI / security (push) Successful in 16s
CI / test (push) Successful in 27s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 20s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- check_backend_health: dropper MutexGuard avant .await (Send bound)
- pos.x/y (i32) → as f64, size.width/height (u32) → as f64
- current_exe: .ok().and_then() au lieu de .and_then() (Option vs Result)
- Supprimer state_clone unused + _app pour save_window_state
2026-07-26 13:01:43 -04:00
bruno 704ad94cb9 fix: retirer single-instance:default des capabilities (plugin sans permissions)
CI / lint (push) Successful in 21s
CI / security (push) Successful in 13s
CI / test (push) Successful in 26s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 12:58:04 -04:00
bruno 68bb9c3068 feat: Phase 1 complete — config persistante, single instance, restart, tray, logging, crash detection
CI / lint (push) Successful in 22s
CI / security (push) Successful in 12s
CI / test (push) Successful in 25s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 11s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
1. Config persistante: AppConfig (vault_path, window x/y/w/h) sauvegardé dans %APPDATA%\ObsiGate\config.json
2. Single instance: tauri-plugin-single-instance — 2e lancement focus la fenêtre existante
3. Redémarrage backend: commande restart_backend + check_backend_health + restart auto après crash
4. Tray menu: Ouvrir, À propos, Quitter + clic gauche toggle fenêtre
5. Logging: env_logger + chrono → stdout/stderr du backend capturés dans logs/backend.log
6. Crash detection: boucle de monitoring toutes les 5s, notifie l'UI si le processus meurt

Dépendances ajoutées: tauri-plugin-store, tauri-plugin-single-instance, log, env_logger, chrono
2026-07-26 12:50:09 -04:00
bruno ed50aef6f7 Enable tray icon and fix build scripts
CI / lint (push) Successful in 25s
CI / security (push) Successful in 15s
CI / test (push) Successful in 30s
CI / build (push) Successful in 14s
CI / e2e (push) Failing after 25s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 12:41:29 -04:00
bruno 1b4a6ff0cf fix: ensurepip pour Python embed + CSP autorise 127.0.0.1
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 11s
CI / e2e (push) Failing after 35s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- build-windows.bat: ajouter python -m ensurepip --upgrade (Python embed n'a pas pip)
- tauri.conf.json: ajouter http://127.0.0.1:* dans toutes les directives CSP
  Sans ça, 'self' = schéma tauri://, pas le backend local → CSS/images bloqués
2026-07-26 11:32:43 -04:00
bruno 99fa464dca fix: build-windows.bat — forcer réinstall pip deps + retirer plugins.shell.scope
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 7s
CI / e2e (push) Failing after 35s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- build-windows.bat: supprimer python-embed/ à chaque build (plus de skip si python.exe existe)
  Sans ça, uvicorn manquait car installé une seule fois puis jamais recopié
- tauri.conf.json: retirer plugins.shell.scope — déprécié en Tauri v2, géré par capabilities
2026-07-26 11:23:55 -04:00
bruno fd41175ad8 fix: revue complète obsigate-desktop — 6 correctifs pour le prochain build
CI / lint (push) Successful in 24s
CI / security (push) Successful in 13s
CI / test (push) Successful in 27s
CI / build (push) Successful in 9s
CI / e2e (push) Failing after 26s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
1. main.rs: .current_dir(exe_dir) pour que Python trouve backend/ (pas le cwd hérité)
2. build-windows.bat: dir bundles pointe vers target/x86_64-.../release (était target/release)
3. build-windows.bat: supprimer étape 3 inutile (frontend-static) — Tauri utilise ../frontend
4. capabilities/default.json: requis par Tauri v2 (permissions plugins)
5. tauri.conf.json + Cargo.toml: retirer updater (placeholder sans clé)
6. .gitignore: ajouter desktop/target/, python-embed/, frontend-static/
7. build-linux.sh: mêmes corrections (bundles path, simplification)
2026-07-26 11:06:53 -04:00
bruno fc93f550e0 fix: résoudre python-embed relativement à l'exe + copier runtime dans output dir
CI / lint (push) Successful in 30s
CI / security (push) Successful in 16s
CI / test (push) Successful in 29s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 42s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- main.rs: utiliser current_exe().parent() au lieu de ./ relatif au cwd
- build-windows.bat: étape 5b qui copie python-embed/ et backend/ dans target/release
2026-07-26 11:02:57 -04:00
bruno f3818181d4 fix: lifetime error — ajouter ; après MutexGuard pour dropper le temporaire avant state
CI / lint (push) Successful in 25s
CI / security (push) Successful in 17s
CI / test (push) Successful in 31s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 26s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
Le compilateur suggérait: consider adding semicolon after the expression
so its temporaries are dropped sooner (E0597)
2026-07-26 10:46:59 -04:00
bruno 727ca278ca fix: icon.png en mode RGBA (Tauri exige canal alpha)
CI / lint (push) Successful in 26s
CI / security (push) Successful in 16s
CI / test (push) Successful in 34s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 21s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
convert('RGBA') au lieu de RGB — le proc macro tauri-build rejette les PNG sans alpha
2026-07-26 10:44:36 -04:00
bruno 90f21d35cf fix: convertir icon.png en vrai PNG (était JPEG) + .gitattributes pour protéger les binaires
CI / lint (push) Successful in 24s
CI / security (push) Successful in 15s
CI / test (push) Successful in 28s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 33s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
Le générateur produisait un JPEG sauvegardé en .png, corrompu par Git CRLF sur Windows.
Ajout de .gitattributes avec binary pour *.png, *.ico, *.exe, etc.
2026-07-26 10:42:30 -04:00
bruno 0d0a8c013f feat: ajouter les icônes desktop (ico, png, icns) générées depuis le logo ObsiGate
CI / lint (push) Successful in 35s
CI / security (push) Successful in 16s
CI / test (push) Successful in 29s
CI / build (push) Successful in 15s
CI / e2e (push) Failing after 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 10:39:23 -04:00
bruno 7f24fe7d01 fix: build Windows — nettoyer python-embed avant extraction + supprimer champs NSIS invalides
CI / lint (push) Successful in 29s
CI / security (push) Successful in 18s
CI / test (push) Successful in 29s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 16s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- build-windows.bat: rmdir python-embed avant téléchargement (évite conflit Expand-Archive)
- tauri.conf.json: retirer shortcutName et createDesktopShortcut (n'existent pas dans NsisConfig Tauri v2)
2026-07-26 10:32:52 -04:00
bruno 301c325af7 Refactor frontend into ES modules with modern tooling
CI / lint (push) Successful in 25s
CI / security (push) Successful in 19s
CI / test (push) Successful in 29s
CI / build (push) Successful in 8s
CI / e2e (push) Failing after 21s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-26 10:29:19 -04:00
bruno 29d1332178 fix: build Windows — URL Python embed 3.11.9 + supprimer wix:null conflit Tauri v2
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 19s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- build-windows.bat: Python 3.11.15→3.11.9 (dernière version avec binaires embed)
- tauri.conf.json: supprimer "wix": null (causait conflit anyOf avec nsis dans Tauri v2)
2026-07-26 10:25:32 -04:00
bruno 23fdc4d8f2 docs: utiliser Scoop pour les prérequis Windows dans les README desktop
CI / lint (push) Successful in 25s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 6s
CI / e2e (push) Failing after 25s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- desktop/README.md: section Windows réécrite avec scoop install rustup curl git
- README.md: build from source Windows mis à jour avec Scoop
2026-07-26 10:10:48 -04:00
bruno cf30dfb48c docs: ajouter section Desktop (Tauri) dans README principal + refonte desktop/README.md
CI / lint (push) Successful in 56s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 7s
CI / e2e (push) Failing after 28s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- README.md: nouvelle section Desktop avec install binaires (.deb/.AppImage/.msi), build from source, architecture
- desktop/README.md: refonte complète — install binaires, build, démarrage, config vaults, dépannage
2026-07-26 10:01:36 -04:00
bruno db72e6f055 feat: Tauri desktop shell — Rust backend + config files + build scripts
CI / lint (push) Successful in 30s
CI / security (push) Successful in 13s
CI / test (push) Successful in 27s
CI / build (push) Successful in 5s
CI / e2e (push) Failing after 13s
- desktop/Cargo.toml: Tauri + plugins (dialog, notification, fs, updater)
- desktop/tauri.conf.json: Windows (.msi/.nsis) + Linux (.deb/.AppImage) config
- desktop/src/main.rs: spawn Python backend, health check, tray icon, commands
- desktop/build.rs: Tauri build hook
- desktop/python-embed/sidecar.py: uvicorn launcher with port auto-detect
- build-windows.bat: automated Windows build with Python embed download
- build-linux.sh: automated Linux build with venv
- desktop/README.md: architecture doc + usage guide
- desktop/validate-structure.sh: CI validation script
- ROADMAP.md: #77 Tauri Desktop section added
2026-07-24 18:01:33 -04:00