bruno
ed4c1dcf07
feat: split view pro — TabManager indépendant par panneau avec drag & drop cross-pane
...
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- PaneTabManager factory: chaque panneau a sa propre instance avec ses propres onglets
- Drag & drop d'onglets entre panneaux (application/obsigate-tab dataTransfer)
- Split copie l'onglet actif dans le nouveau panneau
- TabManager singleton: délégation automatique vers le panneau actif en mode split
- Persistance complète par panneau (tabs, activeTab, previewTab)
- viewer.js: getContentArea() priorise window._activePaneContentArea
- 307 tests verts, déployé sur 192.168.30.101:2020
2026-07-27 21:37:04 -04:00
bruno
b27b38d32b
feat: split view multi-panneaux ( #75 ) — PaneManager intégré avec split right/down, menu contextuel, raccourcis clavier, CSS responsive et tests
...
CI / lint (push) Failing after 35s
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
- PaneManager: splitRight/splitDown avec 1-4 panneaux, persistance localStorage, resize
- Viewer/TabManager pane-aware: fonctions getContentArea/getTabBar/getTabList
- Menu contextuel onglets: actions Diviser à droite / Diviser en bas / Fermer le panneau
- Raccourcis clavier: Ctrl+Alt+\ (split right), Ctrl+Alt+Shift+\ (split down), Ctrl+Alt+W (fermer panneau)
- CSS pane-grid: grille, poignées resize, bordure active pane, responsive (désactivé <768px)
- Tests: 22 nouveaux tests unitaires + régression (307 total, 100% green)
- Déployé sur Docker test (localhost:2021)
2026-07-27 21:06:47 -04:00
bruno
0cea78b3b1
feat: badge version dans le header + tag v2.0.0-dev
...
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
- index.html: <div class="version-badge"> dans header-right
- app.js: fetch /api/health → affiche version dans le badge
- style.css: .version-badge discret (10px, mono, muted)
- Tag: v2.0.0-dev créé → git describe retourne v2.0.0-dev
2026-07-27 18:02:01 -04:00
bruno
efb59230e7
fix: VERSION généré par build.sh avant docker build (pas dans Dockerfile)
...
CI / lint (push) Failing after 13s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 13s
- build.sh: git describe --tags --dirty > backend/VERSION avant docker compose build
- Dockerfile: COPY backend/VERSION (pré-généré, plus fiable que .git dans le contexte)
- .dockerignore: revert (plus besoin d'autoriser .git/HEAD)
- .gitignore: backend/VERSION (généré, pas commité)
2026-07-27 17:19:09 -04:00
bruno
9d91da6656
fix: .dockerignore autorise .git/HEAD + .git/refs/ pour le build VERSION
CI / lint (push) Failing after 8s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 13s
2026-07-27 17:18:06 -04:00
bruno
a80df670be
fix: version Docker — générer VERSION file depuis .git/HEAD au build
...
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 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- Dockerfile: COPY .git/HEAD + .git/refs/ → génère backend/VERSION avec hash
- version.py: fallback lit backend/VERSION (à côté du module, pas racine repo)
- Format: 1.8.0-0-g<8-char-hash> ou 1.8.0-dev si indisponible
2026-07-27 17:17:47 -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
e213ad183e
feat: support multi-format — images, CSV, JSON, TXT + fix PDF embed
...
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 14s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- PDF: <iframe> → <embed> (plus compatible webview Tauri)
- Images: .png .jpg .gif .svg .webp .bmp .ico → rendu standalone avec toolbar
- CSV: rendu en tableau HTML avec headers sticky
- JSON: affichage formaté avec indentation (html.escape)
- Texte: .txt .log .yml .yaml .py .js .sh .toml .ini → <pre> mono
- CSS: .image-viewer-body, .csv-table, .text-viewer, .json-viewer, .file-toolbar
2026-07-27 15:06:24 -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
4631168d1d
fix: retirer desktop/backend/ et desktop/frontend/ du .gitignore (Tauri ignore les fichiers gitignorés au bundle)
...
CI / lint (push) Successful in 22s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 23s
Ces dossiers sont créés par le script de build et nettoyés après — ils ne doivent pas être gitignorés
sinon Tauri ne les inclut pas dans le .exe NSIS
2026-07-27 11:46:48 -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
ec32030afc
fix: always show copy button on mobile (no hover on touch)
...
CI / lint (push) Successful in 30s
CI / security (push) Successful in 13s
CI / test (push) Successful in 28s
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
- @media (max-width: 768px): .copy-code-btn opacity: 1
- Smaller padding/font on mobile (2px 8px, 10px font)
- Tighter position (top: 4px, right: 4px) to avoid overlapping content
2026-07-25 13:04:34 -04:00
bruno
553e1dd4ee
fix: add copyToClipboard import in viewer.js
...
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 29s
CI / build (push) Successful in 7s
CI / e2e (push) Failing after 25s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
- Was missing from utils.js import → ReferenceError
2026-07-25 10:36:42 -04:00
bruno
cdaea4142b
fix: remove duplicate safeHighlight declaration in utils.js
...
- Caused 'Identifier already declared' error — app won't load
- Original safeHighlight at line 250 (initEditor scope), duplicate removed
2026-07-25 10:35:18 -04:00
bruno
5426022273
fix: HTTP fallback for clipboard — execCommand('copy') textarea method
...
- Added copyToClipboard() in utils.js with dual strategy:
- HTTPS: navigator.clipboard.writeText() (modern API)
- HTTP: textarea + execCommand('copy') (legacy fallback)
- viewer.js: uses copyToClipboard() instead of direct navigator.clipboard
- popout.html: same dual-strategy inline
- Fixed: 'Erreur lors de la copie' on HTTP contexts
2026-07-25 10:32:39 -04:00