feat(phase4): permanent cache-control & asset versioning, canonical nabil stored_session_id & resume, dsh session persistence fix, dsh dialogue/files toggle, and collapsible conv sidebar

This commit is contained in:
bolbol
2026-08-20 23:51:08 +01:00
parent e40fe71f5c
commit 9c8f292d0f
6 changed files with 150 additions and 36 deletions
+18 -8
View File
@@ -8,7 +8,7 @@
<div class="hub-brand-left">
<div class="hub-logo-icon">H</div>
<div class="hub-brand-text">Hermes Hub</div>
<div class="hub-brand-badge">v2.0</div>
<div class="hub-brand-badge">v2.1</div>
</div>
<button id="btn-toggle-sidebar" class="hub-collapse-btn" type="button" aria-label="Replier la barre latérale" title="Replier la barre latérale">
<svg class="hub-collapse-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
@@ -70,16 +70,16 @@
</div>
<div class="hub-topbar-right">
<!-- Sélecteur Toggle Mode DSH (Univers Nabil) -->
<div id="nabil-mode-toggle" role="tablist" aria-label="Mode du canvas" class="hub-mode-toggle" style="display: none;">
<!-- Sélecteur Toggle Mode DSH (Exclusif à l'univers DSH) -->
<div id="dsh-mode-toggle" role="tablist" aria-label="Mode DSH" class="hub-mode-toggle" style="display: none;">
<button id="tab-session" role="tab" aria-selected="true" class="hub-mode-tab active" type="button">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
<span>Chat Natif</span>
<span>💬 Dialogue</span>
</button>
<div class="hub-mode-divider"></div>
<button id="tab-files" role="tab" aria-selected="false" class="hub-mode-tab" type="button">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M4 20h14a2 2 0 0 0 2-2V9H12L10 6H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1z"></path></svg>
<span>Fichiers DSH</span>
<span>📁 Explorateur</span>
</button>
</div>
@@ -89,15 +89,20 @@
<!-- Canvas Container -->
<div class="hub-canvas">
<!-- 1. Native Chat Two-Column Interface -->
<!-- 1. Native Chat Two-Column Interface (TT, Nyora, Perso, Nabil) -->
<div id="hub-native-chat" class="hub-native-chat-layout">
<!-- Sub-sidebar Conversations -->
<div class="hub-conv-sidebar">
<div id="hub-conv-sidebar" class="hub-conv-sidebar">
<div class="hub-conv-header">
<button id="btn-new-chat" class="hub-btn-new-chat" type="button">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
<span>Nouvelle discussion</span>
</button>
<button id="btn-toggle-conv-sidebar" class="hub-collapse-conv-btn" type="button" aria-label="Masquer la liste des discussions" title="Masquer la liste des discussions">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="15 18 9 12 15 6"></polyline>
</svg>
</button>
</div>
<div class="hub-conv-search-wrap">
@@ -115,6 +120,11 @@
<!-- Active Conversation Header -->
<div class="hub-chat-header">
<div class="hub-chat-header-info">
<button id="btn-expand-conv-sidebar" class="hub-expand-conv-btn" type="button" aria-label="Afficher les discussions" title="Afficher les discussions" style="display: none;">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</button>
<span id="current-chat-title" class="hub-chat-header-title">Nouvelle conversation</span>
<span id="current-chat-status" class="hub-chat-header-status">Prêt</span>
</div>
@@ -155,7 +165,7 @@
</div>
</div>
<!-- 2. Embedded Iframe View (Used for DSH client and DSH Filebrowser) -->
<!-- 2. Embedded Iframe View (Used exclusively for DSH Dialogue and DSH Files) -->
<div id="hub-iframe-wrapper" class="hub-iframe-wrapper" style="display: none;">
<div id="hub-loader" class="hub-loader-overlay">
<div class="hub-spinner"></div>