Skip to content

feat(project-form): rendering-noise filter in each library's config - #440

Merged
pashidlos merged 3 commits into
masterfrom
feat/blur-amplitude-filter
Oct 24, 2026
Merged

pashidlos merged 3 commits into
masterfrom
feat/blur-amplitude-filter

Conversation

@pashidlos

Copy link
Copy Markdown
Member

What

The project form's side of the backend's rendering-noise filter (Visual-Regression-Tracker/backend#428): a failing comparison that is only anti-aliasing / sub-pixel rendering passes, real changes still fail.

Every library's config form (pixelmatch, looks-same, odiff, VLM) gets an "Ignore rendering noise" switch and, while it is on, a "Rendering noise threshold" field (0–128, shows the backend default of 80 until edited, fractions allowed). They write blurAmplitudeFilter / blurAmplitudeThreshold into imageComparisonConfig; no API or schema change.

Switching the library, or the VLM provider, replaces the config with that choice's defaults — the filter's keys are carried over, so the switch is not silently turned off.

Verification

  • Vitest: 10 new tests in ProjectForm.test.tsx (off by default, offered for every library, written into the config json, a saved project's filter shown, the 0–128 bound, kept across a library and a VLM provider switch). All 612 pass; typecheck clean, lint 0 errors, build OK.
  • Playwright: page-object locators and request-body tests in projectList.spec.ts; a visual-contract entry "edit project dialog with the rendering-noise filter on" in screens.spec.ts. Baselines regenerated in Docker: create-project changes by the new switch at the bottom of the form, edit-project-noise-filter is new (light and dark). Every changed PNG looked at.
  • slotProps.htmlInput rather than InputProps, per AGENTS.md for MUI 7.

Merge order

After the backend PR (Visual-Regression-Tracker/backend#428): an older backend would pass these keys on to looks-same / odiff as options.

🤖 Generated with Claude Code

Pavlo Strunkin and others added 3 commits October 24, 2026 16:39
The backend's rendering-noise filter (blur amplitude) is switched on in the
image-comparison config. Every library's config form now offers it: an
"Ignore rendering noise" switch, and a 0-255 threshold shown only while the
switch is on; it shows the backend default of 80 until edited, and an
empty or out-of-range value is refused before saving.

Swapping the library, or the VLM provider, replaces the config with that
choice's defaults; the filter's keys are carried over, so the switch is not
silently turned off.

Covered by Playwright: saving with the filter on, the threshold's validation
and visibility, carrying it across a library and a VLM provider change, and
opening a project saved with it on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Matches the backend's ceiling: the blurred difference never exceeds 255,
so a threshold near it would pass almost every change of one size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e filter

Brings the rendering-noise fields in line with the modernised frontend:
slotProps.htmlInput instead of InputProps (MUI 7), Vitest component tests in
ProjectForm.test.tsx (off by default, offered for every library, written
into the config json, a saved project's filter shown, the 0-128 bound, kept
across a library and a VLM provider switch), and an entry in the visual
contract for the dialog with the filter on. Baselines regenerated in Docker:
create-project changes by the new switch at the bottom of the form.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pashidlos
pashidlos force-pushed the feat/blur-amplitude-filter branch from c46484b to 4927f2d Compare October 24, 2026 13:42
@sonarqubecloud

Copy link
Copy Markdown

@pashidlos
pashidlos merged commit 75212dd into master Oct 24, 2026
3 checks passed
@pashidlos
pashidlos deleted the feat/blur-amplitude-filter branch October 24, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant