Repository navigation
Check the hosted trace player end to end on every PR - #518
Merged
Merged
Conversation
This was referenced Oct 30, 2026
The hosted player was only ever checked by hand. A new CI job builds it, serves it under the headers vercel.json sends, and in headless Chrome opens the committed older-format fixtures, a zip from this checkout's writer and a non-zip through it. It fails on a missing CSP, on rows that do not match the trace, on a missing filmstrip, and on any console error or CSP violation, and it checks the trace was parsed by the Web Worker. The same check runs on a schedule and after each production deploy against vars.HOSTED_PLAYER_URL, skipped while that is unset, and keeps one issue open while it fails. Closes #511 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vishnuv688
force-pushed
the
fix/504-sidebar-background
branch
from
October 30, 2026 10:12
831b6a1 to
8211eee
Compare
vishnuv688
force-pushed
the
ci/511-hosted-player-e2e
branch
from
October 30, 2026 10:12
357cead to
dcf13e9
Compare
4 of 18 tasks
main's Dependabot vite bump (#449) replaced every vite 8.3.2 lockfile entry with 8.3.5, and this branch's conformance importer still named 8.3.2, so the merged lockfile failed a frozen install. Its entry now names main's own vite 8.3.5 snapshot. Only those three lines differ from main's lockfile: a full regeneration also re-resolved unrelated peers across 1,200 lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
What & why
Closes #511. Part of #494. Stacked on #517.
The hosted trace player was only ever checked by hand. A new CI job builds it, serves it under the headers
vercel.jsonsends, and drives it with WebdriverIO in headless Chrome on every PR. The same check runs on a schedule and after each production deploy against the deployed page, and keeps one issue open while it fails.Type of change
Packages touched
shared(types and contracts)core(framework-agnostic capture/reporting)elements(published element/snapshot API —@wdio/elements)service(WebdriverIO adapter)nightwatch-devtools(Nightwatch adapter)selenium-devtools(Selenium adapter)selenium-devtools-py(Selenium Python adapter)backend(server)app(UI)script(page-injected runtime)trace(Trace mode)Only
conformance(CI checks), which the list does not include, plus the workflows.Capability matrix
packages/conformance/src/features.tsupdated, and tables regenerated withpnpm docs:capabilities, if this adds or changes user-facing behaviourNot needed: CI only.
Notes for reviewers
What the check does (
pnpm player:e2e, code inpackages/conformance/hosted-player/)script-src 'self'andconnect-src 'self', so it can never pass against a page without the policy.shadow$chain, thensetFiles).log.entryAdded. CSP violations are not BiDi log events, so a preload script turns eachsecuritypolicyviolationinto a console error./assets/trace-parse.worker-*.js, from BiDi network events or Resource Timing, proving the Web Worker path (Parse the hosted player's trace in a Web Worker #514) under the real CSP.Design notes
conformancerather thanapp: the app may not import the trace writer, which the check needs, andconformancealready holds the smoke job's checks and depends onwebdriverioandtrace.remote()script rather than the testrunner: one linear check that also starts and stops the preview server.scheduled-hosted-player.yml): every 6 hours, onworkflow_dispatch, and on a successful Productiondeployment_statusfrom Vercel. Skipped whilevars.HOSTED_PLAYER_URLis unset.contents: read, withissues: writeonly on the report job; one run at a time; comments on the open "Hosted trace player check is failing" issue or opens it, and closes it when the check passes. The URL reaches scripts only throughenv. The bot-opened issue has no assignee.Testing
pnpm build,pnpm test(3373 passed),pnpm lintgreen;pnpm install --frozen-lockfilepasses.hosted-playerjob is the first real run. Not run locally: real-browser runs are left to CI.Proven only by CI
setFilesthrough theshadow$chain; BiDi log and preload capture of real errors; the worker request showing up; labels matching the real UI; the timeouts.HOSTED_PLAYER_URLis set.Screenshots / recordings
Not applicable: no UI change.
🤖 Generated with Claude Code