$ pnpm wiki:test # cwd /Users/king/Desktop/Workspace/SRO/zoen # exit 1 > zoen@0.1.0 wiki:test /Users/king/Desktop/Workspace/SRO/zoen > pnpm --filter @zoen/wiki build && pnpm --filter @zoen/wiki exec playwright test > @zoen/wiki@0.1.0 build /Users/king/Desktop/Workspace/SRO/zoen/apps/wiki > node ../../tools/audio/sync-wiki-previews.mjs && next build audio previews: 366 files copied for delivered takes ▲ Next.js 16.3.8 (Turbopack) ✓ Running next.config.ts took 14ms Creating an optimized production build ... ✓ Compiled successfully in 806ms Running TypeScript ... Finished TypeScript in 5.4s ... Collecting page data using 7 workers ... Generating static pages using 7 workers (0/730) ... Generating static pages using 7 workers (182/730) Generating static pages using 7 workers (364/730) Generating static pages using 7 workers (547/730) ✓ Generating static pages using 7 workers (730/730) in 1762ms Finalizing page optimization ... Route (app) ┌ ○ / ├ ○ /_not-found ├ /[...slug] │ ├ ● /vision │ ├ ● /decisions │ ├ ● /setup │ └ ● [+35 more paths] ├ ○ /apple-icon.png ├ ○ /art-requests ├ ○ /audio-requests ├ ○ /bestiary ├ ○ /builds ├ /builds/[id] │ ├ ● /builds/ravager │ ├ ● /builds/warblade │ ├ ● /builds/earthshaker │ └ ● [+15 more paths] ├ ○ /components ├ ○ /data ├ /data/[file] │ ├ ● /data/art-delivered.json │ ├ ● /data/art-library.json │ ├ ● /data/art-requests.json │ └ ● [+34 more paths] ├ ○ /glossary ├ ○ /icon.png ├ ○ /items ├ ○ /kickoff ├ ○ /ledger ├ /logs/[file] │ ├ ● /logs/ART-FIX-20261004-01-01.log │ ├ ● /logs/ART-FIX-20261004-01-02.log │ ├ ● /logs/ART-FIX-20261004-02-01.log │ └ ● [+612 more paths] ├ ○ /quests ├ ○ /search-index.json ├ ○ /showcase ├ ○ /showcase/capture ├ ○ /skills/atlas ├ ○ /skills/codex └ ○ /windows ○ (Static) prerendered as static content ● (SSG) prerendered as static HTML (uses generateStaticParams) Running 336 tests using 1 worker ✓ 1 [desktop] › tests/art.spec.ts:3:1 › art generation page: master prompt first, queued assets without prompts, done history closed (447ms) ✓ 2 [desktop] › tests/art.spec.ts:20:1 › audio generation: free/legal sources, no-ripping rule, prompts and playable done takes (1.9s) ✓ 3 [desktop] › tests/atlas.spec.ts:58:3 › Passive Atlas › renders the full tree without console errors (980ms) desktop drag { frames: 161, frameP50: 16.699999999999818, frameP95: 16.799999999999727, drawP50: 0.10000002384185791, drawP95: 0.20000004768371582, draws: 162, longTasks: 0 } ✓ 4 [desktop] › tests/atlas.spec.ts:69:3 › Passive Atlas › drag is smooth on desktop (p95 frame ≤ 20 ms, draw p95 ≤ 6 ms, no long tasks) (3.8s) 4x throttled drag { frames: 176, frameP50: 16.699999999999818, frameP95: 16.700000000000273, drawP50: 0.5, drawP95: 1.100000023841858, draws: 162, longTasks: 0 } ✓ 5 [desktop] › tests/atlas.spec.ts:85:3 › Passive Atlas › drag stays within the mid-phone budget at 4× CPU throttle (p95 frame ≤ 34 ms, draw p95 ≤ 16 ms) (4.2s) ✓ 6 [desktop] › tests/atlas.spec.ts:102:3 › Passive Atlas › hover shows the game popup with cost; click allocates the path; removing a mid-path node removes its dependents; undo/redo; share URL restores (1.4s) ✓ 7 [desktop] › tests/atlas.spec.ts:146:3 › Passive Atlas › example build plan reaches the mastery within budget; wheel zoom works (2.0s) - 8 [desktop] › tests/atlas.spec.ts:176:3 › Passive Atlas › touch: tap selects, panel allocates; one-finger pan and two-finger pinch move the camera ✓ 9 [desktop] › tests/atlas.spec.ts:208:1 › disabled look: unallocated node frames use dimmed variants; sector tint stays subtle (2.0s) - 10 [desktop] › tests/capture.spec.ts:13:3 › capture chain - 11 [desktop] › tests/capture.spec.ts:13:3 › capture reactions - 12 [desktop] › tests/capture.spec.ts:13:3 › capture heavy - 13 [desktop] › tests/capture.spec.ts:13:3 › capture finisher - 14 [desktop] › tests/capture.spec.ts:13:3 › capture mobility - 15 [desktop] › tests/capture.spec.ts:13:3 › capture compare - 16 [desktop] › tests/capture.spec.ts:13:3 › capture ultra ✓ 17 [desktop] › tests/components.spec.ts:9:1 › components page shows all 11 popup header families (397ms) ✓ 18 [desktop] › tests/components.spec.ts:17:1 › button variants are all artwork, disabled uses the disabled sprite (364ms) ✓ 19 [desktop] › tests/components.spec.ts:26:1 › dropdown: glass menu, keyboard selection, closes on pick (656ms) ✓ 20 [desktop] › tests/components.spec.ts:41:1 › modal opens over a scrim and closes (352ms) ✓ 21 [desktop] › tests/components.spec.ts:50:1 › window headers: plain windows keep the rail (ring only with a close button); custom windows carry the crest (446ms) ✓ 22 [desktop] › tests/components.spec.ts:68:1 › popups: glass behind the header, ornamental dividers, placeholder art, gems fill their sockets (301ms) ✓ 23 [desktop] › tests/components.spec.ts:80:1 › header menu button collapses the sidebar on desktop and opens the drawer on mobile (283ms) ✓ 24 [desktop] › tests/components.spec.ts:95:1 › controls are code-drawn (no forced sprites); dropdown list = glass + corner art only; toasts have tones (410ms) ✓ 25 [desktop] › tests/components.spec.ts:116:1 › round 5 kit: gold plaque button, one-row tabs with gold underline + badges, single-rim fields, gem slider, crown tag (528ms) ✓ 26 [desktop] › tests/components.spec.ts:158:1 › no native select anywhere on pages that filter or pick (905ms) ✓ 27 [desktop] › tests/components.spec.ts:166:1 › Zoe coin: the sun coin shows on the premium button and in the inventory purse (398ms) ✓ 28 [desktop] › tests/components.spec.ts:175:1 › round 7: gold button has its own end caps, tabs sit on the content, close hover is the same button, rail is one material (310ms) ✓ 29 [desktop] › tests/feel-chain.spec.ts:10:1 › Mouse1 chain runs the Warblade build slots in order, finisher on a launched target (2.0s) ✓ 30 [desktop] › tests/feel-chain.spec.ts:27:1 › camera zooms from tactical to close third-person; Mouse1 on empty ground walks there (4.4s) ultra {"debris":32,"decals":1,"rings":1,"glints":1,"shockwaves":1,"impactFrames":1,"chromaPeak":70,"haptics":3,"deaths":0} low {"debris":0,"decals":0,"rings":0,"glints":0,"shockwaves":0,"impactFrames":0,"chromaPeak":0,"haptics":3,"deaths":0} ✓ 31 [desktop] › tests/feel-quality.spec.ts:15:1 › Ultra fires every feel layer on Sunbreaker; Low fires none; outcomes identical (2.5s) ✓ 32 [desktop] › tests/feel-quality.spec.ts:60:1 › quality switch in the Feel Lab persists; rumble calls the Vibration API with the data patterns (6.0s) frames {"high":{"frames":239,"p50":16.7,"p95":16.8},"ultra":{"frames":239,"p50":16.7,"p95":16.8}} ✓ 33 [desktop] › tests/feel-quality.spec.ts:95:1 › Ultra stays playable: frame p95 while Sunbreaker plays (desktop) (9.3s) mean luminance 87.02583394097161 ✓ 34 [desktop] › tests/feel-smoke.spec.ts:9:1 › Feel Lab renders a lit scene and runs a scripted demo without errors (1.6s) ✓ 35 [desktop] › tests/inventory.spec.ts:37:3 › inventory window (drag & drop) › valid drop equips and swaps; invalid slot or unmet requirement turns red and is refused (2.3s) ✓ 36 [desktop] › tests/inventory.spec.ts:79:3 › inventory round 5: fitted art, quick slots, sockets › weapon art stands upright and fills its 2×3 slot; belt fills its 2×1; helmet and boots fill theirs (396ms) ✓ 37 [desktop] › tests/inventory.spec.ts:90:3 › inventory round 5: fitted art, quick slots, sockets › quick slots 1–8 accept potions and scrolls only (drag), and swap (1.3s) ✓ 38 [desktop] › tests/inventory.spec.ts:105:3 › inventory round 5: fitted art, quick slots, sockets › sockets: hover shows them, clicking a gem picks it up and holds it (placing it in the bag takes it out; Esc keeps it in), dragging a gem in follows the group rules (2.5s) ✓ 39 [desktop] › tests/inventory.spec.ts:151:3 › inventory round 7: footer, sockets, main-gem rule › gold + Zoe containers and the character line sit under the grid; no help text; the grid is never cut (373ms) ✓ 40 [desktop] › tests/inventory.spec.ts:167:3 › inventory round 7: footer, sockets, main-gem rule › sockets never overlap, use the circle art and do not scale on hover (552ms) ✓ 41 [desktop] › tests/inventory.spec.ts:188:3 › inventory round 7: footer, sockets, main-gem rule › exactly one main gem per item: a second main is refused, a gem can be dragged out of a socket and back (1.4s) ✓ 42 [desktop] › tests/inventory.spec.ts:210:3 › inventory round 7: footer, sockets, main-gem rule › the drag ghost keeps the size of the equipped art (481ms) ✓ 43 [desktop] › tests/inventory.spec.ts:223:1 › inventory window fits the page on every device (499ms) ✓ 44 [desktop] › tests/inventory.spec.ts:230:1 › grid look: tile sprite grid, usable/unusable tiles (not rarity), cosmetics tab right + disabled, backdrop (517ms) - 45 [desktop] › tests/mobile.spec.ts:11:1 › phone type scale is compact and no page scrolls sideways - 46 [desktop] › tests/mobile.spec.ts:27:1 › phone tabs stay on one swipeable row; the last tab is reachable - 47 [desktop] › tests/mobile.spec.ts:40:1 › phone topbar: wide search, drawer with 40 px tap targets ✓ 48 [desktop] › tests/mobile.spec.ts:57:1 › header and sidebar stay fixed while the page scrolls (702ms) - 49 [desktop] › tests/overflow.spec.ts:11:1 › no element sticks out past a 360 px phone screen on any page ✓ 50 [desktop] › tests/popup.spec.ts:25:1 › item popup: rarity header art, glass body, bronze corners; Alt reveals affix tiers (933ms) ✓ 51 [desktop] › tests/popup.spec.ts:47:1 › every popup family uses its own header: orb/consumable/material → currency, gem → gem, mount/pet → monster (741ms) ✓ 52 [desktop] › tests/popup.spec.ts:60:1 › skill popups: technique header for attacks, combination header + condition for finishers (501ms) ✓ 53 [desktop] › tests/popup.spec.ts:69:1 › tabs cut scrolling: bestiary shows one level band at a time (329ms) ✓ 54 [desktop] › tests/popup.spec.ts:77:1 › buttons use the 34 px art inside a 44 px target; every page has prev/next (555ms) ✓ 55 [desktop] › tests/popup.spec.ts:89:1 › no horizontal page scroll on the item catalog (515ms) ✓ 56 [desktop] › tests/popup.spec.ts:96:1 › popup standard: 320 px, one-line titles, gold dividers only around the modifiers (max 2), never two in a row (706ms) ✓ 57 [desktop] › tests/popup.spec.ts:122:1 › item names in prose are rarity-coloured hover links (never inside headings or code); economy showcase (625ms) ✓ 58 [desktop] › tests/popup.spec.ts:138:1 › orbs are coloured by rarity and gems by socket colour (popup title, well frame, catalog caption) (598ms) ✓ 59 [desktop] › tests/round8.spec.ts:14:3 › round 8: inventory window › 620 px wide, no outer padding, inner panel 12 / 8 / 8; weapons are 2×3 slots inset from the edges; tabs inset; slimmer gold + Zoe boxes (789ms) ✘ 60 [desktop] › tests/round8.spec.ts:43:3 › round 8: inventory window › pressing an equipped item scales it down a little; equipping plays a small settle (scale-down) on the slot (392ms) ✓ 61 [desktop] › tests/round8.spec.ts:61:1 › tab strips of the tight windows have artwork behind them; a socketed gem shows the open hand (562ms) ✓ 62 [desktop] › tests/round8.spec.ts:71:3 › round 8: character window › 620 px wide, same padding; portrait at the top with the level medallion; no medallion on the EXP bar; framed skill bar on painted ground; framed stat body (641ms) ✓ 63 [desktop] › tests/round8.spec.ts:106:3 › round 8: character window › crest title sits 3 px lower than before (331ms) ✓ 64 [desktop] › tests/round8.spec.ts:117:3 › round 8: map and social › map: smaller circles; the pin tip is exactly on the centre of the current circle (586ms) ✓ 65 [desktop] › tests/round8.spec.ts:134:3 › round 8: map and social › social: every HP bar has the same width and is framed art, not a plain box (490ms) ✘ 66 [desktop] › tests/round8.spec.ts:147:1 › orb / gem / consumable popups use a smaller art slot; socket rings are smaller (393ms) ✓ 67 [desktop] › tests/round8.spec.ts:155:1 › items: the equipment tab sits on a framed painted stage; a socketed gem shows the open hand (836ms) ✓ 68 [desktop] › tests/round8.spec.ts:170:3 › round 8: kit and pages › gold button: hover lights the whole button (no glow layer painted over the art) (314ms) ✓ 69 [desktop] › tests/round8.spec.ts:180:3 › round 8: kit and pages › plain window headers are transparent: the panel fill starts under the rail (349ms) ✓ 70 [desktop] › tests/round8.spec.ts:190:3 › round 8: kit and pages › page headers: the header rail sits on top and the framed body starts under it (Item catalog, Online, social & events) (498ms) ✓ 71 [desktop] › tests/round8.spec.ts:207:3 › round 8: kit and pages › economy: the rarity showcase uses the real item popup (370ms) ✓ 72 [desktop] › tests/round8.spec.ts:223:3 › round 8: kit and pages › HUD mock is built from the delivered ART-HUD sprites, not placeholder boxes (716ms) ✓ 73 [desktop] › tests/showcase.spec.ts:3:1 › showcase lists seven playable clips (incl. the finisher and the Ultra tier) and the live Feel Lab boots (966ms) ✓ 74 [desktop] › tests/site.spec.ts:26:1 › static export has every expected route (6ms) ✓ 75 [desktop] › tests/site.spec.ts:32:1 › no broken internal links or missing assets in the built HTML (68ms) ✓ 76 [desktop] › tests/site.spec.ts:48:3 › renders / (987ms) ✓ 77 [desktop] › tests/site.spec.ts:48:3 › renders /404/ (224ms) ✓ 78 [desktop] › tests/site.spec.ts:48:3 › renders /_not-found/ (195ms) ✓ 79 [desktop] › tests/site.spec.ts:48:3 › renders /alpha/ (235ms) ✓ 80 [desktop] › tests/site.spec.ts:48:3 › renders /art-requests/ (959ms) ✓ 81 [desktop] › tests/site.spec.ts:48:3 › renders /audio-requests/ (457ms) ✓ 82 [desktop] › tests/site.spec.ts:48:3 › renders /automation/ (247ms) ✓ 83 [desktop] › tests/site.spec.ts:48:3 › renders /bestiary/ (241ms) ✓ 84 [desktop] › tests/site.spec.ts:48:3 › renders /builds/ (239ms) ✓ 85 [desktop] › tests/site.spec.ts:48:3 › renders /builds/ashwarden/ (223ms) ✓ 86 [desktop] › tests/site.spec.ts:48:3 › renders /builds/boltwright/ (221ms) ✓ 87 [desktop] › tests/site.spec.ts:48:3 › renders /builds/earthshaker/ (218ms) ✓ 88 [desktop] › tests/site.spec.ts:48:3 › renders /builds/frostweaver/ (267ms) ✓ 89 [desktop] › tests/site.spec.ts:48:3 › renders /builds/lanternbinder/ (322ms) ✓ 90 [desktop] › tests/site.spec.ts:48:3 › renders /builds/nightblade/ (257ms) ✓ 91 [desktop] › tests/site.spec.ts:48:3 › renders /builds/oathkeeper/ (276ms) ✓ 92 [desktop] › tests/site.spec.ts:48:3 › renders /builds/pyromancer/ (248ms) ✓ 93 [desktop] › tests/site.spec.ts:48:3 › renders /builds/ravager/ (247ms) ✓ 94 [desktop] › tests/site.spec.ts:48:3 › renders /builds/ringdancer/ (240ms) ✓ 95 [desktop] › tests/site.spec.ts:48:3 › renders /builds/songweaver/ (256ms) ✓ 96 [desktop] › tests/site.spec.ts:48:3 › renders /builds/stormcaller/ (275ms) ✓ 97 [desktop] › tests/site.spec.ts:48:3 › renders /builds/talon/ (256ms) ✓ 98 [desktop] › tests/site.spec.ts:48:3 › renders /builds/twinblade/ (264ms) ✓ 99 [desktop] › tests/site.spec.ts:48:3 › renders /builds/vanguard/ (289ms) ✓ 100 [desktop] › tests/site.spec.ts:48:3 › renders /builds/warblade/ (994ms) ✓ 101 [desktop] › tests/site.spec.ts:48:3 › renders /builds/windarcher/ (244ms) ✓ 102 [desktop] › tests/site.spec.ts:48:3 › renders /builds/windmender/ (257ms) ✓ 103 [desktop] › tests/site.spec.ts:48:3 › renders /combat/ (991ms) ✓ 104 [desktop] › tests/site.spec.ts:48:3 › renders /components/ (303ms) ✓ 105 [desktop] › tests/site.spec.ts:48:3 › renders /data/ (225ms) ✓ 106 [desktop] › tests/site.spec.ts:48:3 › renders /decisions/ (270ms) ✓ 107 [desktop] › tests/site.spec.ts:48:3 › renders /docs-index/ (273ms) ✓ 108 [desktop] › tests/site.spec.ts:48:3 › renders /economy/ (290ms) ✓ 109 [desktop] › tests/site.spec.ts:48:3 › renders /glossary/ (280ms) ✓ 110 [desktop] › tests/site.spec.ts:48:3 › renders /hud/ (1.0s) ✓ 111 [desktop] › tests/site.spec.ts:48:3 › renders /items/ (308ms) ✓ 112 [desktop] › tests/site.spec.ts:48:3 › renders /kickoff/ (291ms) ✓ 113 [desktop] › tests/site.spec.ts:48:3 › renders /ledger/ (1.1s) ✓ 114 [desktop] › tests/site.spec.ts:48:3 › renders /leveling/ (312ms) ✓ 115 [desktop] › tests/site.spec.ts:48:3 › renders /licenses/ (281ms) ✓ 116 [desktop] › tests/site.spec.ts:48:3 › renders /online/ (298ms) ✓ 117 [desktop] › tests/site.spec.ts:48:3 › renders /process/ (285ms) ✓ 118 [desktop] › tests/site.spec.ts:48:3 › renders /process/task-template/ (272ms) ✓ 119 [desktop] › tests/site.spec.ts:48:3 › renders /process/testing/ (279ms) ✓ 120 [desktop] › tests/site.spec.ts:48:3 › renders /production/animation/ (276ms) ✓ 121 [desktop] › tests/site.spec.ts:48:3 › renders /production/art-pipeline/ (310ms) ✓ 122 [desktop] › tests/site.spec.ts:48:3 › renders /production/audio/ (297ms) ✓ 123 [desktop] › tests/site.spec.ts:48:3 › renders /production/characters/ (291ms) ✓ 124 [desktop] › tests/site.spec.ts:48:3 › renders /production/environment/ (321ms) ✓ 125 [desktop] › tests/site.spec.ts:48:3 › renders /production/gm-room/ (444ms) ✓ 126 [desktop] › tests/site.spec.ts:48:3 › renders /production/local-sfx/ (315ms) ✓ 127 [desktop] › tests/site.spec.ts:48:3 › renders /production/npcs-monsters/ (298ms) ✓ 128 [desktop] › tests/site.spec.ts:48:3 › renders /production/skill-gate/ (301ms) ✓ 129 [desktop] › tests/site.spec.ts:48:3 › renders /production/tripo/ (331ms) ✓ 130 [desktop] › tests/site.spec.ts:48:3 › renders /production/vfx/ (349ms) ✓ 131 [desktop] › tests/site.spec.ts:48:3 › renders /public-site/ (385ms) ✓ 132 [desktop] › tests/site.spec.ts:48:3 › renders /quests/ (1.0s) ✓ 133 [desktop] › tests/site.spec.ts:48:3 › renders /roadmap/ (268ms) ✓ 134 [desktop] › tests/site.spec.ts:48:3 › renders /setup/ (295ms) ✓ 135 [desktop] › tests/site.spec.ts:48:3 › renders /showcase/ (3.0s) ✓ 136 [desktop] › tests/site.spec.ts:48:3 › renders /skills/ (253ms) ✓ 137 [desktop] › tests/site.spec.ts:48:3 › renders /skills/atlas/ (1.0s) ✓ 138 [desktop] › tests/site.spec.ts:48:3 › renders /skills/codex/ (383ms) ✓ 139 [desktop] › tests/site.spec.ts:48:3 › renders /tech/accounts/ (303ms) ✓ 140 [desktop] › tests/site.spec.ts:48:3 › renders /tech/architecture/ (307ms) ✓ 141 [desktop] › tests/site.spec.ts:48:3 › renders /tech/engine/ (335ms) ✓ 142 [desktop] › tests/site.spec.ts:48:3 › renders /tech/netcode/ (429ms) ✓ 143 [desktop] › tests/site.spec.ts:48:3 › renders /tech/patching/ (394ms) ✓ 144 [desktop] › tests/site.spec.ts:48:3 › renders /tech/performance/ (397ms) ✓ 145 [desktop] › tests/site.spec.ts:48:3 › renders /tech/security/ (364ms) ✓ 146 [desktop] › tests/site.spec.ts:48:3 › renders /tech/unity/ (418ms) ✓ 147 [desktop] › tests/site.spec.ts:48:3 › renders /vision/ (374ms) ✓ 148 [desktop] › tests/site.spec.ts:48:3 › renders /windows/ (527ms) ✓ 149 [desktop] › tests/site.spec.ts:48:3 › renders /world/ (1.2s) ✓ 150 [desktop] › tests/site.spec.ts:66:1 › skill codex shows a styled description for every skill (507ms) ✓ 151 [desktop] › tests/site.spec.ts:77:1 › click-to-travel preview: route + auto-mount, travel, unreachable point (6.5s) ✓ 152 [desktop] › tests/site.spec.ts:101:1 › glossary: every term links to an existing page and section (24ms) ✓ 153 [desktop] › tests/site.spec.ts:114:1 › glossary: search, click-through to the screen, boss popup (846ms) ✓ 154 [desktop] › tests/site.spec.ts:134:1 › bestiary art is shown whole (contain, no frame, no crop) (278ms) ✓ 155 [desktop] › tests/site.spec.ts:143:1 › team position events: comparison + one tab per proposal with positions; version in the sidebar (353ms) ✓ 156 [desktop] › tests/site.spec.ts:152:1 › cosmetic side quests: costume, weapon-effect and aura questlines with boss-only steps (274ms) ✓ 157 [desktop] › tests/site.spec.ts:162:1 › GM room: 18 preset builds with a 45-point Atlas link and hoverable gear; item forge previews a custom item (715ms) ✓ 158 [desktop] › tests/site.spec.ts:184:1 › logos are sharp: the browser picks a cut close to the rendered size (no upscaling, little downscaling) (292ms) ✓ 159 [desktop] › tests/site.spec.ts:199:1 › mounts are showcased with their artwork (no hover needed) and companions too (367ms) ✓ 160 [desktop] › tests/site.spec.ts:212:1 › items: orbs/gems economy pages mention random drop quantities and the Caravan Market (297ms) ✓ 161 [desktop] › tests/windows.spec.ts:10:1 › character window: crest on the inner border, close top-right, resize grip, 8 chain slots + Q–C (592ms) ✓ 162 [desktop] › tests/windows.spec.ts:28:1 › inventory window: 11 equipment slots, 8 quick slots, 12×5 bag (shared drag-and-drop window) (800ms) ✓ 163 [desktop] › tests/windows.spec.ts:39:1 › options window: one vertical scroll (no tabs); dropdown menus are portals and are never clipped (1.5s) ✓ 164 [desktop] › tests/windows.spec.ts:61:1 › mobile mockups and references fit without page scroll; concept queue listed without prompts (1.8s) ✓ 165 [desktop] › tests/windows.spec.ts:75:1 › loading screen mock: key art, plaque, rail progress bar that advances, tip and version (1.8s) ✓ 166 [desktop] › tests/windows.spec.ts:88:1 › round 7 windows: crest title is gold with dark text; Character has the level medallion + rail EXP bar; map has art markers, road and the player pin (480ms) ✓ 167 [desktop] › tests/windows.spec.ts:110:1 › loading bar: the gold fill runs end to end (no gutter) between the rail ornaments (564ms) ✓ 168 [desktop] › tests/windows.spec.ts:125:1 › options: dropdown menu opens near the bottom without being clipped (flips up) (704ms) ✓ 169 [mobile] › tests/art.spec.ts:3:1 › art generation page: master prompt first, queued assets without prompts, done history closed (628ms) ✓ 170 [mobile] › tests/art.spec.ts:20:1 › audio generation: free/legal sources, no-ripping rule, prompts and playable done takes (2.7s) ✓ 171 [mobile] › tests/atlas.spec.ts:58:3 › Passive Atlas › renders the full tree without console errors (1.4s) - 172 [mobile] › tests/atlas.spec.ts:69:3 › Passive Atlas › drag is smooth on desktop (p95 frame ≤ 20 ms, draw p95 ≤ 6 ms, no long tasks) - 173 [mobile] › tests/atlas.spec.ts:85:3 › Passive Atlas › drag stays within the mid-phone budget at 4× CPU throttle (p95 frame ≤ 34 ms, draw p95 ≤ 16 ms) - 174 [mobile] › tests/atlas.spec.ts:102:3 › Passive Atlas › hover shows the game popup with cost; click allocates the path; removing a mid-path node removes its dependents; undo/redo; share URL restores - 175 [mobile] › tests/atlas.spec.ts:146:3 › Passive Atlas › example build plan reaches the mastery within budget; wheel zoom works ✓ 176 [mobile] › tests/atlas.spec.ts:176:3 › Passive Atlas › touch: tap selects, panel allocates; one-finger pan and two-finger pinch move the camera (2.3s) - 177 [mobile] › tests/atlas.spec.ts:208:1 › disabled look: unallocated node frames use dimmed variants; sector tint stays subtle - 178 [mobile] › tests/capture.spec.ts:13:3 › capture chain - 179 [mobile] › tests/capture.spec.ts:13:3 › capture reactions - 180 [mobile] › tests/capture.spec.ts:13:3 › capture heavy - 181 [mobile] › tests/capture.spec.ts:13:3 › capture finisher - 182 [mobile] › tests/capture.spec.ts:13:3 › capture mobility - 183 [mobile] › tests/capture.spec.ts:13:3 › capture compare - 184 [mobile] › tests/capture.spec.ts:13:3 › capture ultra ✓ 185 [mobile] › tests/components.spec.ts:9:1 › components page shows all 11 popup header families (971ms) ✓ 186 [mobile] › tests/components.spec.ts:17:1 › button variants are all artwork, disabled uses the disabled sprite (913ms) ✓ 187 [mobile] › tests/components.spec.ts:26:1 › dropdown: glass menu, keyboard selection, closes on pick (1.1s) ✓ 188 [mobile] › tests/components.spec.ts:41:1 › modal opens over a scrim and closes (864ms) ✓ 189 [mobile] › tests/components.spec.ts:50:1 › window headers: plain windows keep the rail (ring only with a close button); custom windows carry the crest (736ms) ✓ 190 [mobile] › tests/components.spec.ts:68:1 › popups: glass behind the header, ornamental dividers, placeholder art, gems fill their sockets (606ms) ✓ 191 [mobile] › tests/components.spec.ts:80:1 › header menu button collapses the sidebar on desktop and opens the drawer on mobile (576ms) ✓ 192 [mobile] › tests/components.spec.ts:95:1 › controls are code-drawn (no forced sprites); dropdown list = glass + corner art only; toasts have tones (787ms) ✓ 193 [mobile] › tests/components.spec.ts:116:1 › round 5 kit: gold plaque button, one-row tabs with gold underline + badges, single-rim fields, gem slider, crown tag (977ms) ✓ 194 [mobile] › tests/components.spec.ts:158:1 › no native select anywhere on pages that filter or pick (1.6s) ✓ 195 [mobile] › tests/components.spec.ts:166:1 › Zoe coin: the sun coin shows on the premium button and in the inventory purse (976ms) ✓ 196 [mobile] › tests/components.spec.ts:175:1 › round 7: gold button has its own end caps, tabs sit on the content, close hover is the same button, rail is one material (805ms) - 197 [mobile] › tests/feel-chain.spec.ts:10:1 › Mouse1 chain runs the Warblade build slots in order, finisher on a launched target - 198 [mobile] › tests/feel-chain.spec.ts:27:1 › camera zooms from tactical to close third-person; Mouse1 on empty ground walks there - 199 [mobile] › tests/feel-quality.spec.ts:15:1 › Ultra fires every feel layer on Sunbreaker; Low fires none; outcomes identical - 200 [mobile] › tests/feel-quality.spec.ts:60:1 › quality switch in the Feel Lab persists; rumble calls the Vibration API with the data patterns - 201 [mobile] › tests/feel-quality.spec.ts:95:1 › Ultra stays playable: frame p95 while Sunbreaker plays (desktop) - 202 [mobile] › tests/feel-smoke.spec.ts:9:1 › Feel Lab renders a lit scene and runs a scripted demo without errors - 203 [mobile] › tests/inventory.spec.ts:37:3 › inventory window (drag & drop) › valid drop equips and swaps; invalid slot or unmet requirement turns red and is refused ✓ 204 [mobile] › tests/inventory.spec.ts:79:3 › inventory round 5: fitted art, quick slots, sockets › weapon art stands upright and fills its 2×3 slot; belt fills its 2×1; helmet and boots fill theirs (773ms) - 205 [mobile] › tests/inventory.spec.ts:90:3 › inventory round 5: fitted art, quick slots, sockets › quick slots 1–8 accept potions and scrolls only (drag), and swap - 206 [mobile] › tests/inventory.spec.ts:105:3 › inventory round 5: fitted art, quick slots, sockets › sockets: hover shows them, clicking a gem picks it up and holds it (placing it in the bag takes it out; Esc keeps it in), dragging a gem in follows the group rules ✓ 207 [mobile] › tests/inventory.spec.ts:151:3 › inventory round 7: footer, sockets, main-gem rule › gold + Zoe containers and the character line sit under the grid; no help text; the grid is never cut (652ms) - 208 [mobile] › tests/inventory.spec.ts:167:3 › inventory round 7: footer, sockets, main-gem rule › sockets never overlap, use the circle art and do not scale on hover - 209 [mobile] › tests/inventory.spec.ts:188:3 › inventory round 7: footer, sockets, main-gem rule › exactly one main gem per item: a second main is refused, a gem can be dragged out of a socket and back - 210 [mobile] › tests/inventory.spec.ts:210:3 › inventory round 7: footer, sockets, main-gem rule › the drag ghost keeps the size of the equipped art ✓ 211 [mobile] › tests/inventory.spec.ts:223:1 › inventory window fits the page on every device (1.2s) ✘ 212 [mobile] › tests/inventory.spec.ts:230:1 › grid look: tile sprite grid, usable/unusable tiles (not rarity), cosmetics tab right + disabled, backdrop (651ms) ✓ 213 [mobile] › tests/mobile.spec.ts:11:1 › phone type scale is compact and no page scrolls sideways (5.7s) ✓ 214 [mobile] › tests/mobile.spec.ts:27:1 › phone tabs stay on one swipeable row; the last tab is reachable (502ms) ✓ 215 [mobile] › tests/mobile.spec.ts:40:1 › phone topbar: wide search, drawer with 40 px tap targets (1.0s) ✓ 216 [mobile] › tests/mobile.spec.ts:57:1 › header and sidebar stay fixed while the page scrolls (786ms) ✓ 217 [mobile] › tests/overflow.spec.ts:11:1 › no element sticks out past a 360 px phone screen on any page (14.6s) ✓ 218 [mobile] › tests/popup.spec.ts:25:1 › item popup: rarity header art, glass body, bronze corners; Alt reveals affix tiers (627ms) ✓ 219 [mobile] › tests/popup.spec.ts:47:1 › every popup family uses its own header: orb/consumable/material → currency, gem → gem, mount/pet → monster (1.3s) ✓ 220 [mobile] › tests/popup.spec.ts:60:1 › skill popups: technique header for attacks, combination header + condition for finishers (833ms) ✓ 221 [mobile] › tests/popup.spec.ts:69:1 › tabs cut scrolling: bestiary shows one level band at a time (511ms) ✓ 222 [mobile] › tests/popup.spec.ts:77:1 › buttons use the 34 px art inside a 44 px target; every page has prev/next (760ms) ✓ 223 [mobile] › tests/popup.spec.ts:89:1 › no horizontal page scroll on the item catalog (1.1s) - 224 [mobile] › tests/popup.spec.ts:96:1 › popup standard: 320 px, one-line titles, gold dividers only around the modifiers (max 2), never two in a row ✓ 225 [mobile] › tests/popup.spec.ts:122:1 › item names in prose are rarity-coloured hover links (never inside headings or code); economy showcase (429ms) ✓ 226 [mobile] › tests/popup.spec.ts:138:1 › orbs are coloured by rarity and gems by socket colour (popup title, well frame, catalog caption) (776ms) - 227 [mobile] › tests/round8.spec.ts:14:3 › round 8: inventory window › 620 px wide, no outer padding, inner panel 12 / 8 / 8; weapons are 2×3 slots inset from the edges; tabs inset; slimmer gold + Zoe boxes - 228 [mobile] › tests/round8.spec.ts:43:3 › round 8: inventory window › pressing an equipped item scales it down a little; equipping plays a small settle (scale-down) on the slot - 229 [mobile] › tests/round8.spec.ts:61:1 › tab strips of the tight windows have artwork behind them; a socketed gem shows the open hand - 230 [mobile] › tests/round8.spec.ts:71:3 › round 8: character window › 620 px wide, same padding; portrait at the top with the level medallion; no medallion on the EXP bar; framed skill bar on painted ground; framed stat body - 231 [mobile] › tests/round8.spec.ts:106:3 › round 8: character window › crest title sits 3 px lower than before - 232 [mobile] › tests/round8.spec.ts:117:3 › round 8: map and social › map: smaller circles; the pin tip is exactly on the centre of the current circle - 233 [mobile] › tests/round8.spec.ts:134:3 › round 8: map and social › social: every HP bar has the same width and is framed art, not a plain box - 234 [mobile] › tests/round8.spec.ts:147:1 › orb / gem / consumable popups use a smaller art slot; socket rings are smaller - 235 [mobile] › tests/round8.spec.ts:155:1 › items: the equipment tab sits on a framed painted stage; a socketed gem shows the open hand - 236 [mobile] › tests/round8.spec.ts:170:3 › round 8: kit and pages › gold button: hover lights the whole button (no glow layer painted over the art) - 237 [mobile] › tests/round8.spec.ts:180:3 › round 8: kit and pages › plain window headers are transparent: the panel fill starts under the rail - 238 [mobile] › tests/round8.spec.ts:190:3 › round 8: kit and pages › page headers: the header rail sits on top and the framed body starts under it (Item catalog, Online, social & events) ✓ 239 [mobile] › tests/round8.spec.ts:207:3 › round 8: kit and pages › economy: the rarity showcase uses the real item popup (505ms) ✓ 240 [mobile] › tests/round8.spec.ts:223:3 › round 8: kit and pages › HUD mock is built from the delivered ART-HUD sprites, not placeholder boxes (886ms) - 241 [mobile] › tests/showcase.spec.ts:3:1 › showcase lists seven playable clips (incl. the finisher and the Ultra tier) and the live Feel Lab boots ✓ 242 [mobile] › tests/site.spec.ts:26:1 › static export has every expected route (9ms) ✓ 243 [mobile] › tests/site.spec.ts:32:1 › no broken internal links or missing assets in the built HTML (67ms) ✓ 244 [mobile] › tests/site.spec.ts:48:3 › renders / (1.3s) ✓ 245 [mobile] › tests/site.spec.ts:48:3 › renders /404/ (314ms) ✓ 246 [mobile] › tests/site.spec.ts:48:3 › renders /_not-found/ (326ms) ✓ 247 [mobile] › tests/site.spec.ts:48:3 › renders /alpha/ (392ms) ✓ 248 [mobile] › tests/site.spec.ts:48:3 › renders /art-requests/ (1.2s) ✓ 249 [mobile] › tests/site.spec.ts:48:3 › renders /audio-requests/ (549ms) ✓ 250 [mobile] › tests/site.spec.ts:48:3 › renders /automation/ (379ms) ✓ 251 [mobile] › tests/site.spec.ts:48:3 › renders /bestiary/ (388ms) ✓ 252 [mobile] › tests/site.spec.ts:48:3 › renders /builds/ (388ms) ✓ 253 [mobile] › tests/site.spec.ts:48:3 › renders /builds/ashwarden/ (362ms) ✓ 254 [mobile] › tests/site.spec.ts:48:3 › renders /builds/boltwright/ (384ms) ✓ 255 [mobile] › tests/site.spec.ts:48:3 › renders /builds/earthshaker/ (521ms) ✓ 256 [mobile] › tests/site.spec.ts:48:3 › renders /builds/frostweaver/ (430ms) ✓ 257 [mobile] › tests/site.spec.ts:48:3 › renders /builds/lanternbinder/ (463ms) ✓ 258 [mobile] › tests/site.spec.ts:48:3 › renders /builds/nightblade/ (421ms) ✓ 259 [mobile] › tests/site.spec.ts:48:3 › renders /builds/oathkeeper/ (419ms) ✓ 260 [mobile] › tests/site.spec.ts:48:3 › renders /builds/pyromancer/ (373ms) ✓ 261 [mobile] › tests/site.spec.ts:48:3 › renders /builds/ravager/ (363ms) ✓ 262 [mobile] › tests/site.spec.ts:48:3 › renders /builds/ringdancer/ (371ms) ✓ 263 [mobile] › tests/site.spec.ts:48:3 › renders /builds/songweaver/ (371ms) ✓ 264 [mobile] › tests/site.spec.ts:48:3 › renders /builds/stormcaller/ (365ms) ✓ 265 [mobile] › tests/site.spec.ts:48:3 › renders /builds/talon/ (418ms) ✓ 266 [mobile] › tests/site.spec.ts:48:3 › renders /builds/twinblade/ (482ms) ✓ 267 [mobile] › tests/site.spec.ts:48:3 › renders /builds/vanguard/ (402ms) ✓ 268 [mobile] › tests/site.spec.ts:48:3 › renders /builds/warblade/ (1.2s) ✓ 269 [mobile] › tests/site.spec.ts:48:3 › renders /builds/windarcher/ (307ms) ✓ 270 [mobile] › tests/site.spec.ts:48:3 › renders /builds/windmender/ (305ms) ✓ 271 [mobile] › tests/site.spec.ts:48:3 › renders /combat/ (1.1s) ✓ 272 [mobile] › tests/site.spec.ts:48:3 › renders /components/ (328ms) ✓ 273 [mobile] › tests/site.spec.ts:48:3 › renders /data/ (342ms) ✓ 274 [mobile] › tests/site.spec.ts:48:3 › renders /decisions/ (369ms) ✓ 275 [mobile] › tests/site.spec.ts:48:3 › renders /docs-index/ (360ms) ✓ 276 [mobile] › tests/site.spec.ts:48:3 › renders /economy/ (468ms) ✓ 277 [mobile] › tests/site.spec.ts:48:3 › renders /glossary/ (400ms) ✓ 278 [mobile] › tests/site.spec.ts:48:3 › renders /hud/ (1.3s) ✓ 279 [mobile] › tests/site.spec.ts:48:3 › renders /items/ (363ms) ✓ 280 [mobile] › tests/site.spec.ts:48:3 › renders /kickoff/ (340ms) ✓ 281 [mobile] › tests/site.spec.ts:48:3 › renders /ledger/ (1.3s) ✓ 282 [mobile] › tests/site.spec.ts:48:3 › renders /leveling/ (338ms) ✓ 283 [mobile] › tests/site.spec.ts:48:3 › renders /licenses/ (414ms) ✓ 284 [mobile] › tests/site.spec.ts:48:3 › renders /online/ (388ms) ✓ 285 [mobile] › tests/site.spec.ts:48:3 › renders /process/ (383ms) ✓ 286 [mobile] › tests/site.spec.ts:48:3 › renders /process/task-template/ (365ms) ✓ 287 [mobile] › tests/site.spec.ts:48:3 › renders /process/testing/ (418ms) ✓ 288 [mobile] › tests/site.spec.ts:48:3 › renders /production/animation/ (430ms) ✓ 289 [mobile] › tests/site.spec.ts:48:3 › renders /production/art-pipeline/ (383ms) ✓ 290 [mobile] › tests/site.spec.ts:48:3 › renders /production/audio/ (394ms) ✓ 291 [mobile] › tests/site.spec.ts:48:3 › renders /production/characters/ (495ms) ✓ 292 [mobile] › tests/site.spec.ts:48:3 › renders /production/environment/ (396ms) ✓ 293 [mobile] › tests/site.spec.ts:48:3 › renders /production/gm-room/ (416ms) ✓ 294 [mobile] › tests/site.spec.ts:48:3 › renders /production/local-sfx/ (382ms) ✓ 295 [mobile] › tests/site.spec.ts:48:3 › renders /production/npcs-monsters/ (363ms) ✓ 296 [mobile] › tests/site.spec.ts:48:3 › renders /production/skill-gate/ (386ms) ✓ 297 [mobile] › tests/site.spec.ts:48:3 › renders /production/tripo/ (419ms) ✓ 298 [mobile] › tests/site.spec.ts:48:3 › renders /production/vfx/ (375ms) ✓ 299 [mobile] › tests/site.spec.ts:48:3 › renders /public-site/ (378ms) ✓ 300 [mobile] › tests/site.spec.ts:48:3 › renders /quests/ (1.2s) ✓ 301 [mobile] › tests/site.spec.ts:48:3 › renders /roadmap/ (271ms) ✓ 302 [mobile] › tests/site.spec.ts:48:3 › renders /setup/ (312ms) ✓ 303 [mobile] › tests/site.spec.ts:48:3 › renders /showcase/ (3.2s) ✓ 304 [mobile] › tests/site.spec.ts:48:3 › renders /skills/ (315ms) ✓ 305 [mobile] › tests/site.spec.ts:48:3 › renders /skills/atlas/ (1.2s) ✓ 306 [mobile] › tests/site.spec.ts:48:3 › renders /skills/codex/ (394ms) ✓ 307 [mobile] › tests/site.spec.ts:48:3 › renders /tech/accounts/ (337ms) ✓ 308 [mobile] › tests/site.spec.ts:48:3 › renders /tech/architecture/ (418ms) ✓ 309 [mobile] › tests/site.spec.ts:48:3 › renders /tech/engine/ (396ms) ✓ 310 [mobile] › tests/site.spec.ts:48:3 › renders /tech/netcode/ (406ms) ✓ 311 [mobile] › tests/site.spec.ts:48:3 › renders /tech/patching/ (429ms) ✓ 312 [mobile] › tests/site.spec.ts:48:3 › renders /tech/performance/ (409ms) ✓ 313 [mobile] › tests/site.spec.ts:48:3 › renders /tech/security/ (395ms) ✓ 314 [mobile] › tests/site.spec.ts:48:3 › renders /tech/unity/ (414ms) ✓ 315 [mobile] › tests/site.spec.ts:48:3 › renders /vision/ (409ms) ✓ 316 [mobile] › tests/site.spec.ts:48:3 › renders /windows/ (440ms) ✓ 317 [mobile] › tests/site.spec.ts:48:3 › renders /world/ (1.3s) ✓ 318 [mobile] › tests/site.spec.ts:66:1 › skill codex shows a styled description for every skill (728ms) ✓ 319 [mobile] › tests/site.spec.ts:77:1 › click-to-travel preview: route + auto-mount, travel, unreachable point (6.8s) ✓ 320 [mobile] › tests/site.spec.ts:101:1 › glossary: every term links to an existing page and section (26ms) ✓ 321 [mobile] › tests/site.spec.ts:114:1 › glossary: search, click-through to the screen, boss popup (569ms) ✓ 322 [mobile] › tests/site.spec.ts:134:1 › bestiary art is shown whole (contain, no frame, no crop) (243ms) ✓ 323 [mobile] › tests/site.spec.ts:143:1 › team position events: comparison + one tab per proposal with positions; version in the sidebar (280ms) ✓ 324 [mobile] › tests/site.spec.ts:152:1 › cosmetic side quests: costume, weapon-effect and aura questlines with boss-only steps (257ms) ✓ 325 [mobile] › tests/site.spec.ts:162:1 › GM room: 18 preset builds with a 45-point Atlas link and hoverable gear; item forge previews a custom item (352ms) ✓ 326 [mobile] › tests/site.spec.ts:184:1 › logos are sharp: the browser picks a cut close to the rendered size (no upscaling, little downscaling) (252ms) ✓ 327 [mobile] › tests/site.spec.ts:199:1 › mounts are showcased with their artwork (no hover needed) and companions too (379ms) ✓ 328 [mobile] › tests/site.spec.ts:212:1 › items: orbs/gems economy pages mention random drop quantities and the Caravan Market (327ms) ✓ 329 [mobile] › tests/windows.spec.ts:10:1 › character window: crest on the inner border, close top-right, resize grip, 8 chain slots + Q–C (1.1s) ✓ 330 [mobile] › tests/windows.spec.ts:28:1 › inventory window: 11 equipment slots, 8 quick slots, 12×5 bag (shared drag-and-drop window) (1.6s) ✓ 331 [mobile] › tests/windows.spec.ts:39:1 › options window: one vertical scroll (no tabs); dropdown menus are portals and are never clipped (819ms) ✓ 332 [mobile] › tests/windows.spec.ts:61:1 › mobile mockups and references fit without page scroll; concept queue listed without prompts (1.4s) ✓ 333 [mobile] › tests/windows.spec.ts:75:1 › loading screen mock: key art, plaque, rail progress bar that advances, tip and version (1.7s) ✓ 334 [mobile] › tests/windows.spec.ts:88:1 › round 7 windows: crest title is gold with dark text; Character has the level medallion + rail EXP bar; map has art markers, road and the player pin (447ms) ✓ 335 [mobile] › tests/windows.spec.ts:110:1 › loading bar: the gold fill runs end to end (no gutter) between the rail ornaments (456ms) - 336 [mobile] › tests/windows.spec.ts:125:1 › options: dropdown menu opens near the bottom without being clipped (flips up) 1) [desktop] › tests/round8.spec.ts:43:3 › round 8: inventory window › pressing an equipped item scales it down a little; equipping plays a small settle (scale-down) on the slot Error: expect(received).toBeLessThan(expected) Expected: < 1 Received: 1 49 | await expect.poll(() => art.evaluate((e) => getComputedStyle(e).transform)).not.toBe('none'); 50 | const m = (await art.evaluate((e) => getComputedStyle(e).transform)).match(/matrix\(([^,]+),/)!; > 51 | expect(Number(m[1])).toBeLessThan(1); expect(Number(m[1])).toBeGreaterThan(0.85); // a small scale-down, not a collapse | ^ 52 | await page.mouse.up(); 53 | // right-click equip: the bow lands in Main hand and the slot plays the settle animation 54 | await page.locator('[data-testid="bag"] [data-id="ex_blue_bow"]').click({ button: 'right' }); at /Users/king/Desktop/Workspace/SRO/zoen/apps/wiki/tests/round8.spec.ts:51:26 Error Context: test-results/round8-round-8-inventory-w-d5b42-ttle-scale-down-on-the-slot-desktop/error-context.md 2) [desktop] › tests/round8.spec.ts:147:1 › orb / gem / consumable popups use a smaller art slot; socket rings are smaller Error: expect(received).toBe(expected) // Object.is equality Expected: 64 Received: 63 149 | await page.goto('/components/#tab-popups'); 150 | const orb = page.locator('[role="tabpanel"]:not([hidden]) .gpop[data-family="currency"] .gpop-art').first(); > 151 | expect(Math.round((await orb.boundingBox())!.width)).toBe(64); | ^ 152 | expect(Math.round((await page.locator('[role="tabpanel"]:not([hidden]) .gpop-sockets .socket').first().boundingBox())!.width)).toBe(30); 153 | }); 154 | at /Users/king/Desktop/Workspace/SRO/zoen/apps/wiki/tests/round8.spec.ts:151:56 Error Context: test-results/round8-orb-gem-consumable--90c45-ot-socket-rings-are-smaller-desktop/error-context.md 3) [mobile] › tests/inventory.spec.ts:230:1 › grid look: tile sprite grid, usable/unusable tiles (not rarity), cosmetics tab right + disabled, backdrop Error: expect(received).toBeGreaterThan(expected) Expected: > 212 Received: 210.96875 239 | await expect(cos).toBeDisabled(); 240 | const [inv, cosBox] = [await page.getByRole('tab', { name: 'Inventory' }).first().boundingBox(), await cos.boundingBox()]; > 241 | expect(cosBox!.x).toBeGreaterThan(inv!.x + 200); // pushed to the right | ^ 242 | expect(await page.getByTestId('equipment').evaluate((e) => getComputedStyle(e, '::before').backgroundImage)).toContain('inventory-backdrop'); // round 7: pale layer 243 | await page.screenshot({ path: `../../logs/evidence/T059/inventory-${test.info().project.name}.png`, fullPage: false }); 244 | }); at /Users/king/Desktop/Workspace/SRO/zoen/apps/wiki/tests/inventory.spec.ts:241:21 Error Context: test-results/inventory-grid-look-tile-s-30879-tab-right-disabled-backdrop-mobile/error-context.md 3 failed [desktop] › tests/round8.spec.ts:43:3 › round 8: inventory window › pressing an equipped item scales it down a little; equipping plays a small settle (scale-down) on the slot [desktop] › tests/round8.spec.ts:147:1 › orb / gem / consumable popups use a smaller art slot; socket rings are smaller [mobile] › tests/inventory.spec.ts:230:1 › grid look: tile sprite grid, usable/unusable tiles (not rarity), cosmetics tab right + disabled, backdrop 51 skipped 282 passed (4.2m) undefined /Users/king/Desktop/Workspace/SRO/zoen/apps/wiki:  ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL  Command failed with exit code 1: playwright test  ELIFECYCLE  Command failed with exit code 1.