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