Commit Graph
100 Commits
Author SHA1 Message Date
bruno 8f3e602869 docs: CHANGELOG.md + README v1.7.0 + ROADMAPs mis à jour 2026-06-02 09:27:11 -04:00
bruno c74c2444d5 docs: section IA dans le guide d'utilisation + nav
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-05-30 23:14:59 -04:00
bruno a4e2d0629a fix: loading AI toast + flash vert auto-save + refresh doc après close editor
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 16s
2026-05-30 22:07:16 -04:00
bruno adbeb54887 feat: loading AI + tooltips + auto-save silencieux + hover transparent fix
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
2026-05-30 21:35:35 -04:00
bruno a662a4a3c2 fix: hover transparent + auto-save éditeur 2s 2026-05-30 20:36:13 -04:00
bruno 1352818b25 fix: strip() clés API + log masqué pour debug 401
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 10s
2026-05-30 20:18:13 -04:00
bruno aacdb1d42f fix: messages d'erreur AI clairs (401→clé invalide) + succès toast
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-05-30 20:06:24 -04:00
bruno 6c7d7b4506 fix: hover foncé + /api/ai/status + cache toolbar si pas de clé API
CI / lint (push) Failing after 13s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-05-30 19:57:39 -04:00
bruno e013ddc539 fix: AI toolbar container recréé après bodyEl.innerHTML = ''
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
2026-05-30 19:03:20 -04:00
bruno 281636efa0 fix: AI toolbar créée hors try/catch + simplifié imports circulaires
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-05-30 17:48:11 -04:00
bruno b76fc64325 fix: ajout méthode is_stale() manquante dans InvertedIndex 2026-05-30 17:00:00 -04:00
bruno b92fd3da08 feat: AI Editor — toolbar avec menus dropdown, multi-provider (DeepSeek/OpenRouter/Gemini)
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 11s
2026-05-30 16:44:42 -04:00
bruno ca84bfdf11 style: header graph 2 lignes responsives — titre flexible + recherche dédiée
CI / lint (push) Successful in 14s
CI / security (push) Successful in 7s
CI / test (push) Successful in 16s
CI / build (push) Successful in 4s
2026-05-30 08:48:35 -04:00
bruno 14192f67d7 feat: navigation graphe — ← → historique + ↑ Parent
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 9s
2026-05-30 08:39:29 -04:00
bruno 5783811448 style: tuile info top-left + bordure fine pâle
CI / lint (push) Successful in 13s
CI / security (push) Successful in 11s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-30 08:17:31 -04:00
bruno a8131a4285 feat: panneaux sticky + boutons close ✕
CI / lint (push) Successful in 16s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 16s
2026-05-30 08:00:50 -04:00
bruno de9f4b0bb5 feat: panneaux fixes — tuile info top-right + preview pleine hauteur droite
CI / lint (push) Successful in 16s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 3s
2026-05-30 07:52:01 -04:00
bruno a88be85623 feat: header graph flat design — 3 zones + barre statut + recherche unifiée
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-30 00:00:59 -04:00
bruno 4a916e80db feat: aperçu markdown formaté + metadata dans tooltip normal
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 9s
2026-05-29 23:45:26 -04:00
bruno 2a74503bed fix: header 2 lignes + aperçu utilise /raw + corrige regex newline
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 23:30:06 -04:00
bruno 3de990cf7d feat: header graph repensé + filtre tag + Ctrl+survol aperçu contenu
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 14s
CI / build (push) Successful in 2s
2026-05-29 22:58:22 -04:00
bruno 5a76a48e28 fix: loadSavedSearches() après sauvegarde — màj immédiate sans refresh
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 1s
2026-05-29 22:03:16 -04:00
bruno 146e431f55 fix: deleteFile() — finally garantit la restoration du bouton, même si showWelcome échoue
CI / build (push) Blocked by required conditions
CI / lint (push) Successful in 13s
CI / security (push) Successful in 12s
CI / test (push) Successful in 15s
2026-05-29 21:53:21 -04:00
bruno 279e632b4b fix: remove_recent() — nettoie les fichiers récents après suppression
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 21:27:18 -04:00
bruno 1243782b6a fix: capture vault/path avant closeEditor() pour rafraichir l'affichage après save
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 21:20:24 -04:00
bruno c20a61f8ba fix: shadowing state variable dans openEditor + imports manquants pour deleteFile
CI / lint (push) Successful in 15s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 21:11:27 -04:00
bruno ac3fa10310 fix: editorVault→state.editorVault + openFile import — bouton sauvegarde éditeur
CI / lint (push) Successful in 17s
CI / security (push) Successful in 8s
CI / test (push) Successful in 18s
CI / build (push) Successful in 3s
2026-05-29 21:01:30 -04:00
bruno ea74907098 fix: refreshSidebarTreePreservingState non importé dans ui/config/viewer
CI / lint (push) Successful in 16s
CI / security (push) Successful in 8s
CI / test (push) Successful in 24s
CI / build (push) Successful in 4s
2026-05-29 20:49:30 -04:00
bruno 87b6a82df8 fix: editorView/editorVault → state.editorView/state.editorVault dans saveFile()
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 3s
2026-05-29 20:41:43 -04:00
bruno 0befd161e3 fix: openEditor, openShareDialog, clipboard fallback — boutons Copier/Éditer/Partager
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 15s
2026-05-29 20:21:08 -04:00
bruno 3ad484001a fix: advancedSearchOffset → state.advancedSearchOffset + openFile dans dashboard.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 22s
2026-05-29 15:57:50 -04:00
bruno c0851d9860 fix: el dans ui.js + performAdvancedSearch dans viewer.js — documents et recherches sauvegardées
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 17s
CI / build (push) Successful in 5s
2026-05-29 15:49:25 -04:00
bruno eeae538d86 fix: flushIcons non importé dans sidebar.js
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-29 15:41:05 -04:00
bruno 3c93cebdf1 fix: appendHighlightedText non importé dans sidebar.js → erreur filtre sidebar
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 14:52:14 -04:00
bruno 7c288460c3 fix: buildFrontmatterCard non exporté de ui.js → cassait le rendu des documents (et donc les tabs)
CI / lint (push) Successful in 13s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 14:40:26 -04:00
bruno 8232f1bdf2 fix: TabManager.init() jamais appelé dans l'orchestrateur → tabs inexistants
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 14:02:57 -04:00
bruno 5d006ddc35 fix: TagFilterService non importé dans config/search/viewer — bloquait rendu résultats et affichage docs
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 5s
2026-05-29 13:54:02 -04:00
bruno 8da6e176f0 fix: removeTagFilter non importé + null-guard sur _tabBar
CI / lint (push) Waiting to run
CI / security (push) Successful in 9s
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
2026-05-29 13:41:31 -04:00
bruno fe1a2be364 fix: stem_token/stem_tokens — try/except sur crash snowballstemmer (IndexError sur tokens exotiques)
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 13:33:04 -04:00
bruno 10fbeccb5f fix: buildSearchResultsHeader, highlightSearchText, shouldDisplayPath — imports manquants bloquant l'affichage des résultats
CI / lint (push) Successful in 13s
CI / security (push) Successful in 12s
CI / test (push) Successful in 20s
CI / build (push) Successful in 2s
2026-05-29 13:28:14 -04:00
bruno c22259b362 fix: renderFile, searchByTag, addTagFilter, DashboardWidgets — 8 imports manquants
CI / lint (push) Successful in 14s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-29 13:20:07 -04:00
bruno 2004a49b2d fix: api, AuthManager, initLoginForm, GraphViewManager — imports manquants dans search/ui/utils
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 17s
CI / build (push) Successful in 1s
2026-05-29 11:58:04 -04:00
bruno c88c359c09 fix: 4 imports manquants — switchSidebarTab, performAdvancedSearch, escapeHtml, openFile
CI / lint (push) Successful in 13s
CI / security (push) Successful in 17s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 11:55:43 -04:00
bruno 4748a75687 fix: initDashboardTabs non exporté de sync.js → importé dans viewer.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 11:39:31 -04:00
bruno eb32dce219 fix: AutocompleteDropdown non importé dans viewer.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 11:29:14 -04:00
bruno 889d6d6f68 fix: syncActiveFileTreeItem non exporté de sidebar.js → importé dans ui.js et viewer.js
CI / lint (push) Successful in 23s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 09:30:48 -04:00
bruno 5e11a0453b fix: conflit showProgressBar/hideProgressBar/showWelcome — doublons locaux vs imports dans legacy.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 1s
2026-05-29 09:23:58 -04:00
bruno 0db52c3c0e fix: imports manquants — getFileIcon, showWelcome, showProgressBar, hideProgressBar
CI / lint (push) Successful in 13s
CI / security (push) Successful in 7s
CI / test (push) Successful in 14s
CI / build (push) Successful in 2s
2026-05-29 09:13:41 -04:00
bruno 7edbd7a31a fix: imports manquants — TabManager, showToast, closeHeaderMenu, closeMobileSidebar, ContextMenuManager, RightSidebarManager
CI / lint (push) Successful in 14s
CI / security (push) Successful in 9s
CI / test (push) Successful in 18s
CI / build (push) Successful in 5s
2026-05-29 09:01:33 -04:00
bruno be65edb1a6 fix: search.js — ReferenceError el + _getEffective non importes
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 08:57:58 -04:00
bruno 8662d4ce17 fix: export closeMobileSidebar, showLoading; add imports
CI / lint (push) Successful in 12s
CI / security (push) Successful in 15s
CI / test (push) Successful in 15s
CI / build (push) Successful in 1s
2026-05-29 08:42:22 -04:00
bruno ac223e0541 fix: add state. prefix to all search state variables in search.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 08:29:01 -04:00
bruno 876c6c8de0 fix: repair corrupted sync.js import line
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 08:17:48 -04:00
bruno 4418c725f8 fix: export refreshSidebarTreePreservingState, loadRecentFiles; add imports sync.js, config.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 17s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-29 08:11:44 -04:00
bruno 21da3f316f fix: import icon from viewer.js (not utils.js) in dashboard.js
CI / lint (push) Successful in 16s
CI / security (push) Successful in 9s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-29 07:24:07 -04:00
bruno 7d13585b11 fix: export attachTreeItemActionButton/LongPress from viewer.js, import in sidebar.js
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-28 20:50:56 -04:00
bruno a91dfa65fc fix: export smallBadge from viewer.js, import in sidebar.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-28 20:43:50 -04:00
bruno f5cf2ca0da fix: add state. prefix to allVaults in viewer.js getVaultIcon
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 6s
2026-05-28 20:40:46 -04:00
bruno de5cc97015 fix: export getVaultIcon from viewer.js, import in sidebar.js
CI / lint (push) Successful in 16s
CI / security (push) Successful in 13s
CI / test (push) Successful in 18s
CI / build (push) Successful in 8s
2026-05-28 20:31:15 -04:00
bruno c7378e4f12 fix: export icon from viewer.js, import syncVaultSelectors in config.js, cleanup dupes
CI / lint (push) Successful in 16s
CI / security (push) Successful in 10s
CI / test (push) Successful in 22s
CI / build (push) Successful in 3s
2026-05-28 20:26:04 -04:00
bruno e17da88a81 fix: export _populateRecentVaultFilter from config.js, import in sidebar.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-28 19:43:34 -04:00
bruno 6e59dfdd06 fix: export populateCustomDropdown from ui.js + missing imports
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-28 19:35:22 -04:00
bruno 015bec7774 fix: add missing imports (api, escapeHtml, safeCreateIcons, getFileIcon) to sidebar, legacy, viewer, dashboard, config
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 22s
CI / build (push) Successful in 2s
2026-05-28 19:28:50 -04:00
bruno c83068f473 fix: add safeCreateIcons import to auth.js + export closeHeaderMenu from ui.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 14s
CI / build (push) Successful in 2s
2026-05-28 19:20:23 -04:00
bruno e2b35fc19e fix: remove duplicate inline exports from legacy.js (already in export block)
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-28 18:55:00 -04:00
bruno 9971168025 fix: remaining const state.allVaults → allVaults in auth.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 18:51:06 -04:00
bruno ffc6dac172 feat: frontend tests — import/export validator + unit tests + CI integration
CI / lint (push) Successful in 14s
CI / security (push) Successful in 11s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
- tests/frontend/validate-imports.mjs: 0 errors on 13 modules, 79 exports
  Detects: missing exports, broken imports, const reassignments
