Add real-time file synchronization with watchdog, SSE notifications, and dynamic vault management API

This commit is contained in:
2026-03-23 14:16:45 -04:00
parent d8e5d0ef57
commit 757b72c549
9 changed files with 1365 additions and 8 deletions
+34
View File
@@ -88,6 +88,7 @@
<i data-lucide="book-open" style="width:20px;height:20px"></i>
ObsiGate
</div>
<span class="sync-badge sync-badge--disconnected" id="sync-badge" title="Synchronisation"></span>
</div>
<div class="header-center">
@@ -387,6 +388,39 @@
</div>
</section>
<!-- Watcher / Synchronisation -->
<section class="config-section">
<h2>Synchronisation automatique</h2>
<p class="config-description">Surveillance des fichiers en temps réel via watchdog. Les modifications sont détectées automatiquement et l'index est mis à jour sans redémarrage.</p>
<div class="config-row">
<label class="config-label" for="cfg-watcher-enabled">Activer la surveillance</label>
<label class="config-toggle">
<input type="checkbox" id="cfg-watcher-enabled" checked>
<span class="config-toggle-slider"></span>
</label>
<span class="config-hint">Activer/désactiver la surveillance automatique des fichiers</span>
</div>
<div class="config-row">
<label class="config-label" for="cfg-watcher-polling">Mode polling (fallback)</label>
<label class="config-toggle">
<input type="checkbox" id="cfg-watcher-polling">
<span class="config-toggle-slider"></span>
</label>
<span class="config-hint">Forcer le mode polling au lieu de inotify natif (utile si le mode natif ne fonctionne pas)</span>
</div>
<div class="config-row">
<label class="config-label" for="cfg-watcher-interval">Intervalle polling (s)</label>
<input type="number" id="cfg-watcher-interval" class="config-input config-input--num" min="1" max="30" step="1" value="5">
<span class="config-hint">Intervalle de scrutation en mode polling (1–30 secondes)</span>
</div>
<div class="config-row">
<label class="config-label" for="cfg-watcher-debounce">Debounce (s)</label>
<input type="number" id="cfg-watcher-debounce" class="config-input config-input--num" min="0.5" max="10" step="0.5" value="2">
<span class="config-hint">Délai avant traitement des changements groupés (0.5–10 secondes)</span>
</div>
</section>
<!-- Diagnostics -->
<section class="config-section">
<h2>Diagnostics</h2>