v2.2 - Small improvement Interface change

This commit is contained in:
pporcheret
2026-10-29 11:13:02 +01:00
parent a17c3cb614
commit 7f26f9b015
271 changed files with 6207 additions and 16044 deletions
@@ -6,6 +6,8 @@
<title>Identité · Assistant</title>
<link rel="stylesheet" href="/static/css/alfred-identity-glass.css?v=1">
<script src="/static/js/alfred-identity-glass.js?v=1" defer></script>
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body>
<header class="id-head">
@@ -37,5 +39,8 @@
</div>
</section>
</main>
<!-- ALFRED_DEVELOPER_V1 -->
<script src="/static/js/alfred-maintenance-link.js?v=1" defer></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body>
</html>
+5
View File
@@ -6,6 +6,8 @@
<title>Journaux · Alfred</title>
<link rel="stylesheet" href="/static/css/alfred-logs-v2.css?v=2">
<script src="/static/js/alfred-logs-v2.js?v=2" defer></script>
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body>
<header class="lg-header">
@@ -29,5 +31,8 @@
</main>
<!-- ALFRED_IDENTITY_GLASS_V1 -->
<script src="/static/js/alfred-name-dynamic.js?v=1" defer></script>
<!-- ALFRED_DEVELOPER_V1 -->
<script src="/static/js/alfred-maintenance-link.js?v=1" defer></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body>
</html>
@@ -0,0 +1,26 @@
<!doctype html>
<html lang="fr"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="robots" content="noindex,nofollow"><title>Maintenance · Dona</title>
<link rel="stylesheet" href="/static/css/alfred-developer-glass.css?v=1">
<script defer src="/static/js/alfred-developer-glass.js?v=1"></script>
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head><body>
<header class="dv-head"><a class="dv-brand" href="/"><span class="dv-initial" id="dvInitial">A</span><span><strong id="dvName">Assistant</strong><small>Maintenance & développement</small></span></a>
<nav><a href="/">Accueil</a><a href="/config">Configuration</a><a href="/surveillance">Surveillance</a><a href="/logs">Journaux</a><a href="/identity">Identité</a><a href="/maintenance" class="active" aria-current="page">Maintenance</a></nav></header>
<main class="dv-main"><div class="dv-intro"><div><p class="dv-eyebrow">HERMES · DÉVELOPPEMENT CONTRÔLÉ</p><h1>Maintenance & modifications</h1><p>Hermes prépare le code dans une copie Git. Tu vérifies et approuves ici avant toute modification en production.</p></div><button id="dvRefresh" type="button">Actualiser</button></div>
<section class="dv-panel" id="dvLoginBox" hidden><h2>Accès administrateur</h2><p>Utilise le même mot de passe que Configuration.</p><form id="dvLogin"><input type="password" id="dvPassword" autocomplete="current-password" placeholder="Mot de passe administrateur" required><button type="submit">Connexion</button></form><p id="dvLoginInfo" role="alert"></p></section>
<div id="dvApp" class="dv-layout" hidden>
<section class="dv-panel dv-list"><div class="dv-section-title"><h2>Propositions</h2><span id="dvCount">—</span></div><p class="dv-muted">Demande à Hermes : « Prépare une modification de ton interface ».</p><div id="dvTasks" role="list" class="dv-tasks"></div></section>
<section class="dv-panel dv-detail"><div class="dv-section-title"><h2>Détail & validation</h2><span id="dvState">Sélectionne une proposition</span></div>
<div id="dvEmpty" class="dv-empty">Les modifications apparaîtront ici lorsqu'Hermes aura créé une proposition.</div>
<div id="dvSelected" hidden><h3 id="dvTitle"></h3><p class="dv-muted" id="dvMeta"></p><h4>Contrôles</h4><div id="dvChecks" class="dv-checks"></div>
<h4>Diff des fichiers</h4><pre id="dvDiff" class="dv-diff" tabindex="0"></pre><p class="dv-muted">Le diff peut contenir du code sensible. Ne l'exporte pas publiquement.</p>
<div class="dv-actions" id="dvActions"><button class="dv-primary" type="button" id="dvApprove">Approuver la proposition</button><button type="button" id="dvReject">Refuser</button></div>
<div class="dv-next" id="dvNext" hidden><strong>Après approbation</strong><p>Le déploiement reste manuel : depuis SSH, lance la commande de déploiement avec l'identifiant affiché. Aucun bouton Web ne modifie le code de production.</p><code id="dvCommand"></code></div>
<p id="dvMessage" role="status" aria-live="polite"></p></div>
</section>
</div><p class="dv-footnote">Sécurité : les contrôles V1 sont statiques (syntaxe Python et JavaScript, HTML, CSS). Ils ne garantissent pas qu'une modification sera fonctionnelle. Déployer uniquement après revue.</p></main>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body></html>
+40
View File
@@ -10,6 +10,8 @@
<!-- ALFRED_ADMIN_SURVEILLANCE_V2 -->
<!-- ALFRED_ADMIN_GLASS_MAISON_V1 -->
<link rel="stylesheet" href="/static/css/alfred-admin-glass.css?v=1">
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body data-page="config">
<div class="admin-layout">
@@ -68,6 +70,41 @@
</div>
<p class="admin-v2-help">Le modèle Whisper (<strong>small</strong> actuellement) et son vocabulaire technique (<code>--initial-prompt</code> pour Proxmox, Wazuh…) se configurent <strong>dans le conteneur Docker distant</strong>, pas sur Alfred. En cas de panne Whisper, retour automatique à Vosk si le correctif STT V1 est installé.</p>
</section>
<!-- ALFRED_DUPLEX_BARGE_IN_V1 -->
<section class="panel" id="alfredDuplexPanel">
<div class="panel-title"><span class="panel-symbol">≋</span><div>
<h2>Interruption vocale (duplex)</h2>
<p>Couper la parole à l'assistant pendant la lecture Piper</p>
</div></div>
<div class="field"><label for="DUPLEX_MODE">Mode d'interruption</label>
<select id="DUPLEX_MODE" data-setting>
<option value="off">Désactivé (comportement actuel)</option>
<option value="wake">Avec le nom d'activation — recommandé</option>
<option value="natural">Naturelle sans le nom — expérimental</option>
</select>
<small>En mode « avec le nom », prononce le mot de réveil configuré (Dona, si c'est ton WAKE_WORD). En mode naturel, un début de parole distinct du TTS peut interrompre la réponse.</small>
</div>
<div class="field"><label for="DUPLEX_MIC_THRESHOLD">Seuil micro (sensibilité)</label>
<input type="number" id="DUPLEX_MIC_THRESHOLD" data-setting min="0.008" max="0.30" step="0.005" placeholder="0.025">
<small>Augmenter pour limiter les déclenchements intempestifs ; valeur initiale 0.025.</small>
</div>
<!-- ALFRED_DUPLEX_CONVERSATION_V2 -->
<div class="field switch-field"><label for="DUPLEX_STOP_COMMANDS">Commandes « Stop », « Silence », « Arrête »
<small>Coupe uniquement Piper, sans nom d’activation ni annulation des tâches Hermes.</small></label>
<input id="DUPLEX_STOP_COMMANDS" type="checkbox" data-setting></div>
<div class="field switch-field"><label for="DUPLEX_HANDOFF">Nouvelle question pendant la réponse
<small>Interromps Dona et continue avec une question sans devoir répéter le nom.</small></label>
<input id="DUPLEX_HANDOFF" type="checkbox" data-setting></div>
<div class="field switch-field"><label for="DUPLEX_CONVERSATION">Mode Conversation
<small>Après une réponse Piper, une courte fenêtre permet de poser une autre question.</small></label>
<input id="DUPLEX_CONVERSATION" type="checkbox" data-setting></div>
<div class="field"><label for="DUPLEX_CONVERSATION_SECONDS">Fenêtre de conversation (secondes)</label>
<input id="DUPLEX_CONVERSATION_SECONDS" type="number" min="2" max="15" step="1" data-setting>
<small>6 s recommandées. Pour fermer cette fenêtre, attends simplement quelques secondes.</small></div>
<p class="muted microtext">Anti-écho : confirmation acoustique, comparaison avec les paroles Piper et délai de garde. Ceci ne remplace pas un vrai AEC ; le mode naturel reste expérimental.</p>
<p class="muted" style="margin-top:12px">⚠ Le mode naturel exige idéalement un microphone avec annulation d'écho acoustique. Le simple filtrage logiciel ne remplace pas un AEC. Le retour à l'écoute prend effet après l'interruption ; attends que l'assistant soit prêt avant la nouvelle question. Les réglages nécessitent un redémarrage.</p>
</section>
<section class="panel restart-panel"><div><h2>Maintenance</h2><p class="muted">Redémarrer Alfred pour appliquer les paramètres enregistrés. Action protégée par mot de passe administrateur.</p><span class="microtext muted">Le bouton requiert une autorisation systemd explicitement activée.</span></div><button class="button danger" type="button" id="restartButton">Redémarrer Alfred</button></section>
<p role="status" aria-live="polite" class="message" id="message"></p>
</main>
@@ -76,5 +113,8 @@
<script src="/static/js/alfred-admin-glass.js?v=1"></script>
<!-- ALFRED_IDENTITY_GLASS_V1 -->
<script src="/static/js/alfred-name-dynamic.js?v=1" defer></script>
<!-- ALFRED_DEVELOPER_V1 -->
<script src="/static/js/alfred-maintenance-link.js?v=1" defer></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body>
</html>
+3
View File
@@ -34,6 +34,8 @@
#status { min-height:1.3em; margin:18px 0 0; color:#a5a9b0; font-size:.86rem; }
a { color:#cdd2da; text-decoration:none; }
</style>
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body>
<main>
@@ -128,5 +130,6 @@
</script>
<!-- ALFRED_IDENTITY_GLASS_V1 -->
<script src="/static/js/alfred-name-dynamic.js?v=1" defer></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body>
</html>
+14
View File
@@ -18,6 +18,14 @@
<link rel="stylesheet" href="/static/css/alfred-listes-glass.css?v=1">
<!-- ALFRED_GLASS_V2 -->
<link rel="stylesheet" href="/static/css/alfred-main-v2.css?v=2">
<!-- ALFRED_STT_INLINE_GLASS_V1 -->
<link rel="stylesheet" href="/static/css/alfred-stt-inline-v1.css?v=1">
<!-- ALFRED_REPONSE_CLOSE_V1 -->
<link rel="stylesheet" href="/static/css/alfred-reponse-close-v1.css?v=1">
<!-- ALFRED_HERMES_NEW_SESSION_V1 -->
<link rel="stylesheet" href="/static/css/alfred-hermes-new-session.css?v=1">
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body>
<main class="alfred-shell">
@@ -196,5 +204,11 @@
<script src="/static/js/alfred-main-v2.js?v=2"></script>
<!-- ALFRED_IDENTITY_GLASS_V1 -->
<script src="/static/js/alfred-name-dynamic.js?v=1" defer></script>
<script src="/static/js/alfred-stt-inline-v1.js?v=1"></script>
<script src="/static/js/alfred-reponse-close-v1.js?v=1"></script>
<!-- ALFRED_DEVELOPER_V1 -->
<script src="/static/js/alfred-maintenance-link.js?v=1" defer></script>
<script src="/static/js/alfred-hermes-new-session.js?v=1"></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body>
</html>
+5
View File
@@ -3,6 +3,8 @@
<!-- ALFRED_ADMIN_SURVEILLANCE_V2 -->
<!-- ALFRED_ADMIN_GLASS_MAISON_V1 -->
<link rel="stylesheet" href="/static/css/alfred-admin-glass.css?v=1">
<!-- DONA_HOLO_V1 -->
<link rel="stylesheet" href="/static/css/dona-holographic-v1.css?v=1">
</head>
<body data-page="surveillance">
<div class="admin-layout">
@@ -46,4 +48,7 @@
</div><script src="/static/js/alfred-admin-glass.js?v=1"></script>
<!-- ALFRED_IDENTITY_GLASS_V1 -->
<script src="/static/js/alfred-name-dynamic.js?v=1" defer></script>
<!-- ALFRED_DEVELOPER_V1 -->
<script src="/static/js/alfred-maintenance-link.js?v=1" defer></script>
<script defer src="/static/js/dona-holographic-v1.js?v=1"></script>
</body></html>