- tests/frontend/unit.test.mjs: escapeHtml, state object, module syntax
- Added to CI lint job (runs after Ruff + Mypy)
2026-05-28 18:46:10 -04:00
bruno 2c6c74419c fix: revert _state.allVaults → _allVaults (AdminPanel local property)
CI / lint (push) Successful in 11s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 2s
2026-05-28 18:40:00 -04:00
bruno 148b3851ae fix: add missing state. prefix to all bare state variable references across all modules
CI / lint (push) Successful in 15s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-28 18:33:39 -04:00
bruno 75fac8256b fix: remove stray }; in ui.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 7s
CI / test (push) Successful in 17s
CI / build (push) Successful in 2s
2026-05-28 18:29:53 -04:00
bruno 6fd3bb7351 fix: remove duplicate _origInit2 monkey-patch blocks in ui.js
CI / lint (push) Successful in 10s
CI / security (push) Successful in 11s
CI / test (push) Successful in 14s
CI / build (push) Successful in 2s
2026-05-28 18:26:23 -04:00
bruno 004729bdbb fix: remove duplicate FindInPageManager block in ui.js
CI / lint (push) Successful in 10s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 6s
2026-05-28 17:59:41 -04:00
bruno 40c439e1eb fix: complete audit — add missing TabManager, ContextMenuManager, FindInPageManager to ui.js; remove monkey-patch; add all exports
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 5s
2026-05-28 17:18:18 -04:00
bruno 58f7173cc3 fix: add missing exports to regenerated ui.js and search.js
CI / lint (push) Successful in 11s
CI / security (push) Successful in 9s
CI / test (push) Successful in 14s
CI / build (push) Successful in 2s
2026-05-28 17:09:10 -04:00
bruno eab6c11dc4 fix: add export to openFile in viewer.js
CI / lint (push) Successful in 18s
CI / security (push) Successful in 7s
CI / test (push) Successful in 15s
CI / build (push) Successful in 6s
2026-05-28 17:05:43 -04:00
bruno 6a55dfd5eb fix: over-aggressive state.xxx replacements on local variables
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 24s
CI / build (push) Successful in 3s
2026-05-28 17:02:27 -04:00
bruno 33cfefcb20 fix: remove duplicate escapeHtml in viewer.js (already imported)
CI / lint (push) Successful in 11s
CI / security (push) Successful in 8s
CI / test (push) Successful in 19s
CI / build (push) Successful in 2s
2026-05-28 16:58:25 -04:00
bruno 7c927ca54e fix: rebuild ui.js, search.js, viewer.js from app.js with shell script (no truncation)
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 16:54:15 -04:00
bruno 97d14d867a fix: apply state.xxx pattern and exports to regenerated modules
CI / lint (push) Successful in 11s
CI / security (push) Successful in 17s
CI / test (push) Successful in 15s
CI / build (push) Successful in 3s
2026-05-28 16:50:06 -04:00
bruno 6d36b53b3a fix: regenerate corrupted ui.js, search.js, viewer.js from app.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / build (push) Has been cancelled
CI / test (push) Has been cancelled
2026-05-28 16:49:29 -04:00
bruno a2ff9297ce fix: strip line number prefixes from all JS files
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 18s
CI / build (push) Successful in 2s
2026-05-28 16:46:17 -04:00
bruno deadf1e1ea fix: repair broken import blocks in sync.js and legacy.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 13s
CI / test (push) Successful in 19s
CI / build (push) Successful in 3s
2026-05-28 16:41:15 -04:00
bruno 643a73e0f5 fix: strip read_file line numbers accidentally injected into JS files
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 16:40:14 -04:00
bruno 7866f93778 refactor: state.js → mutable object to fix 'assignment to constant' errors
CI / lint (push) Successful in 13s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 6s
ES module imports are read-only live bindings — can't reassign
imported let/const variables. Replace individual 'export let' with
single 'export const state = {...}' mutable object.

