Commit Graph
716 Commits
Author SHA1 Message Date
bruno 524e6da591 feat(bookslm): v2.2.0 - BooksLM chat AI contextuel par répertoire + 4 providers AI
CI / lint (push) Failing after 16s
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
BooksLM (#76):
- Panneau chat slide-in 450px, clic-droit répertoire → 🧠 BooksLM
- Collecte récursive .md avec limites (200 fichiers, 200K chars)
- Cache SHA-256, redaction secrets, priorité README/index
- SSE streaming, badges sources cliquables, historique localStorage
- Commandes palette: BooksLM ouvrir/nouvelle conversation

Providers AI (4 nouveaux):
- NVIDIA (integrate.api.nvidia.com)
- QwenCloud (dashscope.aliyuncs.com)
- Xiaomi (api.xiaomi.com)
- Mistral (api.mistral.ai)
- Tous OpenAI-compatible, auto-listing modèles

Fix: dropdown config-select suit maintenant le thème (option bg/color)
27 tests BooksLM + 466 tests au total
2026-09-06 19:42:40 -04:00
bruno 6292bfd9cb docs(roadmap): #64 #65 #66 marqués FAIT
CI / lint (push) Failing after 17s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 20s
2026-09-06 18:43:57 -04:00
bruno 83063d3a18 feat(auth): v2.1.0 - MFA TOTP avec QR code, recovery codes
CI / lint (push) Failing after 16s
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
- backend/auth/mfa.py: TOTP (pyotp), recovery codes SHA-256
- Login flow: mfa_required → totp/verify → token (ou recovery)
- 6 nouveaux endpoints /api/auth/mfa/*
- Frontend: QR code setup, 6-digit auto-submit, recovery codes
- Settings: section Sécurité avec enable/disable MFA
- CSS: mfa-challenge, setup-card, recovery-list, badges
- i18n: 36 nouvelles clés EN/FR
- pyotp ajouté aux dépendances
- 30 tests (TOTP, recovery, API endpoints, login flow)
- 439 tests passent au total
2026-09-06 18:42:32 -04:00
bruno 7b0dacabdd feat(export): v2.1.0 - export multi-formats HTML/MD-bundle/ePub
- backend/export.py: 3 exporters (HTML standalone, ZIP MD, ePub 3)
- HTML: CSS inliné, images base64, navigation wikilinks
- MD bundle: ZIP préserve structure répertoire
- ePub: zipfile + mistune, zero nouvelle dépendance
- 3 endpoints API: /api/export/{html,md-bundle,epub}
- UI: dropdown Export dans toolbar viewer (HTML/MD/ePub)
- 20 tests (validité, contenu, erreurs, API)
- 439 tests passent au total
2026-09-06 18:42:26 -04:00
bruno c8b861f0b6 feat(themes): v2.1.0 - themes personnalisés avec presets light/dark/high-contrast/sepia
- 4 modes: dark, light, high-contrast, sepia (40+ CSS vars chacun)
- Import/export thèmes personnalisés en JSON
- Grid swatches dans les paramètres avec preview
- toggleThemeMode() cycle through all 4 modes
- CustomEvent 'themechange' dispatché
- 18 tests unitaires (structure, generators, colors, i18n keys)
- 439 tests passent au total
2026-09-06 18:42:20 -04:00
bruno 09912509cb docs(roadmap): #77 Desktop marqué complet — D/E/F mis à jour
CI / lint (push) Failing after 16s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 21s
- D. Build et distribution: build local vérifié, CI existant
- E. UX: crash handler, preferences save, first-run defaults
- F. Tests: 16 tests Rust, build debug+release OK
- Items optionnels restants: wizard interactif, jumplist, signature code
2026-09-06 18:25:29 -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 d20e623f0c fix(docker): build sans fichier VERSION pre-genere (docker compose build direct)
CI / lint (push) Failing after 23s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 32s
backend/VERSION est gitignore (genere par build.sh/CI) donc le COPY
echouait sur un clone propre. Remplace par le COPY backend/ existant +
ARG VERSION avec RUN fallback ; docker-compose.yml injecte VERSION via
build args. docker compose build --no-cache fonctionne desormais sans
build.sh.
2026-09-02 08:41:45 -04:00
bruno ef7a3ff1ed fix(watcher): auto-polling sur mounts reseau (NFS/SMB) pour maj temps reel des recents
CI / lint (push) Failing after 25s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 28s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
inotify ne voit pas les ecritures faites depuis d'autres clients NFS
(Obsidian sur Windows), donc index_updated n'etait jamais emis et la
section Recent du sidebar ne se rafraichissait pas. Detection du fstype
par vault via /proc/mounts -> PollingObserver (stat-based) sur mounts
reseau, Observer natif conserve sur les mounts locaux.
2026-09-02 08:16:21 -04:00
bruno 2115cb9085 chore: ignore desktop/checksums.txt (artefact regenere par publish_release.py)
CI / lint (push) Successful in 29s
CI / security (push) Successful in 26s
CI / test (push) Successful in 39s
CI / build (push) Successful in 13s
CI / e2e (push) Successful in 6m7s
2026-08-25 21:23:21 -04:00
bruno 5f981509ac fix(publish): user-agent navigateur pour contourner le blocage Cloudflare 1010 (writes Gitea)
CI / lint (push) Successful in 30s
CI / security (push) Successful in 22s
CI / test (push) Successful in 35s
CI / build (push) Successful in 13s
CI / e2e (push) Successful in 6m7s
2026-08-25 21:23:04 -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
v2.0.0
2026-08-25 21:21:51 -04:00
bruno f6f08eef61 chore: ignore les scripts de debogage _*.py
CI / lint (push) Successful in 29s
CI / security (push) Successful in 27s
CI / test (push) Successful in 38s
CI / build (push) Successful in 21s
CI / e2e (push) Successful in 5m50s
2026-08-25 11:59:18 -04:00
bruno 67f469acfd docs: changelog 2.0.0/1.8.0 et registre de suivi des bugs
CI / lint (push) Successful in 29s
CI / security (push) Successful in 19s
CI / test (push) Successful in 34s
CI / build (push) Successful in 1m19s
CI / e2e (push) Successful in 5m56s
Ajoute les sections 2.0.0 Unreleased et 1.8.0 au CHANGELOG, ainsi que le registre de suivi des bugs et TODOs de correction.
2026-08-25 09:13:56 -04:00
bruno d6328e7b58 docs: README anglais + regles obligatoires tests/CI
Traduction complete du README en anglais et ajout de la section Tests et CI (regles obligatoires avant chaque push) dans les deux langues.
2026-08-25 09:13:41 -04:00
bruno 46e08abad1 chore(vault): reduit la fixture mermaid de test
La fixture contenait 22 diagrammes volumineux inutiles pour les tests ; un sous-ensemble representatif suffit.
2026-08-25 09:13:36 -04:00
bruno f6f4dad0ec test: script e2e local + commande npm test:e2e
Reproduit les conditions du job CI e2e (backend natif, auth desactivee, port 2029, projet chromium-desktop) pour valider localement avant chaque push.
2026-08-25 09:13:24 -04:00
bruno 077bfc0b6a fix(test): encoding utf-8 explicite pour read_text
Corrige les lectures de fichiers frontend qui echouent selon la locale par defaut.
2026-08-25 09:13:06 -04:00
bruno c6a1f8f54f fix(e2e): cible le selecteur .cp-input du palette
L'input de la palette porte la classe .cp-input et non l'id #cp-input. Le fallback de dispatch manuel du raccourci est supprime : la cause racine est traitee.
2026-08-25 09:12:57 -04:00
bruno 4038346de0 fix(e2e): reset panes - ouverture du palette via Control+Shift+Space + fallback dispatch
CI / lint (push) Successful in 28s
CI / security (push) Successful in 20s
CI / test (push) Successful in 33s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 5m37s
- le press Playwright Control+Shift+ (espace final) ne declenchait pas le handler de l app
2026-08-24 23:20:54 -04:00
bruno 14d0b6b7ee fix(e2e): reset panes - assertion stricte sur l ouverture du palette (diagnostic)
CI / lint (push) Successful in 29s
CI / security (push) Successful in 21s
CI / test (push) Successful in 34s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 5m58s
2026-08-24 23:09:43 -04:00
bruno d32ee1110b fix(e2e): dropdown autocomplete reste ferme apres une recherche (flag) + reset panes attend le rendu
CI / lint (push) Successful in 28s
CI / security (push) Successful in 21s
CI / test (push) Successful in 33s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 6m12s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- search.js : suppression par flag (jusqu a la prochaine frappe) au lieu d un timeout 500ms qui expirait avant le clic sur le bouton Forge

- split-view.spec.js : le test reset panes attend l apparition de la liste de commandes (debounce 150ms du palette) avant Entree
2026-08-24 22:58:18 -04:00
bruno b0a1685dda fix(e2e): reset panes - prefixe > pour chercher une commande dans le palette
CI / lint (push) Successful in 28s
CI / security (push) Successful in 21s
CI / test (push) Successful in 34s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 6m36s
- sans >, le palette cherche des fichiers (mode par defaut) et ne trouve jamais la commande Reinitialiser les panneaux
2026-08-24 22:44:10 -04:00
bruno a9540c5750 ci: relance - echec DNS transitoire du runner (lookup github.com)
CI / lint (push) Successful in 29s
CI / security (push) Successful in 22s
CI / test (push) Successful in 35s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 5m44s
2026-08-24 22:30:59 -04:00
bruno 9a834e04ab fix(split-view): le split cree un pane vide (sans copie ni transfert d onglet)
CI / lint (push) Successful in 29s
CI / security (push) Successful in 21s
CI / test (push) Successful in 38s
CI / build (push) Failing after 15s
CI / e2e (push) Skipped
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- la copie de l onglet actif etait dedupe (fichier deja ouvert dans le pane source) et le transfert clavier (200ms) vidait le pane source -> auto-collapse -> grid disparu

- comportement coherent avec le menu contextuel : pane vide, l utilisateur y glisse ses fichiers
2026-08-24 22:25:11 -04:00
bruno 8c9e881922 fix(e2e): derniers tests split-view + Forge - dropdown autocomplete, transferTab menu, drag natif
CI / lint (push) Successful in 29s
CI / security (push) Successful in 21s
CI / test (push) Successful in 33s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 6m35s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- search.js : le dropdown d autocomplete ne se rouvre plus 500ms apres un hide (la recherche le rouvrait et bloquait les clics toolbar - test Forge)

- ui.js + pane-manager.js : le split via menu contextuel ne transfert plus l onglet en synchrone (vidait le pane source -> auto-collapse -> grid disparu)

- split-view.spec.js : navigation clavier attend la copie asynchrone (setTimeout 150ms qui reactivait pane 0)

- split-view.spec.js : drag depuis l arbre via dragTo (drag natif HTML5)
2026-08-24 22:12:56 -04:00
bruno 16e8bbf811 fix(e2e): split-view - openFile sans reload (les onglets simple-pane ne sont pas restaures au chargement)
CI / lint (push) Successful in 32s
CI / security (push) Successful in 21s
CI / test (push) Successful in 33s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 7m45s
- un goto() entre deux openFile perd les onglets du singleton (PaneManager.init ne restaure que les splits >= 2 panes)

- expansion du vault seulement si le fichier n est pas deja visible
2026-08-24 21:58:14 -04:00
bruno 7b53f64249 fix(e2e): split-view - openFile en dblclick (onglet persistant, pas preview)
CI / lint (push) Successful in 29s
CI / security (push) Successful in 23s
CI / test (push) Successful in 34s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 9m8s
- le clic simple ouvre un preview qui remplace l onglet precedent (openPreview ferme l ancien preview)

- dblclick -> openPersistent : onglets cumulables (requis pour les tests multi-onglets)
2026-08-24 21:44:15 -04:00
bruno 4505fe77c4 fix(e2e): split-view - openFile ouvre via l arbre sidebar (TabManager/onglets)
CI / lint (push) Successful in 28s
CI / security (push) Successful in 21s
CI / test (push) Successful in 34s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 9m25s
- le deep-link #file= ouvre l ancien viewer sans onglets (#tab-bar absent)

- le clic sur un tree-item passe par TabManager.openPreview/openPersistent
2026-08-24 20:47:35 -04:00
bruno 37b059aa82 fix(e2e): split-view - openFile utilise le deep-link reel #file=Vault:Path
CI / lint (push) Successful in 29s
CI / security (push) Successful in 23s
CI / test (push) Successful in 33s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 15m2s
- l app lit #file= (avec :), pas #/file/ ; le helper naviguait vers un format inexistant
2026-08-24 20:30:55 -04:00
bruno 70cb9ca6a2 fix(e2e): recherche sur Entree + fixtures note1/note2 + init filtre saved searches
CI / lint (push) Successful in 29s
CI / security (push) Successful in 19s
CI / test (push) Successful in 33s
CI / build (push) Successful in 13s
CI / e2e (push) Failing after 16m5s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- obsigate.spec.ts : searchFor appuie sur Entree (la recherche se declenche au keydown Enter, l autocomplete s affiche pendant la frappe)

- test_vault : ajout note1.md et note2.md (requis par les tests split-view)

- viewer.js : initialise la barre de filtres saved searches meme quand la liste est vide (sinon clics sans effet)
2026-08-24 20:08:56 -04:00
bruno b812afabbc fix(ci): e2e - fixtures copiees dans le container (docker cp) + 2 tests obsolètes mis a jour
CI / lint (push) Successful in 27s
CI / security (push) Successful in 18s
CI / test (push) Successful in 34s
CI / build (push) Successful in 12s
CI / e2e (push) Failing after 24m15s
- ci.yml e2e : les bind mounts C:\dev\git\python\ObsiGate sont vides en docker-in-docker (chemin du job container inexistant sur l hote) -> docker create + docker cp des fixtures + docker start

- obsigate.spec.ts : placeholder de recherche attendu mis a jour (Rechercher dans toutes les vaults...)

- obsigate.spec.ts : theme par defaut accepte defaut-obsigate (moteur themes.js) en plus de dark (ui.js legacy)
2026-08-24 19:37:30 -04:00
bruno 62eabb2944 fix(ci): e2e - fixtures de test versionnees + acces via passerelle docker (dind)
CI / lint (push) Successful in 30s
CI / security (push) Successful in 19s
CI / test (push) Successful in 34s
CI / build (push) Successful in 11s
CI / e2e (push) Failing after 25m16s
- test_vault/ et test_dir/ : fixtures markdown pour les tests E2E Playwright (22 fichiers, .obsigate-backup ignore)

- ci.yml e2e : health check et BASE_URL via IP passerelle docker (localhost du job container ne voit pas le port publie sur l hote)

- ci.yml e2e : l etape Start ObsiGate echoue explicitement si l app n est pas joignable
2026-08-24 16:48:37 -04:00
bruno fdc0b5b15a fix(ci): job build docker - generation backend/VERSION avant docker build
CI / lint (push) Successful in 28s
CI / security (push) Successful in 19s
CI / test (push) Successful in 33s
CI / build (push) Successful in 1m17s
CI / e2e (push) Failing after 4m12s
- backend/VERSION est gitignore et genere par build.sh, mais le job build du CI ne le generait pas : docker build echouait avec /backend/VERSION: not found

fix(ci): job e2e - reparation de l etape Start ObsiGate (YAML imbrique casse, port 2029, nettoyage du container stale)
2026-08-24 16:34:43 -04:00
bruno 62e191abfc fix(ci): lint ruff 0.16.3 - imports tries, check explicite, removeprefix
CI / lint (push) Successful in 28s
CI / security (push) Successful in 18s
CI / test (push) Successful in 36s
CI / build (push) Failing after 12s
CI / e2e (push) Skipped
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- backend/main.py : split import csv / import io as csv_io (I001)

- backend/version.py : check=False explicite sur subprocess.run (PLW1510)

- backend/version.py : tag.removeprefix() au lieu du slice conditionnel (FURB188)

- verifie localement avec ruff 0.16.3 : All checks passed!
2026-08-24 16:28:28 -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 6da7fa6786 fix(wikilinks): supporte les ancres internes [[#Titre|Texte]] et corrige les IDs de titres
CI / lint (push) Failing after 19s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 23s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- Ajoute la reconnaissance de la syntaxe Obsidian [[#Titre|Texte]] pour
  créer des liens d'ancre vers les titres du document courant.
- Corrige _heading_slugify pour ignorer les balises HTML et décoder les
  entités HTML (ex. &) avant de générer l'ID, évitant ainsi la
  pollution par les wikilinks placés dans les titres.
- Ajoute le style .wikilink-anchor et des tests couvrant ces cas.

Fixe le rendu du document TestDir/Agents IA - Panorama Complet 2026.md.
2026-08-13 15:24:52 -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 ba73af8ced fix: CSP font-src blocks Excalidraw fonts from esm.sh
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 14s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
CSP directive 'font-src' only allowed self, data:, and fonts.gstatic.com.
Excalidraw loads its handwriting fonts (*.woff2) from esm.sh via
EXCALIDRAW_ASSET_PATH. All ~12 font files were blocked (blocked:csp)
→ Excalidraw fails to initialize → infinite 'Loading...' spinner.

Fix: added https://esm.sh to font-src directive.
2026-07-29 21:14:36 -04:00
bruno 185d603a94 fix: Excalidraw loading forever — ReactDOM.createRoot undefined
CI / lint (push) Failing after 21s
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
Root cause: 'import ReactDOM from react-dom' resolves to the root
react-dom package which does NOT export createRoot in React 18.
createRoot lives in react-dom/client.

Changes:
- Changed import to 'react-dom/client' (line 109)
- Added error handling around the render call so loading spinner
  shows an error message instead of spinning forever on failures
2026-07-29 20:50:36 -04:00
bruno 9804cf9a6d feat(excalidraw): support .excalidraw.md (Obsidian plugin format) with lz-string decompression
CI / lint (push) Failing after 14s
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
2026-07-29 16:08:03 -04:00
bruno a4ea322c75 fix(excalidraw): send ready signal immediately (fix deadlock: iframe waited for init, parent waited for ready)
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 14s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-29 13:06:47 -04:00
bruno 7e5cd85b8a fix(excalidraw): use esm.sh ?alias param to force React 18.3.1 across entire dependency tree
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 13s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-29 11:45:09 -04:00
bruno 8c665fb568 fix(excalidraw): use import map to force React 18.3.1 for ALL modules including Excalidraw internals
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 23s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-29 11:41:30 -04:00
bruno 7d8fa18201 fix(excalidraw): pin React 18.3.1 exact version (esm.sh was resolving to React 19)
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
2026-07-29 11:32:15 -04:00
bruno b413ca9a0b chore: remove stray session files
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
2026-07-29 11:17:57 -04:00
bruno dfd8d5929c fix(excalidraw): fusion imports ESM en un seul module + CSP worker-src/blob:
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 29s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled
2026-07-29 11:17:06 -04:00
bruno 1b5319fde1 feat(excalidraw): support complet des fichiers .excalidraw (#78)
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: ajout .excalidraw dans SUPPORTED_EXTENSIONS + squelette JSON creation
- Backend: détection is_excalidraw dans api_file() + FileContentResponse
- Frontend: icône pen-tool dans EXT_ICONS
- Frontend: ajout dans la modale de création (ui.js)
- Frontend: excalidraw-editor.html (iframe autonome, React+Excalidraw via esm.sh)
- Frontend: excalidraw-viewer.js (postMessage, auto-save 2s, thème)
- Frontend: dispatch dans viewer.js (renderFile)
- Tests: 6 tests (détection, création squelette, fallback, tree, roundtrip)
- 359/359 tests passent
2026-07-29 10:55:00 -04:00
bruno ff38dd086e docs(roadmap): #78 — ajout création .excalidraw (modale, menu contextuel, squelette JSON)
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 19s
2026-07-29 10:44:40 -04:00
bruno 7b02bc9ab4 docs(roadmap): ajout #78 — Éditeur Excalidraw (.excalidraw)
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 32s
2026-07-29 10:38:49 -04:00