bruno
66039028a5
feat: panneau A propos elegant + retrait Editor POC
...
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- Remplace Editor POC par A propos (sparkles) dans le menu header
- Modale About avec animation fade+scale, logo SVG, hero gradient
- Stats live: fichiers, vaults (API /health), tests (285)
- Stack techno: 12 badges (FastAPI, vanilla JS, Docker, etc.)
- Footer: date livraison, blague aleatoire (10 variantes humour)
- Touche d'humour: git push --force accidentels, CSS > backend
- Fermeture: bouton X, clic overlay, Escape
- initAboutModal dans sync.js + config.js export
2026-06-16 07:37:39 -04:00
bruno
5466457a06
feat: filtre sauvegardes (Tous/Recherches/Repertoires) extensible
...
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
- Barre de filtres avec 3 pills: Tous, Recherches, Repertoires
- Chaque saved-search-item a data-type=search|directory
- _applySavedFilter() masque/affiche selon le filtre actif
- _initSavedFilter() initialise les listeners (run once)
- Extensible: ajouter un pill + data-type suffit
- Gere l'etat empty quand aucun resultat pour le filtre
2026-06-15 16:57:19 -04:00
bruno
2c7b8b525a
fix: icone type distinct + position a droite dans les recherches sauvegardees
...
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -3s
- Recherche classique: icone search (loupe) grise a droite
- Recherche repertoire: icone folder-search bleue a droite
- Icones dans .saved-search-meta, poussees a droite via margin-left:auto
- Les badges/vault restent a gauche dans .saved-search-badges
2026-06-15 16:51:49 -04:00
bruno
1116957c19
feat: menu contextuel repertoire → Sauvegarder recherche + icone dossier
...
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -2s
- ContextMenuManager: option Ajouter aux recherches sauvegardees pour repertoires
- _saveDirectorySearch: POST /api/saved-searches avec include_paths=repertoire/**
- Bascule automatique vers longlet Sauvegardes dans le sidebar
- loadSavedSearches: icone folder-search + classe saved-search-dir pour recherches dossier
- Recherches dossier affichent le chemin au lieu d'une query vide
2026-06-15 16:45:45 -04:00
bruno
d0bc5ebbd0
fix: mise a jour legacy.js + app.js pour les nouveaux IDs rb-* (barre flottante)
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-15 15:16:54 -04:00
bruno
739b359de2
feat: Editor POC — multi-zone toolbar mockup (TOOLBAR_DESIGN_ANALYSIS.md)
...
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / build (push) Has been cancelled
CI / test (push) Has been cancelled
Add standalone /editor-poc page demonstrating all 5 toolbar zones:
- Zone 1: Top Fixed Bar (hamburger, title, AI glow button, save indicator)
- Zone 2a: Slash Command Menu (/ on empty line, 15 commands, filtering)
- Zone 2b: Bubble Menu (on text selection, formatting + AI dropdown)
- Zone 3: Floating Quick Insert (per-line, Image/PDF/Code/Table/AI)
- Zone 4: AI Side Panel (Ctrl+J toggle, chat, suggestions)
- Zone 5: Drag & Drop overlay with dashed border
Files:
- new: frontend/editor-poc.html (46KB standalone vanilla JS)
- backend/main.py: +/editor-poc route before catch-all
- frontend/index.html: Editor POC button in header menu
- frontend/js/config.js: initEditorPocBtn() function + export
- frontend/js/legacy.js: re-export initEditorPocBtn
- frontend/js/app.js + frontend/app.js: init call in both versions
2026-06-05 20:29:56 -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
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
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
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
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
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
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