auto-sync-1530

This commit is contained in:
opus
2026-04-19 15:30:03 +02:00
parent 728ec93cb4
commit e5aa50fd97
94 changed files with 1468 additions and 2171 deletions

View File

@@ -1321,7 +1321,38 @@ window.addEventListener('resize',function(){cam.aspect=innerWidth/innerHeight;ca
</div>
</div>
<!-- /V66-PAIN-POINTS-ATLAS -->
<script>
/* V73 AVATAR UNIFIER - injected by Opus 18avr */
(function(){
if (window.__WEVAL_AVATAR_UNIFIED_V73) return;
window.__WEVAL_AVATAR_UNIFIED_V73 = true;
const REG_URL = '/api/agent-avatars.json';
fetch(REG_URL + '?t=' + Date.now()).then(r => r.json()).then(REG => {
function applyAvatars() {
document.querySelectorAll('img').forEach(img => {
const key = img.getAttribute('alt') || img.getAttribute('title') || img.dataset.agent || '';
if (!key) return;
// Try exact match then case-insensitive
let match = REG[key];
if (!match) {
const lowerKey = key.toLowerCase();
const entry = Object.entries(REG).find(([k]) => k.toLowerCase() === lowerKey);
if (entry) match = entry[1];
}
if (match && img.src !== match) {
img.src = match;
img.setAttribute('data-weval-unified', '1');
}
});
}
applyAvatars();
setTimeout(applyAvatars, 500);
setTimeout(applyAvatars, 1500);
setTimeout(applyAvatars, 3000);
console.log('[V73 AvatarUnifier] applied from', Object.keys(REG).length, 'agents registry');
}).catch(e => console.warn('[V73 AvatarUnifier] fetch failed', e));
})();
</script>
<script id="d91-archi-rerender">
(function(){
@@ -1355,60 +1386,5 @@ window.addEventListener('resize',function(){cam.aspect=innerWidth/innerHeight;ca
})();
</script>
<script id="d93cj">(function(){function e(){var s=["[data-agent]",".agent",".agent-card",".card-agent",".node",".gap-agent"];s.forEach(function(q){document.querySelectorAll(q).forEach(function(c){if(c.querySelector(".p-av")||c.dataset.d93c)return;c.dataset.d93c=1;var p=document.createElement("span");p.className="p-av";p.setAttribute("data-persona","human");p.textContent="\ud83d\udc64";if(window.WevalAvatar&&WevalAvatar.get){var n=(c.dataset.agent||c.getAttribute("data-name")||(c.querySelector("h3,h4,.name")||{}).textContent||"").trim();if(n){try{var r=WevalAvatar.get(n);if(r&&r.emoji){p.textContent=r.emoji;if(r.persona)p.setAttribute("data-persona",r.persona);}}catch(e){}}}c.insertBefore(p,c.firstChild);});});}if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",e);else e();setTimeout(e,500);setTimeout(e,1500);setTimeout(e,3500);})();</script>
<script>
/* V75 AVATAR UNIFIER — Meeting-rooms emoji style (Opus 19avr) */
(function() {
if (window.__WEVAL_AVATAR_V75) return;
window.__WEVAL_AVATAR_V75 = true;
const REG_URL = '/api/agent-avatars.json';
const SVG_EP = '/api/agent-avatar-svg.php';
function emojiSVGUrl(name, emoji) {
return SVG_EP + '?n=' + encodeURIComponent(name) + '&e=' + encodeURIComponent(emoji);
}
fetch(REG_URL + '?t=' + Date.now()).then(r => r.json()).then(REG => {
function getAvatarUrl(name) {
const rec = REG[name];
if (!rec) return null;
if (typeof rec === 'object' && rec.svg) return rec.svg;
if (typeof rec === 'object' && rec.emoji) return emojiSVGUrl(name, rec.emoji);
return typeof rec === 'string' ? rec : null;
}
function findCI(key) {
const lower = key.toLowerCase();
for (const k of Object.keys(REG)) if (k.toLowerCase() === lower) return k;
return null;
}
function apply() {
document.querySelectorAll('img').forEach(img => {
const key = img.alt || img.dataset.agent || img.dataset.name || img.title || '';
if (!key) return;
let url = getAvatarUrl(key);
if (!url) { const alt = findCI(key); if (alt) url = getAvatarUrl(alt); }
if (url && img.src !== url && !img.src.endsWith(url)) {
img.src = url;
img.setAttribute('data-weval-v75', '1');
}
});
document.querySelectorAll('[data-agent]:not([data-weval-v75-applied])').forEach(el => {
const name = el.dataset.agent;
const url = getAvatarUrl(name);
if (!url) return;
const img = document.createElement('img');
img.src = url; img.alt = name; img.title = name;
img.className = 'v75-avatar';
img.style.cssText = 'width:32px;height:32px;border-radius:50%;object-fit:cover;vertical-align:middle;background:transparent';
el.setAttribute('data-weval-v75-applied', '1');
el.prepend(img);
});
}
apply();
setTimeout(apply, 400); setTimeout(apply, 1200); setTimeout(apply, 3000);
const mo = new MutationObserver(() => apply());
mo.observe(document.body, {childList: true, subtree: true});
setTimeout(() => mo.disconnect(), 20000);
console.log('[V75 AvatarUnifier] applied from', Object.keys(REG).length, 'agents');
}).catch(e => console.warn('[V75] fetch failed', e));
})();
</script>
</body></html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -1,7 +1,7 @@
{
"ts": "2026-04-19T13:16:18.897Z",
"ts": "2026-04-19T13:27:57.735Z",
"test": "7-SIGMA V2 · 30 truly public pages × 5 dims",
"out": "/var/www/html/api/playwright-results/seven-sigma-v2-2026-04-19T13-16-18",
"out": "/var/www/html/api/playwright-results/seven-sigma-v2-2026-04-19T13-27-57",
"pages": [
{
"id": "index",
@@ -11,14 +11,14 @@
"status": "PASS",
"http": 200,
"body_len": 4156,
"load_ms": 1422
"load_ms": 1488
},
"perf": {
"status": "PASS",
"ttfb_ms": 108,
"domContentLoaded_ms": 303,
"loadEvent_ms": 882,
"fcp_ms": 328,
"ttfb_ms": 78,
"domContentLoaded_ms": 284,
"loadEvent_ms": 947,
"fcp_ms": 488,
"resources": 17
},
"a11y": {
@@ -41,7 +41,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 6430,
"diff_pixels": 6888,
"has_baseline": true
}
}
@@ -53,16 +53,16 @@
"http": {
"status": "PASS",
"http": 200,
"body_len": 281,
"load_ms": 759
"body_len": 324,
"load_ms": 2684
},
"perf": {
"status": "PASS",
"ttfb_ms": 71,
"domContentLoaded_ms": 541,
"loadEvent_ms": 542,
"fcp_ms": 188,
"resources": 23
"ttfb_ms": 72,
"domContentLoaded_ms": 521,
"loadEvent_ms": 523,
"fcp_ms": 184,
"resources": 24
},
"a11y": {
"status": "PASS",
@@ -77,15 +77,13 @@
"passes_count": 11
},
"js_errors": {
"status": "FAIL",
"count": 1,
"samples": [
"Invalid or unexpected token"
]
"status": "PASS",
"count": 0,
"samples": []
},
"visual": {
"status": "PASS",
"diff_pixels": 2601,
"diff_pixels": 0,
"has_baseline": true
}
}
@@ -98,14 +96,14 @@
"status": "PASS",
"http": 200,
"body_len": 2887,
"load_ms": 883
"load_ms": 929
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 112,
"loadEvent_ms": 129,
"fcp_ms": 144,
"ttfb_ms": 50,
"domContentLoaded_ms": 95,
"loadEvent_ms": 96,
"fcp_ms": 160,
"resources": 7
},
"a11y": {
@@ -126,7 +124,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -138,15 +136,15 @@
"http": {
"status": "PASS",
"http": 200,
"body_len": 4921,
"load_ms": 2456
"body_len": 4983,
"load_ms": 2445
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 62,
"loadEvent_ms": 63,
"fcp_ms": 152,
"ttfb_ms": 51,
"domContentLoaded_ms": 80,
"loadEvent_ms": 80,
"fcp_ms": 132,
"resources": 10
},
"a11y": {
@@ -168,7 +166,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 588,
"diff_pixels": 601,
"has_baseline": true
}
}
@@ -181,14 +179,14 @@
"status": "PASS",
"http": 200,
"body_len": 8392,
"load_ms": 891
"load_ms": 894
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 91,
"loadEvent_ms": 92,
"fcp_ms": 128,
"domContentLoaded_ms": 64,
"loadEvent_ms": 65,
"fcp_ms": 108,
"resources": 3
},
"a11y": {
@@ -209,7 +207,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 197,
"diff_pixels": 338,
"has_baseline": true
}
}
@@ -222,14 +220,14 @@
"status": "PASS",
"http": 200,
"body_len": 7308,
"load_ms": 848
"load_ms": 833
},
"perf": {
"status": "PASS",
"ttfb_ms": 52,
"domContentLoaded_ms": 90,
"loadEvent_ms": 91,
"fcp_ms": 120,
"ttfb_ms": 49,
"domContentLoaded_ms": 86,
"loadEvent_ms": 86,
"fcp_ms": 116,
"resources": 8
},
"a11y": {
@@ -251,7 +249,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 92,
"diff_pixels": 157,
"has_baseline": true
}
}
@@ -264,14 +262,14 @@
"status": "PASS",
"http": 200,
"body_len": 6838,
"load_ms": 876
"load_ms": 869
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 70,
"loadEvent_ms": 71,
"fcp_ms": 100,
"ttfb_ms": 49,
"domContentLoaded_ms": 59,
"loadEvent_ms": 60,
"fcp_ms": 104,
"resources": 5
},
"a11y": {
@@ -293,7 +291,7 @@
},
"visual": {
"status": "FAIL",
"diff_pixels": 39394,
"diff_pixels": 39465,
"has_baseline": true
}
}
@@ -306,14 +304,14 @@
"status": "PASS",
"http": 200,
"body_len": 380,
"load_ms": 3025
"load_ms": 2981
},
"perf": {
"status": "PASS",
"ttfb_ms": 70,
"domContentLoaded_ms": 1420,
"loadEvent_ms": 1914,
"fcp_ms": 912,
"ttfb_ms": 74,
"domContentLoaded_ms": 883,
"loadEvent_ms": 1446,
"fcp_ms": 124,
"resources": 11
},
"a11y": {
@@ -335,7 +333,7 @@
},
"visual": {
"status": "FAIL",
"diff_pixels": 38800,
"diff_pixels": 50496,
"has_baseline": true
}
}
@@ -348,14 +346,14 @@
"status": "PASS",
"http": 200,
"body_len": 6803,
"load_ms": 739
"load_ms": 916
},
"perf": {
"status": "PASS",
"ttfb_ms": 51,
"domContentLoaded_ms": 160,
"loadEvent_ms": 160,
"fcp_ms": 272,
"ttfb_ms": 55,
"domContentLoaded_ms": 138,
"loadEvent_ms": 153,
"fcp_ms": 256,
"resources": 2
},
"a11y": {
@@ -389,14 +387,14 @@
"status": "PASS",
"http": 200,
"body_len": 2489,
"load_ms": 604
"load_ms": 591
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 75,
"loadEvent_ms": 98,
"fcp_ms": 128,
"domContentLoaded_ms": 66,
"loadEvent_ms": 85,
"fcp_ms": 120,
"resources": 2
},
"a11y": {
@@ -435,10 +433,10 @@
},
"perf": {
"status": "PASS",
"ttfb_ms": 48,
"domContentLoaded_ms": 61,
"loadEvent_ms": 61,
"fcp_ms": 88,
"ttfb_ms": 49,
"domContentLoaded_ms": 57,
"loadEvent_ms": 57,
"fcp_ms": 92,
"resources": 2
},
"a11y": {
@@ -459,7 +457,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -472,14 +470,14 @@
"status": "PASS",
"http": 200,
"body_len": 975,
"load_ms": 693
"load_ms": 698
},
"perf": {
"status": "PASS",
"ttfb_ms": 48,
"domContentLoaded_ms": 63,
"loadEvent_ms": 63,
"fcp_ms": 88,
"ttfb_ms": 49,
"domContentLoaded_ms": 71,
"loadEvent_ms": 71,
"fcp_ms": 92,
"resources": 2
},
"a11y": {
@@ -500,7 +498,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -513,14 +511,14 @@
"status": "PASS",
"http": 200,
"body_len": 706,
"load_ms": 690
"load_ms": 709
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 58,
"loadEvent_ms": 59,
"fcp_ms": 104,
"ttfb_ms": 51,
"domContentLoaded_ms": 70,
"loadEvent_ms": 71,
"fcp_ms": 108,
"resources": 2
},
"a11y": {
@@ -541,7 +539,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -558,9 +556,9 @@
},
"perf": {
"status": "PASS",
"ttfb_ms": 48,
"domContentLoaded_ms": 58,
"loadEvent_ms": 59,
"ttfb_ms": 50,
"domContentLoaded_ms": 67,
"loadEvent_ms": 68,
"fcp_ms": 100,
"resources": 2
},
@@ -582,7 +580,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -595,13 +593,13 @@
"status": "PASS",
"http": 200,
"body_len": 323,
"load_ms": 698
"load_ms": 699
},
"perf": {
"status": "PASS",
"ttfb_ms": 51,
"domContentLoaded_ms": 67,
"loadEvent_ms": 67,
"ttfb_ms": 49,
"domContentLoaded_ms": 63,
"loadEvent_ms": 63,
"fcp_ms": 104,
"resources": 2
},
@@ -623,7 +621,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -636,14 +634,14 @@
"status": "PASS",
"http": 200,
"body_len": 329,
"load_ms": 696
"load_ms": 701
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 61,
"loadEvent_ms": 62,
"fcp_ms": 84,
"ttfb_ms": 55,
"domContentLoaded_ms": 65,
"loadEvent_ms": 66,
"fcp_ms": 100,
"resources": 2
},
"a11y": {
@@ -664,7 +662,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -677,14 +675,14 @@
"status": "PASS",
"http": 200,
"body_len": 1916,
"load_ms": 696
"load_ms": 693
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 67,
"loadEvent_ms": 67,
"fcp_ms": 96,
"ttfb_ms": 48,
"domContentLoaded_ms": 59,
"loadEvent_ms": 61,
"fcp_ms": 100,
"resources": 2
},
"a11y": {
@@ -705,7 +703,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -718,14 +716,14 @@
"status": "PASS",
"http": 200,
"body_len": 1972,
"load_ms": 695
"load_ms": 698
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 67,
"loadEvent_ms": 67,
"fcp_ms": 112,
"ttfb_ms": 51,
"domContentLoaded_ms": 64,
"loadEvent_ms": 65,
"fcp_ms": 104,
"resources": 2
},
"a11y": {
@@ -746,7 +744,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -759,14 +757,14 @@
"status": "PASS",
"http": 200,
"body_len": 309,
"load_ms": 693
"load_ms": 705
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 60,
"loadEvent_ms": 61,
"fcp_ms": 88,
"loadEvent_ms": 60,
"fcp_ms": 76,
"resources": 2
},
"a11y": {
@@ -787,7 +785,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -800,14 +798,14 @@
"status": "PASS",
"http": 200,
"body_len": 3082,
"load_ms": 925
"load_ms": 915
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 196,
"loadEvent_ms": 430,
"fcp_ms": 240,
"ttfb_ms": 50,
"domContentLoaded_ms": 200,
"loadEvent_ms": 419,
"fcp_ms": 248,
"resources": 6
},
"a11y": {
@@ -841,14 +839,14 @@
"status": "PASS",
"http": 200,
"body_len": 2176,
"load_ms": 701
"load_ms": 706
},
"perf": {
"status": "PASS",
"ttfb_ms": 52,
"domContentLoaded_ms": 64,
"loadEvent_ms": 65,
"fcp_ms": 112,
"ttfb_ms": 51,
"domContentLoaded_ms": 88,
"loadEvent_ms": 88,
"fcp_ms": 128,
"resources": 2
},
"a11y": {
@@ -869,7 +867,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -882,13 +880,13 @@
"status": "PASS",
"http": 200,
"body_len": 537,
"load_ms": 5386
"load_ms": 4095
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 90,
"loadEvent_ms": 101,
"domContentLoaded_ms": 97,
"loadEvent_ms": 106,
"fcp_ms": 108,
"resources": 5
},
@@ -910,7 +908,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -923,14 +921,14 @@
"status": "PASS",
"http": 200,
"body_len": 2183,
"load_ms": 694
"load_ms": 697
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 64,
"loadEvent_ms": 64,
"fcp_ms": 104,
"ttfb_ms": 50,
"domContentLoaded_ms": 73,
"loadEvent_ms": 73,
"fcp_ms": 108,
"resources": 2
},
"a11y": {
@@ -951,7 +949,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 206,
"diff_pixels": 119,
"has_baseline": true
}
}
@@ -964,14 +962,14 @@
"status": "PASS",
"http": 200,
"body_len": 1447,
"load_ms": 563
"load_ms": 574
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 57,
"loadEvent_ms": 57,
"fcp_ms": 96,
"ttfb_ms": 55,
"domContentLoaded_ms": 67,
"loadEvent_ms": 67,
"fcp_ms": 100,
"resources": 1
},
"a11y": {
@@ -1005,13 +1003,13 @@
"status": "PASS",
"http": 200,
"body_len": 4283,
"load_ms": 705
"load_ms": 713
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 63,
"loadEvent_ms": 64,
"ttfb_ms": 51,
"domContentLoaded_ms": 65,
"loadEvent_ms": 66,
"fcp_ms": 108,
"resources": 3
},
@@ -1033,7 +1031,7 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 167,
"diff_pixels": 142,
"has_baseline": true
}
}
@@ -1046,14 +1044,14 @@
"status": "PASS",
"http": 200,
"body_len": 729,
"load_ms": 2240
"load_ms": 2392
},
"perf": {
"status": "PASS",
"ttfb_ms": 49,
"domContentLoaded_ms": 122,
"loadEvent_ms": 715,
"fcp_ms": 140,
"domContentLoaded_ms": 153,
"loadEvent_ms": 798,
"fcp_ms": 184,
"resources": 7
},
"a11y": {
@@ -1092,10 +1090,10 @@
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 69,
"loadEvent_ms": 76,
"fcp_ms": 96,
"ttfb_ms": 49,
"domContentLoaded_ms": 68,
"loadEvent_ms": 77,
"fcp_ms": 100,
"resources": 3
},
"a11y": {
@@ -1129,14 +1127,14 @@
"status": "PASS",
"http": 200,
"body_len": 5308,
"load_ms": 561
"load_ms": 572
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 58,
"loadEvent_ms": 58,
"fcp_ms": 80,
"ttfb_ms": 51,
"domContentLoaded_ms": 70,
"loadEvent_ms": 70,
"fcp_ms": 84,
"resources": 1
},
"a11y": {
@@ -1170,14 +1168,14 @@
"status": "PASS",
"http": 200,
"body_len": 589,
"load_ms": 560
"load_ms": 565
},
"perf": {
"status": "PASS",
"ttfb_ms": 48,
"domContentLoaded_ms": 59,
"loadEvent_ms": 59,
"fcp_ms": 92,
"ttfb_ms": 49,
"domContentLoaded_ms": 60,
"loadEvent_ms": 60,
"fcp_ms": 96,
"resources": 1
},
"a11y": {
@@ -1211,14 +1209,14 @@
"status": "PASS",
"http": 200,
"body_len": 19106,
"load_ms": 950
"load_ms": 705
},
"perf": {
"status": "PASS",
"ttfb_ms": 50,
"domContentLoaded_ms": 69,
"ttfb_ms": 52,
"domContentLoaded_ms": 63,
"loadEvent_ms": 69,
"fcp_ms": 104,
"fcp_ms": 100,
"resources": 3
},
"a11y": {
@@ -1239,24 +1237,23 @@
},
"visual": {
"status": "PASS",
"diff_pixels": 129,
"diff_pixels": 280,
"has_baseline": true
}
}
}
],
"video_size": 9798709,
"video_size": 9414326,
"summary": {
"pages_tested": 30,
"total_dimensions": 150,
"pass": 147,
"fail": 3,
"pass": 148,
"fail": 2,
"skip": 0,
"pass_rate_pct": 98,
"dpmo": 20000,
"pass_rate_pct": 98.67,
"dpmo": 13333,
"sigma_level": "3σ",
"failures": [
"wevia/js_errors",
"enterprise-complete-v73/visual",
"enterprise-model/visual"
]

View File

@@ -1,6 +1,6 @@
{
"version": "V76-SELENIUM-CHROME-HEADLESS",
"ts": "20260419_152242",
"ts": "20260419_152650",
"total": 31,
"pass": 31,
"fail": 0,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 KiB

After

Width:  |  Height:  |  Size: 301 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

After

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 KiB

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 251 KiB

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 KiB

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 KiB

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 296 KiB

View File

@@ -1,7 +1,7 @@
{
"ok": true,
"version": "V83-business-kpi",
"ts": "2026-04-19T13:25:13+00:00",
"ts": "2026-04-19T13:27:20+00:00",
"summary": {
"total_categories": 7,
"total_kpis": 56,

View File

@@ -1838,8 +1838,8 @@ function openArtifact(encodedCode, type) {
var code = decodeURIComponent(encodedCode);
var content = code;
if (type === "mermaid") {
content = '<!DOCTYPE html><html><head><script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.9.0/mermaid.min.js"><\/script><style>body{margin:20px;display:flex;align-items:center;justify-content:center;min-height:90vh;background:#fafafa;font-family:system-ui}</style></head><body>
<div class="mermaid">' + code.replace(/</g, "&lt;") + '</div><script>mermaid.initialize({startOnLoad:true,theme:"neutral"});<\/script><\/body></html>';
content = `<!DOCTYPE html><html><head><script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.9.0/mermaid.min.js"><\/script><style>body{margin:20px;display:flex;align-items:center;justify-content:center;min-height:90vh;background:#fafafa;font-family:system-ui}</style></head><body>
<div class="mermaid">' + code.replace(/</g, "&lt;") + '</div><script>mermaid.initialize({startOnLoad:true,theme:"neutral"});<\/script><\/body></html>`;
} else if (type === "svg") {
content = '<!DOCTYPE html><html><head><style>body{margin:0;display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f8f9fa;}</style></head><body>' + code + '<\/body></html>';
} else if (type === "html" && code.indexOf("<html") === -1) {