phase70 doctrine211 AUTONOMOUS WEVIA training-header-fix | 65 intents auto-wires via NL chat | CSS flex-wrap gap 8px max-width calc 100vw tooltip hidden | 2 videos webm + PNG frames proofs publics | ZERO CX ZERO SSH ZERO manuel Yacine | WEVIA patronne
This commit is contained in:
@@ -141,7 +141,24 @@ body::before {
|
||||
}
|
||||
|
||||
</style>
|
||||
<style id=WVHDRFIXv2>header,.top-bar,.topbar,[class*=control-bar],[class*=topbar]{display:flex!important;flex-wrap:wrap!important;gap:8px!important;max-width:calc(100vw - 20px)!important;overflow:visible!important;justify-content:flex-end!important}[data-tooltip]::after,[data-tooltip]::before,.tooltip-anim,.tooltip{animation:none!important;transition:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}</style></head>
|
||||
<style id=WVHDRFIXv2>header,.top-bar,.topbar,[class*=control-bar],[class*=topbar]{display:flex!important;flex-wrap:wrap!important;gap:8px!important;max-width:calc(100vw - 20px)!important;overflow:visible!important;justify-content:flex-end!important}[data-tooltip]::after,[data-tooltip]::before,.tooltip-anim,.tooltip{animation:none!important;transition:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}</style>
|
||||
<!-- DOCTRINE-221-NEUTRALIZE-PULSELIVE -->
|
||||
<style>
|
||||
/* Override pulseLive to constant opacity 1 - removes synchronised va-et-vient on 14 badges */
|
||||
@keyframes pulseLive { 0%,100%,50% { opacity: 1; } }
|
||||
</style>
|
||||
<!-- END-DOCTRINE-221 -->
|
||||
|
||||
<!-- DOCTRINE-222-KILL-PULSED60 -->
|
||||
<style>
|
||||
/* KILL the global pulseD60 animation applied by Gemini UX doctrine-60-enrich on .pulse/.active/.online/.live-indicator
|
||||
Root cause of "va-et-vient tout le dashboard" - 3s scale 1.05 cycle on ALL active elements synchronously */
|
||||
@keyframes pulseD60 { 0%,100%,50% { opacity: 1; transform: scale(1); } }
|
||||
/* Defense in depth - also neutralize the selector directly in case keyframe override missed */
|
||||
.pulse, .live-indicator, .active, .online { animation: none !important; }
|
||||
</style>
|
||||
<!-- END-DOCTRINE-222 -->
|
||||
</head>
|
||||
<body>
|
||||
<div class="topbar">
|
||||
<div class="brand"><div class="brand-dot"></div><h1>WEVIA Master Control Center</h1><span class="brand-sub">V77 · Training · Monitor · Brain · Multiagent · Empire</span></div>
|
||||
@@ -2867,7 +2884,7 @@ function drawBrainPulse(){
|
||||
for (let i = 0; i < pts; i++){
|
||||
const x = i * W / pts;
|
||||
const base = H/2;
|
||||
const pulse = (i === Math.floor((now/1000) % pts)) ? 40 : (Math.sin(i*0.3 + now/800) * 15);
|
||||
const pulse = Math.sin(i*0.3) * 15; /* DOCTRINE-220-STOP-WAVE: static, no slide */
|
||||
const y = base - pulse;
|
||||
if (i === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y);
|
||||
}
|
||||
@@ -2878,7 +2895,7 @@ function drawBrainPulse(){
|
||||
ctx.fillText('learning pulse · ' + new Date().toLocaleTimeString(), 10, 15);
|
||||
}
|
||||
|
||||
setInterval(() => { refreshBrainHeartbeat(); drawBrainPulse(); }, 3000);
|
||||
setInterval(() => { refreshBrainHeartbeat(); /* DOCTRINE-220-STOP-WAVE: drawBrainPulse() removed from interval - static rendering only */ }, 3000);
|
||||
|
||||
// ============== INIT ==============
|
||||
async function init(){
|
||||
@@ -3288,5 +3305,49 @@ setInterval(() => {
|
||||
})();
|
||||
|
||||
</script>
|
||||
<!-- DOCTRINE-217-INTEGRATION-WIDGET -->
|
||||
<style>
|
||||
#d217-widget{position:fixed;bottom:130px;right:20px;z-index:999999;width:300px;background:rgba(10,10,30,0.96);backdrop-filter:blur(15px);border:1px solid rgba(0,224,199,0.4);border-radius:14px;padding:12px;color:#e0e0e0;font-family:system-ui;font-size:11px;box-shadow:0 -8px 30px rgba(0,0,0,0.6);display:none}
|
||||
#d217-widget.open{display:block}
|
||||
#d217-toggle{position:fixed;bottom:80px;right:20px;z-index:999999;background:linear-gradient(135deg,#00e0c7,#9c27b0);color:#fff;padding:8px 12px;border:none;border-radius:22px;font-weight:600;font-size:11px;cursor:pointer;box-shadow:0 4px 12px rgba(0,224,199,0.3)}
|
||||
#d217-toggle.hidden{display:none}
|
||||
#d217-widget h4{margin:0 0 8px;color:#00e0c7;font-size:12px;display:flex;justify-content:space-between;align-items:center}
|
||||
#d217-widget .d217-row{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid rgba(255,255,255,0.06)}
|
||||
#d217-widget .v{color:#9c27b0;font-weight:600}
|
||||
#d217-close{background:none;border:none;color:#ff5757;font-size:16px;cursor:pointer;font-weight:bold}
|
||||
</style>
|
||||
<button id="d217-toggle" onclick="var w=document.getElementById('d217-widget');w.classList.add('open');this.classList.add('hidden');">Brain Training D217</button>
|
||||
<div id="d217-widget">
|
||||
<h4>Brain Training D217 <button id="d217-close" onclick="document.getElementById('d217-widget').classList.remove('open');document.getElementById('d217-toggle').classList.remove('hidden');">×</button></h4>
|
||||
<div id="d217-body">Loading...</div>
|
||||
<div style="margin-top:8px;font-size:9px;color:#666">Auto-refresh 30s / cron 10min</div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
async function r(){
|
||||
try{
|
||||
var resp = await fetch('/api/brain-training.php', {cache:'no-store'});
|
||||
var d = await resp.json();
|
||||
var agg = d.aggregate||{};
|
||||
var trend = (d.quality_trend&&d.quality_trend.direction)||'-';
|
||||
var cron = (d.cron&&d.cron.installed)?'OK':'NO';
|
||||
var rows = [
|
||||
['Status', d.status||'-'],
|
||||
['Cron 10min', cron],
|
||||
['Runs 24h', d.runs_count_24h||0],
|
||||
['Pending proposals', d.pending_count||0],
|
||||
['Total proposals', agg.total_proposals_generated||0],
|
||||
['Hallucinations', agg.total_hallucinations_detected||0],
|
||||
['Queries harvested', agg.total_queries_harvested||0],
|
||||
['Quality trend', trend]
|
||||
];
|
||||
document.getElementById('d217-body').innerHTML = rows.map(function(r){return '<div class="d217-row"><span>'+r[0]+'</span><span class="v">'+r[1]+'</span></div>';}).join('');
|
||||
}catch(e){ document.getElementById('d217-body').innerHTML = '<em style="color:#ff5757">D217 offline</em>'; }
|
||||
}
|
||||
r(); setInterval(r, 30000);
|
||||
})();
|
||||
</script>
|
||||
<!-- END-DOCTRINE-217-INTEGRATION-WIDGET -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user