Commit Graph
128 Commits
Author SHA1 Message Date
bruno a1355977d9 fix: popout theme inheritance via URL query param
CI / lint (push) Successful in 24s
CI / security (push) Successful in 14s
CI / test (push) Successful in 28s
CI / build (push) Successful in 18s
CI / e2e (push) Failing after 10s
- Pass current theme as ?theme=dark|light in popout URL
- viewer.js, app.js, palette.js all pass theme to popout
- popout.html reads theme from URL param first (fallback: localStorage, then dark)
- Also syncs theme back to localStorage when set via query param
2026-07-24 14:56:29 -04:00
bruno 3655ef8a7e fix: TOC panel never auto-opens on login — always starts closed
- Removed localStorage restore of obsigate-right-sidebar-visible on init
- TOC only opens when user clicks the TOC button in a document
- Width preference still restored from localStorage
2026-07-24 09:43:37 -04:00
bruno 797d9763dd fix: TOC sidebar closed by default on initial load
- Changed rightSidebarVisible default from true to false
- First-time visitors no longer see the TOC panel auto-opened
2026-07-23 23:28:18 -04:00
bruno 5b956f8d95 Drop debounced search on input, search only on Enter
CI / lint (push) Failing after 25s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 13s
2026-07-21 10:14:26 -04:00
bruno 5ec54d3cc2 fix: barre flottante deplacee hors content-area (avant </body>) — immunisee contre innerHTML
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -5s
2026-06-15 16:33:54 -04:00
bruno 91d7074a07 fix: preserver la barre flottante lors du innerHTML clear du content-area
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-15 16:23:23 -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 8cf7b55747 fix: slash commands clean /command + cache-bust Forge iframe
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in -3s
Bug 1: selectSlashAction now strips /command text before executing. Bug 2: Forge URL includes _ts=Date.now() to prevent cache.
2026-06-10 08:59:58 -04:00
bruno 3090fe62fe fix: Forge iframe height uses 82vh (bypasses flex parent issue)
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 24s
CI / build (push) Successful in 2s
height:100% doesn't work when parent uses flex height. position:absolute collapses the parent. 82vh = 90vh modal - header. Also set bodyEl overflow:hidden.
2026-06-06 00:40:35 -04:00
bruno 6388718b87 fix: Forge iframe fills full modal height (position:absolute)
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 38s
CI / build (push) Successful in 3s
.editor-body has flex height, so percentage height on iframe didn't work. Changed to position:absolute;inset:0 which fills the relative parent regardless of flex sizing.
2026-06-06 00:35:57 -04:00
bruno ba30d1e7ce feat: Forge opens in editor modal instead of new tab
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 29s
CI / build (push) Successful in 3s
Forge button now reuses the existing editor-modal with an iframe. Same position as the Edit/CodeMirror modal. On close, the forge iframe is removed and the current file is refreshed (picks up changes saved by the POC's auto-save). Updated both frontend/js/viewer.js and frontend/app.js.
2026-06-06 00:11:21 -04:00
bruno 6eff157686 feat: add Forge button next to Edit in viewer toolbar
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 26s
CI / build (push) Successful in 2s
Opens /editor-poc?vault=X&path=Y in new tab. Button uses hammer icon + Forge label. Added in both frontend/js/viewer.js and frontend/app.js.
2026-06-05 22:17:37 -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 5c5ef561cf feat: Mermaid.js integration #20-29 — full diagram support
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 7s
- CDN: mermaid@11 from jsdelivr
- mermaid-viewer.js: init, render, templates, zoom/pan, fullscreen, focus
- All diagram types: flowchart, sequence, class, state, ER, journey, gantt,
  pie, gitGraph, requirement, mindmap, timeline, quadrant, C4 (x4), beta types
- viewer.js: auto-render Mermaid blocks after markdown rendering
- utils.js: live preview panel in editor (debounced 500ms)
- app.js: initMermaid + setupFocusMode on startup
- CSS: container, controls, error, fullscreen overlay, focus panel, live preview
- Export SVG/PNG download buttons
- Obsidian preprocessor ([[links]], ![[img]], ==highlight==)
2026-06-04 23:23:21 -04:00
bruno a5afbb1dc1 fix: SSE sync indicator stuck on 'Connexion...' (3 fixes)
1. Move initSyncStatus() AFTER auth check — EventSource was connecting
   before the access_token cookie was available, causing 401 errors.

2. Reconnect SSE after login — Login form handler now calls
   IndexUpdateManager.connect() + showWelcome() after successful auth.

3. SSESafeGZipMiddleware — GZip buffering breaks Server-Sent Events
   streaming. Custom middleware subclass skips compression for
   /api/events endpoint (path-based bypass).
2026-05-27 21:40:32 -04:00
bruno d6cf2a1a7f Remove vault filter dropdown from dashboard 2026-05-27 15:57:59 -04:00
bruno a7c719afb1 Prioritize autocomplete dropdown over search results on Enter keypress 2026-05-27 12:25:25 -04:00
bruno fcf134d37e Always show tags section with placeholder or error message 2026-05-27 12:01:23 -04:00
bruno 73593f5e89 Remove duplicate _collectItems call 2026-05-27 11:54:24 -04:00
bruno c3d583177a Handle aborted requests by returning early 2026-05-27 11:51:10 -04:00
bruno 96218f872e Avoid flashing loading state on fast search queries 2026-05-27 11:39:37 -04:00
bruno 56b2a004f9 Show loading state while fetching suggestions 2026-05-27 10:56:44 -04:00
bruno e5b5f2d4f4 Limit search history to 5 items and isolate suggestion fetches 2026-05-27 09:59:35 -04:00
bruno 586acbe9a1 Keep the dropdown hidden after search execution 2026-05-27 09:45:22 -04:00
bruno 0d3de28967 Simplify sidebar tabs, improve saved search display, and refactor
suggestions
2026-05-27 09:27:26 -04:00
bruno 1c59300f11 Remove stray extra closing brace 2026-05-27 08:44:18 -04:00
bruno e3c25b5b09 Add saved searches with CRUD API and UI sidebar
Add extension field to search results and display it
Add active filter badges and save button to search header
2026-05-27 08:39:52 -04:00
bruno aa2c05b05f Add regex search with highlighted snippet support 2026-05-27 08:15:39 -04:00
bruno 0630aeba77 Remove case-sensitive toggle and reset search options on clear 2026-05-27 08:01:57 -04:00
bruno dc9684e56c Remove deprecated PDF endpoint and update frontend download actions
Remove the old HTML-based PDF download endpoint in favor of the new
WeasyPrint-based one, and replace the generic "Télécharger" button
in popout.html with a dedicated .md download and a new PDF button.
Also remove the unused generic download button from the main file view.
2026-05-26 21:55:42 -04:00
bruno c79202716c Add WeasyPrint PDF export for markdown files 2026-05-26 21:22:02 -04:00
bruno 9752b18529 Add dark theme support and bookmark status to share view
- Implement dark/light theme toggle with persistent preference via
  localStorage
- Add a sticky toolbar with theme toggle, Markdown export, and PDF
  export buttons
- Update bookmark button to reflect current state with visual feedback
- Introduce CSS custom properties for theming and responsive layout
  improvements
2026-05-26 20:19:58 -04:00
bruno d4896a5df1 Sync YAML frontmatter with share and bookmark actions 2026-05-26 20:02:37 -04:00
bruno 32a41532ba Auto-set Content-Type for JSON HTTP requests
- Add automatic Content-Type header injection for JSON string bodies
- Explicitly set Content-Type on bookmark toggle and share creation
  calls
- Add escapeHtml helper function for safe string handling
2026-05-26 15:46:26 -04:00
bruno b1fcc080e5 Add bookmark support and enhance share dialog
- Add bookmark button to file header and context menu
- Implement toggle bookmark API call with toast notification
- Redesign share dialog to show existing shares with revocation
- Add expiration options when creating a new share
- Add CSS styles for share action buttons
2026-05-26 15:40:02 -04:00
bruno 20f9bad9c0 Replace replace UI with search result navigation 2026-05-26 15:25:20 -04:00
bruno 6cd981f9bc Move search state variables to module scope 2026-05-26 14:37:44 -04:00
bruno f2170e9ac8 Guard against missing search elements and restyle search layout 2026-05-26 14:05:26 -04:00
bruno 8fdcdaf412 Add search toggles, path filters, and find/replace functionality 2026-05-26 13:35:38 -04:00
bruno 872a3e56dd Refactor file opening to use TabManager and add dashboard tab system 2026-05-26 12:14:47 -04:00
bruno b38f3f16e4 Coalesce index generation increments and add rebuild cooldown 2026-05-26 11:42:47 -04:00
bruno 0b611a8735 Add share, webhook, and conflict management features 2026-05-26 11:00:48 -04:00
bruno 482937fb30 Add audit logging, rate limiting, secret redactor, and backlinks
Implement several security and feature improvements across the backend
and frontend:
- New IP-based rate limiter for authentication endpoints
- New audit logging system for sensitive operations
- New secret redactor to mask sensitive patterns in rendered content
- Configurable token TTL and IGNORED_DIRS via environment variables
- Add backlink index and API endpoint
- Add preview tab support with single/double-click behavior in tree
- Add file backup before write/delete operations
2026-05-26 10:27:00 -04:00
bruno c65063fbca Update README docker-compose syntax and add incremental sidebar refresh
Implement `incrementalLoadDirectory` to update tree items without full
DOM
rebuild. Modify `refreshSidebarTreePreservingState` to use incremental
updates for expanded vaults and directories, preserving existing DOM
state.
2026-05-25 22:05:40 -04:00
bruno 9ce95eda2d Remove toast notification for silent auto-indexing
Replace `loadVaults()` and `loadTags()` calls with state-preserving
sidebar and tag refresh functions after silent indexing
2026-05-25 21:54:25 -04:00
bruno e84b66a257 Add fallback clipboard copy and wrap content in layout container 2026-05-25 21:21:41 -04:00
bruno 370420aa00 ajout de fonctionnalités 2026-05-25 20:21:42 -04:00
bruno ddb73461da feat: extract expandDirectoryInSidebar helper and add debouncing to breadcrumb navigation clicks
- Extract expandDirectoryInSidebar function to handle directory expansion logic with loading and chevron icon updates
- Replace inline directory expansion code in focusPathInSidebar with calls to new helper function
- Add busy state tracking to breadcrumb click handlers to prevent rapid successive clicks
- Disable pointer events during breadcrumb navigation execution
- Make breadcrumb onClick handlers async to support
2026-03-31 22:22:45 -04:00
bruno 0362d4dfeb feat: add center alignment option to scrollToElement and update breadcrumb navigation to center focused items
- Add "center" alignment option to scrollToElement function alongside existing top/default alignment
- Calculate centered scroll position by centering element vertically in viewport
- Update all breadcrumb navigation calls to use center alignment instead of top/false alignment
- Refactor targetTop calculation with ternary operator for cleaner conditional logic
2026-03-31 21:59:51 -04:00
bruno 78f7fd6a53 feat: improve dashboard navigation to files by focusing parent directory and syncing active state
- Extract getParentDirectoryPath helper to get parent directory from file path
- Extract syncActiveFileTreeItem helper to manage active tree item highlighting
- Update dashboard file navigation to focus parent directory with expansion instead of file itself
- Manually sync active state after navigation to ensure file is highlighted in tree
- Refactor openFile to use new syncActiveFileTreeItem helper
2026-03-31 21:26:45 -04:00