|
|
|
|
@@ -2609,96 +2609,5 @@ if (typeof window.navigateTo === 'function'){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- === OPUS SESSION V20 INCIDENT + PAPERCLIP (20 avr 2026) - additif, zero overwrite === -->
|
|
|
|
|
<section id="wtp-session-v20-incident" style="margin:24px 12px;padding:22px 24px;border-radius:16px;background:linear-gradient(135deg,rgba(239,68,68,.06),rgba(34,197,94,.06));backdrop-filter:blur(10px);border:1px solid rgba(239,68,68,.25);box-shadow:0 6px 24px rgba(0,0,0,.22);color:var(--fg,#e5edff);font-family:system-ui,-apple-system,Segoe UI,Inter,sans-serif;">
|
|
|
|
|
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px">
|
|
|
|
|
<h3 style="margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--fg,#e5edff)">🛡️ Session 20 avr · Incident Response + Paperclip · v9.20</h3>
|
|
|
|
|
<div style="display:flex;gap:8px;align-items:center;font-size:12px">
|
|
|
|
|
<span style="padding:3px 10px;border-radius:20px;background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.4);color:#4ade80;font-weight:600">NonReg 153/153</span>
|
|
|
|
|
<span style="padding:3px 10px;border-radius:20px;background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.4);color:#4ade80;font-weight:600">ZERO REGRESSION</span>
|
|
|
|
|
<span style="padding:3px 10px;border-radius:20px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.4);color:#818cf8;font-weight:600">WEVIA-FIRST</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="wtp-v20-kpi-grid" style="display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px">
|
|
|
|
|
<div class="v20-kpi" data-kpi="paperclip-health" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(99,102,241,.2)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">Paperclip Health</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#4ade80" id="v20-pcl-score">—</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px" id="v20-pcl-status">loading…</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="v20-kpi" data-kpi="intent-count" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(99,102,241,.2)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">WEVIA Intents (v2 dispatcher)</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#818cf8" id="v20-intent-count">—</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px">+9 session 20 avr</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="v20-kpi" data-kpi="incident-cron" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(34,197,94,.3)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">Cron Pastebin Postgres</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#4ade80">CLEANED</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px">chattr +i · vault backup</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="v20-kpi" data-kpi="dispatcher-v2" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(34,197,94,.3)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">Dispatcher v2 (greedy fix)</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#4ade80">LIVE</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px">trigger scoring DESC</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="v20-kpi" data-kpi="nonreg" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(34,197,94,.3)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">NonReg maintenu</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#4ade80">153/153</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px">59+ cycles</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="v20-kpi" data-kpi="l99" style="padding:14px;border-radius:12px;background:rgba(0,0,0,.28);border:1px solid rgba(34,197,94,.3)">
|
|
|
|
|
<div style="font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px">L99 Score</div>
|
|
|
|
|
<div style="font-size:24px;font-weight:700;color:#4ade80">340/340</div>
|
|
|
|
|
<div style="font-size:11px;color:#64748b;margin-top:4px">12 layers · 100%</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="margin-top:14px;padding:12px;border-radius:10px;background:rgba(0,0,0,.18);border:1px solid rgba(99,102,241,.15)">
|
|
|
|
|
<div style="font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600">🔗 Triggers WEVIA Master (natural language chat)</div>
|
|
|
|
|
<div style="display:flex;flex-wrap:wrap;gap:6px;font-size:11px;font-family:monospace">
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc" title="Fix paperclip EACCES perms">paperclip fix perms</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc" title="Live health check">paperclip live status</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc" title="Forensic scan">incident postgres scan</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);color:#86efac" title="Safe backup (done)">incident backup postgres cron</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#fca5a5" title="Executed">CONFIRM remove postgres pastebin cron yanis</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#fca5a5" title="Executed chattr +i">CONFIRM lock postgres crontab yanis</span>
|
|
|
|
|
<span style="padding:3px 8px;border-radius:6px;background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc" title="Fix preview">dispatcher greedy fix preview</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="margin-top:10px;display:flex;gap:10px;flex-wrap:wrap;font-size:11px">
|
|
|
|
|
<a href="/api/paperclip-status.php" target="_blank" style="color:#60a5fa;text-decoration:none;padding:4px 10px;border-radius:6px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3)">🩺 paperclip-status.php</a>
|
|
|
|
|
<a href="/api/incident-remediation.php?action=backup-only" target="_blank" style="color:#60a5fa;text-decoration:none;padding:4px 10px;border-radius:6px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3)">📋 incident-remediation.php</a>
|
|
|
|
|
<a href="/api/dispatcher-greedy-fix-preview.php" target="_blank" style="color:#60a5fa;text-decoration:none;padding:4px 10px;border-radius:6px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3)">🔍 dispatcher-greedy-fix-preview.php</a>
|
|
|
|
|
<a href="/api/wiki/doctrine-58-incident-response.md" target="_blank" style="color:#60a5fa;text-decoration:none;padding:4px 10px;border-radius:6px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.3)">📖 doctrine #58 wiki</a>
|
|
|
|
|
<a href="/wevia-master.html" target="_blank" style="color:#4ade80;text-decoration:none;padding:4px 10px;border-radius:6px;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.3)">💬 WEVIA Master chat</a>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
<script>
|
|
|
|
|
(function(){
|
|
|
|
|
async function refreshV20(){
|
|
|
|
|
try {
|
|
|
|
|
const r = await fetch('/api/paperclip-status.php', {cache:'no-store'});
|
|
|
|
|
const d = await r.json();
|
|
|
|
|
document.getElementById('v20-pcl-score').textContent = d.health_score || '—';
|
|
|
|
|
document.getElementById('v20-pcl-status').textContent = d.status + ' · ' + (d.health_pct||0) + '%';
|
|
|
|
|
const col = d.status === 'ALL_GREEN' ? '#4ade80' : (d.status === 'MOSTLY_OK' ? '#fbbf24' : '#f87171');
|
|
|
|
|
document.getElementById('v20-pcl-score').style.color = col;
|
|
|
|
|
} catch(e){}
|
|
|
|
|
try {
|
|
|
|
|
const r2 = await fetch('/api/wevia-master-api.php', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify({message:'master list intents'})});
|
|
|
|
|
const d2 = await r2.json();
|
|
|
|
|
if (d2.count) document.getElementById('v20-intent-count').textContent = d2.count.toLocaleString();
|
|
|
|
|
} catch(e){}
|
|
|
|
|
}
|
|
|
|
|
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', refreshV20);
|
|
|
|
|
else refreshV20();
|
|
|
|
|
setInterval(refreshV20, 60000);
|
|
|
|
|
})();
|
|
|
|
|
</script>
|
|
|
|
|
<!-- === OPUS SESSION V20 INCIDENT END === -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|