All modules updated: import { state } from './state.js'
All state access changed to state.xxx pattern.

Fixes cascade of 'Assignment to constant variable' errors.
2026-05-28 16:34:39 -04:00
bruno 16e0860a69 fix: export RightSidebarManager from ui.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 16:20:17 -04:00
bruno 48ab3d2b80 fix: add missing _recentFilesCache and _recentRefreshTimer in config.js
CI / lint (push) Successful in 14s
CI / security (push) Successful in 10s
CI / test (push) Successful in 22s
CI / build (push) Successful in 3s
2026-05-28 16:15:49 -04:00
bruno 60c23e811b fix: add missing safeCreateIcons import in ui.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 16:06:40 -04:00
bruno a0768d7a76 fix: remove broken ES module const reassignment (openFile monkey-patch)
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 19s
CI / build (push) Successful in 2s
2026-05-28 15:43:31 -04:00
bruno 83a5de2ed2 fix: add missing openFile import in ui.js
CI / lint (push) Successful in 13s
CI / security (push) Successful in 9s
CI / test (push) Successful in 16s
CI / build (push) Successful in 3s
2026-05-28 15:35:35 -04:00
bruno 1b9ba69c52 perf: O(T) stemming instead of O(S×T) — fixes 15min index freeze
CI / lint (push) Successful in 14s
CI / security (push) Successful in 9s
CI / test (push) Successful in 18s
CI / build (push) Successful in 4s
Replace double-nested stem loop (stems × tokens) with single-pass
stem frequency map. For 100 unique tokens per file: 10,000 iterations
→ 100 iterations per file. Critical for large vaults.
2026-05-28 15:23:51 -04:00
bruno 25cfd7cc56 fix: export DashboardSharedWidget from dashboard.js
CI / lint (push) Successful in 12s
CI / security (push) Successful in 9s
CI / test (push) Successful in 42s
CI / build (push) Successful in 3s
2026-05-28 14:58:42 -04:00
bruno e995f727bd docs: graph view — 15/16 done, marked complete
CI / lint (push) Successful in 11s
CI / security (push) Successful in 8s
CI / test (push) Successful in 39s
CI / build (push) Successful in 3s
2026-05-28 14:52:52 -04:00
bruno e9e954f36b feat(graph): Phase 4 — Barnes-Hut, cache, lazy loading
CI / lint (push) Successful in 13s
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
CI / security (push) Has been cancelled
Performance optimizations for large vaults:
- Barnes-Hut quadtree repulsion (O(n log n) for >200 nodes)
- Naive O(n²) preserved for small graphs (<200 nodes)
- Graph cache: reuse data when same (vault, path, depth, scope, tag)
- Cache key displayed in info bar: '(cache)' label
2026-05-28 14:52:31 -04:00
bruno 8c95899456 docs: Phase 3 graph view done
CI / lint (push) Successful in 12s
CI / security (push) Successful in 8s
CI / test (push) Successful in 36s
CI / build (push) Successful in 3s
2026-05-28 14:48:46 -04:00
bruno 0416266dde feat(graph): Phase 3 — type filter, export PNG, fullscreen, focus node
CI / lint (push) Has started running
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
- Type filter checkboxes (dossier, .md, autre) in legend
- Export PNG button (canvas.toDataURL)
- Fullscreen button (Fullscreen API)
- Focus node function (center on specific node)
- Filter applied during _draw() to skip hidden nodes
2026-05-28 14:48:31 -04:00
bruno bf836caccc docs: mark Phase 1+2 graph view as done
CI / lint (push) Successful in 11s
CI / security (push) Successful in 9s
CI / test (push) Successful in 38s
CI / build (push) Successful in 3s
2026-05-28 14:46:40 -04:00
bruno a373279b08 feat(graph): Phase 1+2 — full-vault, tag filter, backlinks, tooltips, depth slider
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
Backend (main.py):
- GraphNode: added tags, incoming_count, outgoing_count
- GraphEdge: added 'backlink' relation
- GraphResponse: added 'scope' field
- api_graph: scope=full|directory, tag= filter, backlinks
- Full-vault tree walk with configurable depth 0-3
- Tag index from in-memory file index for fast filtering
- Incoming/outgoing link count per node

