Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Full E2E success on leadforge.html: Pipeline: 1. Playwright screenshot 58KB before.png 2. Gemini 2.5 Flash vision analysis avec prompt concis + maxTokens 16000 3. Parser Python separe wgux-parse.py extract JSON robuste 4. Apply python wgux-apply.py + GOLD backup + chattr + marker DOCTRINE-201 Handler v2 corrections vs v1: - Prompt concis (pas wevia brand details qui bouffent tokens) - maxTokens 6000 -> 16000 - responseMimeType application/json (STOP clean au lieu de MAX_TOKENS) - Scripts Python separes (pas inline heredoc bash) - Fichiers: wgux-build-payload.py wgux-parse.py wgux-apply.py Resultats leadforge: - plan.json 9978B ok:true finishReason:STOP safe:true - CSS 9424 chars avec tokens premium: * root vars --wtp-bg --wtp-card --wtp-primary --wtp-accent --wtp-secondary-text * .wtp-hero-premium radial-gradient + keyframes hero-gradient-pulse * .wtp-kpi-card hover transform translateY(-8px) * Media query mobile 768px bot-widget bottom 100px anti-overlap * Palette extraite image #ff4d6a rouge detecte - leadforge.html 40588 -> 52279 (+11.7KB CSS premium) - GOLD backup vault-gold/opus/leadforge.html.doctrine201-apply-20260424-171752.bak - HTTP 200 OK apres apply - Playwright overlap audit: tr:0 br:0 ZERO REGRESSION - Screenshot after.png 73KB (vs before 58KB = plus de contenu rendu) - Marker DOCTRINE-201-GEMINI-APPLY present idempotent Artefacts: - /var/www/html/api/wevia-gemini-ux-apply.sh (v2 2KB orchestrator) - /var/www/html/api/wgux-build-payload.py - /var/www/html/api/wgux-parse.py - /var/www/html/api/wgux-apply.py - /var/www/html/api/after-shot.js (verify module) - /var/www/html/api/after-audit.js (overlap verify module) - /var/www/html/products/leadforge.html patche Cumul: - 57 tags Opus - 40 doctrines (146-201) - 428 pages UX doctrine 60 - 1 page avec CSS Gemini appliquee (leadforge PROOF OF CONCEPT) - NR 153/153 invariant 59 phases WEVIA peut maintenant faire vraiment du UX premium autonome via chat NL.
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
const { chromium } = require("playwright");
|
|
(async () => {
|
|
const browser = await chromium.launch({ headless: true, args: ["--no-sandbox","--disable-gpu","--disable-dev-shm-usage"] });
|
|
const ctx = await browser.newContext({ viewport: { width: 1440, height: 900 } });
|
|
const pg = await ctx.newPage();
|
|
await pg.goto("https://weval-consulting.com/products/leadforge.html", { waitUntil: "domcontentloaded", timeout: 20000 });
|
|
await pg.waitForTimeout(3500);
|
|
const res = await pg.evaluate(() => {
|
|
const fn = (x1,y1,x2,y2) => {
|
|
const all = document.querySelectorAll("button,.btn,.toggle,.tab,[class*=btn],.chip,.badge,.fab");
|
|
let n = 0;
|
|
for (const el of all) {
|
|
const r = el.getBoundingClientRect();
|
|
if (r.width<2 || r.height<2) continue;
|
|
const pos = getComputedStyle(el).position;
|
|
if (pos !== "fixed" && pos !== "absolute") continue;
|
|
const cx=r.x+r.width/2, cy=r.y+r.height/2;
|
|
if (cx>=x1 && cx<=x2 && cy>=y1 && cy<=y2) n++;
|
|
}
|
|
return n;
|
|
};
|
|
return { tr: fn(1040,0,1440,400), br: fn(1040,500,1440,900) };
|
|
});
|
|
console.log(JSON.stringify(res));
|
|
await browser.close();
|
|
})();
|