flake-triage

Solid

Decide whether a preview the visual-diff bot flagged actually regressed or is simply nondeterministic, using a repeat-render oracle at a single commit. Use when a PR's preview diff reports a changed preview whose source the PR does not touch, or when a render, GIF or filmstrip is suspected of being unstable.

Code & Development 111 stars 5 forks Updated today Apache-2.0

Install

View on GitHub

Quality Score: 83/100

Stars 20%
68
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Is it a regression, or is the preview unstable? A changed preview whose source the PR does not touch — clocks, timestamps, randomness, animation frames, network-loaded images — is instability to triage, not a regression to rubber-stamp and not a fix to write blind. The distinction is decidable in a few minutes, at **one commit**, with no reference to the base branch. ## The oracle Render the same preview N times at the *same* commit and compare the bytes. If two renders of one commit differ, nothing about the PR's diff is evidence of anything. ``` for i in 1 2 3; do ./gradlew :samples:android:composePreviewRender --rerun \ -PcomposePreview.filter=<PreviewFunctionName> cp <module>/build/compose-previews/renders/<Preview>.png run-$i.png done md5sum run-*.png ``` `--rerun` is load-bearing: a render task goes `UP-TO-DATE` off its own outputs (including `.error.json` sidecars from a failed run), so a plain re-invocation compares a file against itself and always "passes". **A harness capture has the same oracle, and it is cheaper.** The captures the visual-diff bot compares are Playwright shots of committed static fixtures, so N runs cost seconds and need no JVM. **The `serve` captures (serve-*, viewer-*) are not triaged here any more.** That harness moved with the server to yschimke/compose-preview-server, where it runs as the `visual-harness` CI job; triage them in that repository, against its `preview-harness/`. What stays here is the fixture tree those captures...

Details

Author
yschimke
Repository
yschimke/compose-ai-tools
Created
5 months ago
Last Updated
today
Language
Kotlin
License
Apache-2.0

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category