[object Object]

← back to Quadrille Showroom

walls-on-next: add Age-View-ON regression pass (paging under senior band still clads all 4 walls)

796c25f5e5f6ebb15ee79da79373e6b7e5d48818 · 2026-06-29 16:31:00 -0700 · Steve

Files touched

Diff

commit 796c25f5e5f6ebb15ee79da79373e6b7e5d48818
Author: Steve <steve@designerwallcoverings.com>
Date:   Mon Jun 29 16:31:00 2026 -0700

    walls-on-next: add Age-View-ON regression pass (paging under senior band still clads all 4 walls)
---
 5x/loop-ledger.md                |  1 +
 scripts/verify-walls-on-next.mjs | 23 ++++++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/5x/loop-ledger.md b/5x/loop-ledger.md
index 33f5f8f..09ecfd4 100644
--- a/5x/loop-ledger.md
+++ b/5x/loop-ledger.md
@@ -2,3 +2,4 @@
 
 - iter1 (2026-06-29): FPS gate FAIL root-caused — phase5 sampler caught the morph-rebuild transient window (band 65 min=54). Fixed sampler to discard the band-change-straddling counter window + dedup per distinct window + 1200ms settle; floor unchanged at 55. All bands now steady-state 67-74 min. All 4 verifiers GREEN.
 - iter2 (2026-06-29): Backlog (a) DONE — new scripts/verify-ageview-envmorph.mjs MEASURES real rendered wall-luminance for the setEnvForAge morph (was only asserted by intensity scalars). Drives age 35 vs 85 on real GPU, samples pure-plaster wall regions: senior is +6.56 luminance brighter (morph proven to change the render), lower-glare hot-pixel frac non-increasing, OFF restores exact baseline (Δ0.00, avatarAge 28). PASS.
+- iter3 (2026-06-29): Backlog (c) DONE — extended verify-walls-on-next.mjs with an Age-View-ON pass (senior band 75). Paging Next under Age View still clads all 4 walls, 0 console errors; locks the env+avatar-morph × wall-clad interaction as a regression guard. All 5 verifiers GREEN.
diff --git a/scripts/verify-walls-on-next.mjs b/scripts/verify-walls-on-next.mjs
index 657d51e..67cf19c 100644
--- a/scripts/verify-walls-on-next.mjs
+++ b/scripts/verify-walls-on-next.mjs
@@ -30,8 +30,29 @@ await p.screenshot({path:'recordings/phase5/walls-after.png'});
 // Prev once → still all 4 clad
 await p.evaluate(()=>window._qh.pageCenterBook(-1)); await p.waitForTimeout(1400);
 const pv=await snap(); rows.push(['prev 1',pv.idx,pv.sku,JSON.stringify(pv.clad),allClad(pv.clad)]); if(!allClad(pv.clad))pass=false;
+
+// ---- Age-View-ON pass: paging the book under Age View must STILL clad all 4 walls.
+// A demo user can be in Age View (senior band) when they hit Next/Prev; the env+
+// avatar morph must not break the wall-clad path. (Backlog (c) regression guard.)
+const ageviewPresent = await p.evaluate(()=>!!(window._ageview && window._ageview.apply));
+if (ageviewPresent) {
+  await p.evaluate(()=>{ window._ageview.setOn(true); window._ageview.apply(75); });
+  await p.waitForTimeout(1500);
+  for (let i=1;i<=2;i++){
+    await p.evaluate(()=>window._qh.pageCenterBook(1));
+    await p.waitForTimeout(1400);
+    const s=await snap();
+    const ok=allClad(s.clad);
+    rows.push([`AV next ${i}`,s.idx,s.sku,JSON.stringify(s.clad),ok]);
+    if(!ok) pass=false;
+  }
+  await p.evaluate(()=>window._ageview.setOn(false)); await p.waitForTimeout(800);
+} else {
+  rows.push(['AV skip','-','no _ageview','[]',false]); pass=false;
+}
+
 console.log('step      | idx | sku | cladSides | all4?');
 rows.forEach(r=>console.log(r[0].padEnd(9),'|',String(r[1]).padEnd(3),'|',String(r[2]||'-').padEnd(14),'|',r[3].padEnd(34),'|',r[4]?'YES':'NO'));
 console.log('console errors:',errs.length, errs.slice(0,5).join(' | '));
-console.log('OVERALL:', pass&&errs.length===0?'✅ PASS — Next clads all 4 walls':'❌ FAIL');
+console.log('OVERALL:', pass&&errs.length===0?'✅ PASS — Next clads all 4 walls (Age View OFF + ON)':'❌ FAIL');
 await b.close(); process.exit(pass&&errs.length===0?0:1);

← 71784da Add measured env-morph verifier: asserts real rendered wall-  ·  back to Quadrille Showroom  ·  Age View bar legibility: fix invisible readout text on light 67caf4d →