Commit Graph
106 Commits
Author SHA1 Message Date
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 47dc79683f feat: backup manager #15 #16 #17 #18 #19 — preview, restore, purge vault, compress, auto-backup
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
#15: Click backup item to preview content in side panel (100KB limit)
#16: Purge all backups per vault (red 'Vider' button)
#17: /api/backups/compress — gzip backups older than N days
#18: /api/backups/auto — backup files modified since N hours
#19: Restore button per backup in manager with timestamp extraction
+ Professional side-panel preview, action buttons on hover, vault grouping
2026-06-04 21:36:05 -04:00
bruno fb87c9f7c3 feat: backup management page + max backups config + auto-cleanup
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
- Config: max_backups_per_file (default 10) in config.json + UI field
- Auto-cleanup: _backup_file deletes oldest backups when limit exceeded
- New endpoints: GET /api/backups (list all), POST /api/backups/delete,
  POST /api/backups/purge (by file or vault)
- New module: backup-manager.js - full-page view with filter, grouped by
  vault/file, individual delete, per-file purge, stats
- Link from backup viewer footer: 'Gerer tous les backups'
2026-06-04 20:15:31 -04:00
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 05ac6cd756 fix: rewrite backup viewer close button — match editor-btn pattern
CI / lint (push) Failing after 2m24s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after 5s
- Close button: <button class="backup-close-btn"><i data-lucide="x"></i></button>
  (same HTML pattern as AdminPanel editor-btn)
- Handler: addEventListener via DOM query in setBody() after innerHTML
  (same JS pattern as AdminPanel)
