bruno
3131277b19
feat(forge): assistant IA partage et plein ecran Forge/Editer ( #101 )
CI / lint (push) Successful in 1m33s
CI / security (push) Successful in 1m1s
CI / test (push) Successful in 2m50s
CI / build (push) Successful in 1m6s
CI / e2e (push) Successful in 10m48s
2026-09-17 08:30:32 -04:00
bruno
23a3c147cd
fix(editor): le bouton Sauvegarder ne reste plus bloque sur le spinner (BUG-054)
CI / lint (push) Successful in 1m45s
CI / security (push) Successful in 1m1s
CI / test (push) Successful in 2m55s
CI / build (push) Successful in 57s
CI / e2e (push) Successful in 10m48s
2026-09-17 08:00:13 -04:00
bruno
f02174af57
fix(ai): mode agent utilise les outils natifs au lieu du bloc obsigate-action (BUG-053)
CI / lint (push) Successful in 1m33s
CI / security (push) Successful in 1m0s
CI / test (push) Successful in 2m57s
CI / build (push) Successful in 56s
CI / e2e (push) Successful in 10m48s
2026-09-17 07:30:31 -04:00
bruno
e3434d19ea
fix(ai): garantir une reponse finale quand la boucle d'agent epuise son budget (BUG-052)
CI / lint (push) Successful in 1m31s
CI / security (push) Successful in 1m2s
CI / test (push) Successful in 3m25s
CI / build (push) Successful in 56s
CI / e2e (push) Successful in 10m41s
2026-09-16 23:28:56 -04:00
bruno
62cff271d8
fix(ai): entetes navigateur pour le repli web_search (Bing/DDG, BUG-051)
CI / lint (push) Successful in 1m39s
CI / security (push) Successful in 1m0s
CI / test (push) Successful in 2m9s
CI / build (push) Successful in 56s
CI / e2e (push) Successful in 11m9s
2026-09-16 23:17:27 -04:00
bruno
56b46cde0e
fix(ai): chaine de repli web_search (SearXNG -> DuckDuckGo -> Bing, BUG-051)
CI / lint (push) Successful in 1m32s
CI / security (push) Successful in 1m0s
CI / test (push) Successful in 3m8s
CI / build (push) Successful in 56s
CI / e2e (push) Successful in 10m44s
2026-09-16 23:13:44 -04:00
bruno
75b8d294b0
feat(ai): 30 skills integres et prompts enrichis
CI / lint (push) Successful in 1m36s
CI / security (push) Successful in 59s
CI / test (push) Successful in 2m44s
CI / build (push) Successful in 57s
CI / e2e (push) Successful in 11m31s
2026-09-16 22:13:42 -04:00
bruno
634d10cdd4
fix(ai): creation dossier+fichier en mode agent (BUG-050)
CI / lint (push) Successful in 1m32s
CI / security (push) Successful in 1m7s
CI / test (push) Successful in 3m6s
CI / build (push) Successful in 55s
CI / e2e (push) Successful in 10m48s
2026-09-16 21:10:38 -04:00
bruno
0d4f43a8bf
test(ai): collecter toutes les requetes pour eviter la course avec l'hydratation d'historique
CI / lint (push) Successful in 1m31s
CI / security (push) Successful in 1m0s
CI / test (push) Successful in 2m42s
CI / build (push) Successful in 55s
CI / e2e (push) Successful in 11m10s
2026-09-16 20:22:15 -04:00
bruno
4231f2e929
feat(sidebar+assistant): filtre Recents/Sauvegardes ( #99 ), pastille Deep Research ( #100 ) et icone du bouton + (BUG-049)
CI / lint (push) Failing after 1m20s
CI / build (push) Skipped
CI / security (push) Successful in 59s
2026-09-16 20:16:41 -04:00
bruno
8f26a418a9
test(ai): rendre le test du menu mention non flaky (nettoyage d'etat + attente du fetch)
CI / lint (push) Successful in 1m29s
CI / security (push) Successful in 1m3s
CI / test (push) Successful in 2m55s
CI / build (push) Successful in 55s
CI / e2e (push) Successful in 10m44s
2026-09-16 19:30:15 -04:00
bruno
f50a9f5bf3
docs(roadmap): clore la livraison #98 + BUG-048 avec la confirmation CI (v2.5.0, run #1511 )
CI / lint (push) Failing after 1m19s
CI / build (push) Skipped
CI / security (push) Successful in 58s
2026-09-16 16:29:36 -04:00
bruno
8e2b6203a1
feat: filtre de recherche dans la sidebar Historique IA ( #98 ) + menus '@' et '/' depuis le menu '+' (BUG-048)
CI / lint (push) Successful in 1m28s
CI / security (push) Successful in 58s
CI / test (push) Successful in 2m19s
CI / build (push) Successful in 54s
CI / e2e (push) Successful in 10m44s
2026-09-16 16:11:54 -04:00
bruno
c9e3240ae2
feat(assistant): #94-#97 historique permanent, sidebar IA, panneau + et bouton rond
CI / lint (push) Successful in 1m28s
CI / security (push) Successful in 58s
CI / test (push) Successful in 2m9s
CI / build (push) Successful in 1m3s
CI / e2e (push) Successful in 11m12s
2026-09-16 14:56:45 -04:00
bruno
0841778b99
docs(agents): versionnage automatique documente dans AGENTS.md + menage des fichiers temporaires
...
CI / lint (push) Successful in 1m26s
CI / security (push) Successful in 57s
CI / test (push) Successful in 2m16s
CI / build (push) Successful in 53s
CI / e2e (push) Successful in 10m40s
AGENTS.md : la checklist de fin de tache rappelle que VERSION est la source unique de verite, incrementee a chaque commit par le hook, avec resynchronisation des derives et publication du tag au push ; ligne ajoutee a la cartographie documentaire. Suppression des captures de diagnostic (diag-*.png, ogdiag.png, state.png) et du script jetable tmp-verify-inline.cjs.
2026-09-16 12:12:06 -04:00
bruno
788d84a2bf
fix(editeur): #93 garde-fous de session d'edition inline (onglets, ecriture externe) + hooks de versionnage documentes
...
CI / lint (push) Successful in 1m27s
CI / security (push) Successful in 57s
CI / test (push) Successful in 2m52s
CI / build (push) Successful in 53s
CI / e2e (push) Successful in 10m45s
Une session d'edition inline (Editer/Forge) qui possede la zone de contenu etait detruite par deux chemins qui vident cette zone : activation d'onglet (TabManager.activate, PaneTabManager.activate) -> detachInlineEditor() avant le placeholder ; evenement SSE index_updated -> reloadExternalWrite() recharge le tampon de l'editeur au lieu de re-rendre la vue lecture. Nouveau helper queryEditor() ; closeEditor() remet le conteneur dans la modale avant de restaurer en-tete/pied/marque. docs/CONTRIBUTING.md documente scripts/install-hooks.sh.
2026-09-16 11:43:41 -04:00
bruno
168261964e
docs(version): preciser le SHA reecrit par l'amend du hook post-commit
CI / lint (push) Successful in 1m27s
CI / security (push) Successful in 57s
CI / test (push) Successful in 3m27s
CI / build (push) Successful in 53s
CI / e2e (push) Successful in 10m59s
2026-09-16 11:20:29 -04:00
bruno
2f129c3f23
chore(scripts): outil de controle du CI Gitea (runs et jobs par head_sha)
...
scripts/check_ci.py : interroge l'API Gitea (jeton via git credential fill, User-Agent navigateur) et rapporte l'etat des jobs du run correspondant au HEAD local. Bump automatique de version = demonstration du hook prepare-commit-msg.
2026-09-16 11:20:13 -04:00
bruno
d98c0c2f33
fix(version): BUG-047 la version suit chaque livraison (source unique VERSION + bump SemVer automatique)
...
CI / lint (push) Successful in 1m27s
CI / security (push) Successful in 57s
CI / test (push) Successful in 3m11s
CI / build (push) Successful in 54s
CI / e2e (push) Successful in 10m59s
VERSION (racine) devient la source unique de verite MAJEUR.MINEUR.CORRECTIF, incrementee a chaque commit par le hook prepare-commit-msg (BREAKING -> majeur, feat -> mineur, sinon correctif) ; post-commit rattache les fichiers derives au commit et cree le tag vX.Y.Z, publie au push (push.followTags). Tous les derives sont resynchronises : package.json, desktop Tauri, README.md/README.fr.md, docs/ROADMAP.md, CHANGELOG.md. Backend, image Docker et desktop lisent le meme fichier (plus de numero code en dur). Outils : scripts/bump_version.py, scripts/install-hooks.sh. Tests : tests/test_version.py (46, garde-fou de coherence globale).
2026-09-16 11:02:47 -04:00
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 / build (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 / build (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 / build (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