✨ Align Storybook and static-site SDKs#284
Merged
Merged
Conversation
7894e2a to
80fdf3d
Compare
80fdf3d to
568513e
Compare
This comment has been minimized.
This comment has been minimized.
Separate Playwright screenshot timeout from Vizzly upload request timeout so static-site runs do not leak transport-only options into screenshot metadata.
Vizzly - Visual Test ResultsCLI Reporter - Waiting for buildNo builds received yet for this pull request.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
This PR aligns the browser-driven SDKs: Storybook and static-site. These are not just wrappers around the CLI. They discover stories/pages, launch browsers, capture screenshots, create cloud builds, attach metadata, send screenshots, and finalize the build.
That makes them easy places for option drift to hide. A user can set comparison, browser, request, build, or metadata options and reasonably expect the same contract as the core CLI. Before this pass, those options were too blended together. Some values affected Playwright capture, some affected Vizzly requests, some became screenshot metadata, and some could be dropped before build creation.
The goal is that these SDKs behave like first-class capture runners. Browser options stay with the browser. Vizzly routing/comparison options go to Vizzly. User metadata goes into the metadata bag. Cloud builds get finalized into an honest state.
What changed
Shared web SDK behavior
threshold,minClusterSize,parallelId, PR number, branch, commit, message, environment, eager mode, and build name when creating cloud builds.package.jsonso metadata cannot drift from the published package.Storybook
--no-headless,--timeout, and--request-timeout.Component-Story@viewportnaming format the code actually uses.Static-site
--no-headless,--request-timeout, and--no-use-sitemap.Properties and options
This PR sits on top of the core contract from #283:
propertiesis user metadata, while SDK/config options stay top-level. The web SDKs still add framework-generated metadata needed for stable baselines, but user-suppliedpropertiesare treated as the user’s bag and merged intentionally rather than acting as an untyped option tunnel.The reason that distinction matters is practical:
threshold,minClusterSize,requestTimeout,buildId, and similar values change behavior. They should be parsed and validated as options, not accidentally stored as metadata.Testing
These are mostly integration-style tests around the SDK boundary. A later E2E visual-diff matrix should still exercise a real fixture site and assert actual diff outcomes through the CLI/API/dashboard path.
Verification
pnpm --dir clients/storybook test: 181 passed.pnpm --dir clients/static-site test: 211 passed.git diff --checkand PR file-list checks for ✨ Align core SDK option contracts #283 through 📝 Document aligned SDK workflows #287.