Frontend (graph.js + index.html):
- Theme-adaptive colors via CSS custom properties
- Depth slider (0-3) with live reload
- Full-vault toggle button (🌐 Tout / 📁 Dossier)
- Search input with tag filtering + visual highlighting
- Tooltip on hover (name, path, tags, link counts)
- Backlink edges rendered in red dashed
- Node size proportional to link count
- Larger modal (1000px, 85vh)
2026-05-28 14:46:22 -04:00
bruno c8e74bd39b docs: graph view improvements roadmap (4 phases)
CI / lint (push) Successful in 17s
CI / security (push) Successful in 9s
CI / test (push) Successful in 37s
CI / build (push) Successful in 3s
2026-05-28 14:41:58 -04:00
bruno f3e16e3c3d docs: ROADMAP + README v1.5.1 (ES module split)
CI / lint (push) Successful in 15s
CI / security (push) Successful in 8s
CI / test (push) Successful in 36s
CI / build (push) Successful in 1s
2026-05-28 14:05:38 -04:00
bruno 4836d6f1d0 refactor: split app.js (8875 lines) into 12 ES modules
CI / lint (push) Successful in 10s
CI / security (push) Successful in 8s
CI / build (push) Has been cancelled
CI / test (push) Has been cancelled
frontend/js/ structure:
  state.js      (55 lines)  — Shared mutable state, constants
  utils.js      (510 lines) — EXT_ICONS, getFileIcon, escapeHtml, safeCreateIcons
  auth.js       (547 lines) — api(), AuthManager, initLoginForm, AdminPanel
  search.js     (1106 lines)— SearchHistory, QueryParser, Autocomplete, performSearch
  sidebar.js    (1091 lines)— Vault tree, sidebar filter, TagFilterService, loadTags
  viewer.js     (1554 lines)— openFile, Outline, ScrollSpy, Frontmatter, Editor
  ui.js         (2250 lines)— Theme, Toast, Sidebar, Dropdowns, Tabs, ContextMenu
  dashboard.js  (461 lines) — Dashboard widgets (Recent, Stats, Bookmarks)
  config.js     (999 lines) — Config panel, Hidden files, About, Sidebar tabs
  sync.js       (436 lines) — SSE/IndexUpdateManager, PWA registration
  graph.js      (401 lines) — GraphViewManager (force-directed canvas graph)
  legacy.js     (550 lines) — Remaining bridge functions (goHome, showWelcome, initSearch)
  app.js        (80 lines)  — Thin orchestrator: imports all modules, calls init()

index.html: switched from <script src="app.js"> to <script type="module" src="js/app.js">
Original app.js preserved for backward compatibility.
All 14 modules pass node --check syntax validation.
2026-05-28 14:04:50 -04:00