bruno
8c5a5fd6b2
feat: side-by-side diff view + auto-save skips backup
...
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 10s
- Side-by-side diff: toggle button (columns-2/align-justify icon) in toolbar
switches between unified and side-by-side view
- Backend: diff endpoint returns left_content + right_content for side-by-side
- Frontend: SequenceMatcher-based LCS diff for two-column rendering
- CSS: .backup-diff-sidebyside with left/right borders, empty cell styling
- Auto-save: PUT /save?backup=false skips backup creation (auto-save=no backup)
- Footer text updated to reflect backup-on-manual-save behavior
2026-06-04 18:37:14 -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
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
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
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
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
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
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
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
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