Recording of the visual regression run on onechat.yuvan.me · OneChat — multi-model AI chat walkthrough.

In this video· click a step to jump to it

O
Passed ✓

Test recording

OneChat — multi-model AI chat walkthrough

34,130 ms · 14,383 pixels changed

We built this regression test for onechat.yuvan.me — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against onechat.yuvan.me. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const shot = (n, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
  const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1100); await new Promise(r => setTimeout(r, 250)); await anim(max, 0, 600); })()";

  const routeBlock = async (p) => {
    for (const pattern of [
      '**/cdn-cgi/scripts/**/email-decode.min.js',
      '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**',
      '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/www.googletagmanager.com/**',
    ]) { await p.route(pattern, function (r) { r.abort(); }).catch(function () {}); }
  };
  await routeBlock(page);
+72 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
5.37%
Text
—
DOM
✓
Network
+36 −36
Console
✓
A11y
C
Perf
✓
URL
162 diverged
Variables
—
Full report
Log in →
14,383
Diff px
34s
Duration
C
Accessible
WCAG 2.2 · 70
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

OneChat is a clean multi-model AI chat workspace: one interface to chat across models (Mistral Small 3.1 24B and others), with a visible free credit balance, prompt-category starters (Create / Explore / Code / Learn), recent-chats history, and a command palette. This Lastest baseline signs in and runs a real conversation end to end, then walks the categories, model selector and new-chat flow.

Highlights
  • Transparent free credits
    A live credit balance ($2.00) sits in the sidebar so users always know what a message costs — honest metering with no card required to start.
  • Prompt-category starters
    Create / Explore / Code / Learn tabs each surface curated starter prompts, which kills the blank-page problem for a brand-new chat user.
  • Per-thread model selector
    The model picker (Mistral Small 3.1 24B) lives in the conversation header, making 'which model am I talking to' and switching it obvious per thread.
Friction points
  • Enter does not send
    Pressing Enter in the chat box does nothing — you must click the send (up-arrow) button. Almost every chat UX submits on Enter, so this breaks muscle memory and will cost first-time users a beat.
  • Three screens before first message
    Sign-up bounces to /login (no auto-session), and login is blocked until you click an email-verification link. That's three context switches before a new user sends a single prompt.
  • Cross-site partitioned session cookie
    The session token is issued by the Workers API on a different domain as a partitioned (CHIPS) cookie. It works, but it's the kind of setup that produces hard-to-debug 'logged out on refresh' reports in some browsers.

9 visual changes

Step 1643 px changed
Before
Before
After
After
Diff
Diff
Step 2643 px changed
Before
Before
After
After
Diff
Diff
Step 3643 px changed
Before
Before
After
After
Diff
Diff
Step 4643 px changed
Before
Before
After
After
Diff
Diff
Step 5643 px changed
Before
Before
After
After
Diff
Diff
Step 64,948 px changed
Before
Before
After
After
Diff
Diff
Step 74,948 px changed
Before
Before
After
After
Diff
Diff
Step 8636 px changed
Before
Before
After
After
Diff
Diff
Step 9636 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,275 test runs recorded · 1,164 products tested with Lastest

This test was built for onechat.yuvan.me — claim it free

One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.