Files
waggle-os/docs/audits/2026-07-08-visual-t5-classification.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

5.9 KiB

T5 Visual Snapshot Classification

Status: verified fixed for the tracked visual lane. The original classification below is retained for history; the current worktree includes canonical baseline updates plus a stabilization-only visual-spec change for volatile Home text. No product UI rollback was required.

Command

Fresh-port run from D:\Projects\waggle-os:

$env:WAGGLE_E2E_PORT='3463'
$env:WAGGLE_E2E_BASE_URL='http://127.0.0.1:3463'
$env:WAGGLE_E2E_DATA_DIR=(Join-Path $pwd 'output/playwright/visual-t5-3463/data')
$env:WAGGLE_TRUST_LOCALHOST='1'
$env:WAGGLE_DISABLE_MARKETPLACE_SYNC='1'
$env:EMBEDDING_PROVIDER='mock'
$env:VITE_CLERK_PUBLISHABLE_KEY=''
$env:CLERK_SECRET_KEY=''
node node_modules/playwright/cli.js test tests/visual/views.spec.ts --project=chromium --reporter=list --output=output/playwright/visual-t5-3463/test-results

Historical result: failed as expected; all 14 snapshot comparisons were red before the approved baseline/spec update.

Current Verification

Fresh-port verification from D:\Projects\waggle-os:

$env:WAGGLE_E2E_PORT='34199'
$env:WAGGLE_E2E_BASE_URL='http://localhost:34199'
node node_modules/playwright/cli.js test tests/visual/views.spec.ts --project=chromium --reporter=line

Result: passed, 14/14 visual snapshot comparisons.

Current implementation notes:

  • The runner still covers the same seven desktop views: chat, memory, events, capabilities, cockpit/Home, mission-control, and settings.
  • tests/visual/views.spec.ts now masks volatile Home cockpit facts/workspace text so snapshots compare stable layout and presentation instead of live workspace copy.
  • The active expected paths remain the ASCII-hyphen tests/visual/baselines/Visual-Regression---... family.
  • Duplicate historical baseline families remain present but documented below; they are not the family used by the current runner.

Artifacts:

  • output/playwright/visual-t5-3463/test-results/
  • Actual and diff PNGs are stored below per-test folders.
  • The generated sidecar data directory was disposable and should not be kept as product evidence.

Summary

The visual suite is not failing because snapshots are missing. The active expected paths resolve under the ASCII-hyphen tests/visual/baselines/Visual-Regression---... family.

The current screenshots are generally coherent in desktop dark and light mode. The diffs mostly reflect stale baselines after intentional surface changes: Home continuity now has a Start Here card, Chat has the newer workspace setup/composer state, Memory has the newer trust/correct/forget presentation, Settings has the newer provider-card and Model Pilot layout, and Skills Hub has the newer list/action treatment.

Do not update baselines before Phase 1 approval and the other Phase 1 UI changes land. Rebaseline only after screenshots are reviewed again.

Failure Table

Snapshot Pixels Ratio Classification Decision
chat-dark.png 21,258 0.03 Intentional drift Keep current workspace chat direction; rebaseline after Phase 1 approval unless T4 changes the route/composer state.
chat-light.png 18,337 0.02 Intentional drift Same as dark.
memory-dark.png 48,585 0.06 Intentional drift, plus T10/T12 follow-up Current Memory actual is coherent; update baseline only after Memory mobile/tab/accessibility follow-ups are either fixed or explicitly deferred.
memory-light.png 44,402 0.05 Intentional drift, plus T10/T12 follow-up Same as dark.
events-dark.png 9,088 0.01 Low-risk drift Rebaseline after approval; no immediate UI fix found in the inspected actual.
events-light.png 3,297 0.01 Low-risk drift Rebaseline after approval; no immediate UI fix found in the inspected actual.
capabilities-dark.png 12,221 0.02 Intentional drift, plus T10 follow-up Current Skills Hub actual is coherent; keep T10 coverage for icon/action accessible names and long-row truncation.
capabilities-light.png 9,325 0.02 Intentional drift, plus T10 follow-up Same as dark.
cockpit-dark.png 27,356 0.03 Intentional drift Preserve the current Home Start Here continuity surface; rebaseline after approval.
cockpit-light.png 22,423 0.03 Intentional drift Same as dark.
mission-control-dark.png 8,036 0.01 Low-risk drift, plus layout review Current cockpit actual is coherent, but the connector list reaches the viewport edge in the cropped capture; keep a scroll/affordance check before final scoring.
mission-control-light.png 3,304 0.01 Low-risk drift, plus layout review Same as dark.
settings-dark.png 42,572 0.05 Intentional drift, plus Phase 1 dependency Current Settings actual is coherent, but T2/T3 may alter Settings; rebaseline only after mobile Settings and Solo/Teams copy fixes.
settings-light.png 34,466 0.04 Intentional drift, plus Phase 1 dependency Same as dark.

Baseline Ownership Finding

tests/visual/baselines/ currently contains three naming families:

  • Visual-Regression---... - active family used by the current run.
  • Visual-Regression-... with Unicode dash characters - duplicate historical family.
  • Visual-baselines-... with title-case snapshot names - older duplicate historical family.

Correction after approval:

  1. Keep a single canonical baseline family.
  2. Remove or archive duplicate historical baseline folders only as part of an explicit test-readiness change.
  3. Re-run the suite with --update-snapshots only after the current actual screenshots are approved.

T5 Decision

T5 is verified fixed for the tracked visual lane:

  • Product UI did not need to be rolled back to old baselines.
  • The current canonical baselines represent the approved Phase 1 desktop screenshots.
  • The visual suite passes 14/14 on port 34199.
  • A later test-readiness cleanup can remove or archive duplicate historical baseline folders, but they no longer block this P0 because the active runner family is documented and green.