- Removed all inline onclick, global capture handler, window._backupViewerClose
- CSS: .backup-close-btn now matches .editor-btn style (bordered icon button)
- Escape key + overlay click still work for closing
2026-06-04 16:06:39 -04:00
bruno 0b3a7d5c95 feat: roadmap items #7 #8 #9 #10 — recent files, semver tag, search filters, dedup
- #7: Section « Récents » dans la page d'accueil vault (5 derniers fichiers)
- #8: Git tag v1.8.0
- #9: Filtres search avancés created:/modified:/size: avec parsing dates/sizes
- #10: Déduplication IGNORED_DIRS (indexer.py source unique, watcher+main importent)
- ROADMAP: tous les items marqués FAIT, version → 1.9.0
2026-06-04 12:11:51 -04:00
bruno fc1a4e336e fix: vault home recursive + backup viewer fixes + AI status at startup
CI / security (push) Failing after 10m56s
CI / lint (push) Failing after 11m14s
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
- Vault home (#12): recursive file listing (rglob), rel_dir in metadata,
  'recursif' badge, updated roadmap description
- Backup viewer: fix close button (inline onclick + event delegation
  fallback for text nodes), improve error messages
- Backup API: remove response_model to prevent Pydantic 500 errors,
  add try/except + logging on backups/diff/restore endpoints,
  per-entry error handling in _list_backup_files,
  encoding safety (errors='replace') on read_text
- AI status: call /api/ai/status at startup in _initAIStatus
  instead of waiting for user click on sync badge
2026-06-04 09:28:57 -04:00
bruno b077c24bf1 fix: corrections UI — indicateur voute, couleurs, statut IA, spinner éditeur
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 11s
1. Suppression du badge vault-context-pill doublon en mobile
2. Couleurs dynamiques indicateur header:
   - Bleu pour 'All' (.vault-ctx-all)
   - Mauve/violet pour les vaults (.vault-ctx-vault)
   - Jaune/ambre pour les répertoires (.vault-ctx-dir)
3. Statut IA: vérifie la présence du toolbar AI dans le DOM
   au lieu d'appeler /api/ai/status (qui ne fonctionnait pas)
4. Indicateur de traitement AI dans l'éditeur (spinner + badge
   'AI...' dans le header de l'editor modal) au lieu du flash
   blanc sur le badge sync
2026-06-04 08:31:32 -04:00
bruno 90dffdf26c fix: indicateur voute visible en mobile + debug log statut IA
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 10s
- Indicateur de contexte de voute (#vault-context-indicator) n'est plus
  caché en mobile (display: none retiré), conserve le même look que desktop
- Ajout console.log temporaire dans _checkAIStatus() pour déboguer
  pourquoi l'API /api/ai/status retourne configured:false
2026-06-04 08:11:08 -04:00
bruno 7a4b3d1329 feat: points 11a + 11b — Indicateur AI Actif & Page d'accueil voute
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
Point 11a — Indicateur AI Actif:
- Badge sync flashe en blanc pendant traitement AI (animation CSS)
- Événements ai-processing-start/end dans ai.js
- Section statut IA dans panneau sync (configurée/non configurée/en cours)
- Endpoint GET /api/ai/status vérifiant les clés API configurées

Point 11b — Page d'accueil de voute:
- Endpoint GET /api/vault/{vault}/files?dir=... (trié par mtime)
- Module vaulthome.js: affichage style résultats de recherche
- Breadcrumb navigable, mise à jour auto sur clic dossier dans tree
- Déclenché auto quand un vault spécifique est sélectionné
2026-06-03 22:36:31 -04:00
bruno d1ba15c3aa feat: diff viewer backups — point 6 (backups, diff, restore)
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
- Backend: 3 nouveaux endpoints
  - GET /api/file/{vault}/backups — liste les backups horodatés
  - GET /api/file/{vault}/diff — diff unifié entre versions
  - POST /api/file/{vault}/restore — restaure une version (backup auto avant)
- Frontend: module backups.js — UI modale avec:
  - Sélecteur gauche (backup) / droite (version actuelle ou autre backup)
  - Diff coloré: vert pour ajouts, rouge pour suppressions
  - Bouton Restaurer avec confirmation
- Menu contextuel: clic droit fichier → 'Backups / Versions'
- CSS: styles complets pour la modale, toolbar, table de diff
- ROADMAP: point 6 marqué comme complété
2026-06-03 22:22:50 -04:00
bruno cfb3825dbe feat: drag & drop de fichiers dans l'arborescence (portion 5)
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 13s
- Backend: nouvel endpoint POST /api/move/{vault_name} pour déplacer
  fichiers et dossiers vers un autre répertoire parent
- Frontend: module dragdrop.js avec délégation d'événements sur le
  vault-tree (dragstart, dragover, dragleave, drop)
- CSS: styles pour drag-source, drag-valid-target, drag-over
- Protections: pas de drop sur soi-même, pas dans un enfant,
  pas de cross-vault
- Mise à jour de l'index et broadcast SSE après move
- ROADMAP: portion 5 marquée comme complétée
2026-06-03 13:56:27 -04:00
bruno 96c1e9e6ec Mobile: add vault context indicator pill below header
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-06-03 13:46:37 -04:00
bruno db8041d990 Add close-all tabs, close-current-file command, fix AI toolbar light theme + sticky
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-06-03 13:33:44 -04:00
bruno f8267bbc1e Fix: palette files use TabManager for tab tracking, hide .tab-bar on mobile
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-06-03 13:14:14 -04:00
bruno c240cdd956 Fix pull-to-refresh: unblock overscroll chain through content-wrapper/app-container
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-06-03 12:57:15 -04:00
bruno 1c22f6cf90 Mobile: search=file palette, commands button, hide top tabs, always full-open files
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-06-03 12:23:57 -04:00
bruno 537a77fdfc Fix: enable pull-to-refresh on mobile by allowing body overscroll chain
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-06-03 12:13:54 -04:00
bruno 4206161def Mobile bottom toolbar: explorer, search, palette, tab switcher — Obsidian-style
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-06-03 12:04:22 -04:00
bruno 60fad18351 Fix search clear button: match input padding, remove fixed size causing misalignment
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 12s
2026-06-03 11:58:44 -04:00
bruno 93b23764ae Improve search clear button: flex layout, split border-radius, proper centering
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 9s
2026-06-03 11:50:34 -04:00
bruno d25fff5505 Fix: hamburger first-click, add search clear X button
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-06-03 11:43:34 -04:00
bruno e9685651cf Fix: mobile help guide width overflow, box-sizing and max-width constraints
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-06-03 11:32:43 -04:00
bruno 227e157793 Fix: pattern regex v-flag, help mobile: TOC accordion not slide-over, search always in TOC
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-06-03 11:13:37 -04:00
bruno 81e53a930a Palette: add browse filter bar for create file/folder, delete folder actions
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-06-03 10:26:07 -04:00
bruno b513add15b Fix: mobile help TOC toggle via inline onclick, overflow/wrapping fixes
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
2026-06-03 10:15:02 -04:00
bruno 03586256f1 Help: mobile slide-over TOC with overlay, search content highlighting
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 7s
2026-06-03 09:27:06 -04:00
bruno 99b00eea0c Improve help modal navigation with keyboard and search support
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 8s
Refactor help navigation to support keyboard arrow keys, content pane
focus
toggling, and enhanced search filtering that hides non-matching
sections.
Improve mobile toggle behavior and accessibility with proper focus
management.
2026-06-03 09:12:26 -04:00
bruno cb1191af79 Add help navigation search, mobile toggle, and scroll spy
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-06-03 08:36:02 -04:00
bruno 5932d2fa20 feat: vault picker visuel + modal nom harmonisé + refresh sidebar après suppression
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 11s
2026-06-02 15:49:26 -04:00
bruno e405bdc929 feat: navigateur de dossiers dans la palette — créer/supprimer fichier/dossier par sélection visuelle
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-06-02 15:27:47 -04:00
bruno fc6452d4a4 fix: Alt+P au lieu de Ctrl+P (conflit navigateur) + bouton config correct
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 12s
2026-06-02 13:12:35 -04:00
bruno 08c29c9efe feat: palette de commandes Ctrl+P — navigation rapide fichiers + commandes
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-06-02 12:30:41 -04:00
bruno 6e742bfa2c Adjust dashboard tab styling for responsive layout 2026-05-27 15:23:50 -04:00
bruno b5aae2b2fd Reduce dashboard tab padding and font, enlarge icons 2026-05-27 15:09:08 -04:00
bruno b879163052 Refine mobile styles and improve search, sidebar, and layout 2026-05-27 12:55:46 -04:00
bruno a7c719afb1 Prioritize autocomplete dropdown over search results on Enter keypress 2026-05-27 12:25:25 -04:00
bruno 0d3de28967 Simplify sidebar tabs, improve saved search display, and refactor
suggestions
2026-05-27 09:27:26 -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 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 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 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 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 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