Skip to content

fix: publish a real viewport from every adapter and make a live native run visible on the dashboard - #382

Merged
vishnuv688 merged 8 commits into
mainfrom
fix/373-publish-a-real-viewport
Sep 18, 2026
Merged

vishnuv688 merged 8 commits into
mainfrom
fix/373-publish-a-real-viewport

Conversation

@vishnuv688

@vishnuv688 vishnuv688 commented Sep 18, 2026

Copy link
Copy Markdown
Member

What & why

Type of change

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Polish (an improvement to an existing feature)
  • Breaking change (existing behavior changes for users)
  • Documentation
  • Internal (build, CI, dependencies, tooling)

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)

Notes for reviewers

Screenshots / recordings

image

@greptile-apps

greptile-apps Bot commented Sep 18, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge with no outstanding actionable findings.

Summary

This PR publishes real viewport metadata across the supported adapters and improves live native-session visibility and assertion reporting.

  • Adds shared viewport resolution for browser and native sessions and integrates it with WebdriverIO, Nightwatch, Selenium JavaScript, and Selenium Python.
  • Buffers messages emitted while the dashboard socket is connecting and safely handles dropped messages.
  • Adds live-mode native screenshots without duplicating trace-mode screenshot capture.
  • Introduces a live-device workbench layout with usable action, dock, and capture panes.
  • Correctly records negated WebdriverIO assertions while avoiding user-controlled prose false positives.
  • Adds changesets and focused coverage for viewport metadata, socket buffering, native screenshots, and assertion outcomes.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Adapter session starts] --> B{Session type}
  B -->|Browser| C[Read visualViewport]
  B -->|Native app| D[Read driver window size]
  C --> E[Publish viewport metadata]
  D --> E
  E --> F{Dashboard socket open?}
  F -->|Connecting| G[Bounded pending queue]
  G --> H[Flush in publication order]
  F -->|Open| H
  H --> I[Live dashboard]
  I --> J[Action list and dock]
  I --> K[Device capture pane]
Loading

Reviews (4) · Last reviewed commit: "chore: add changesets for the live-dashb..."

Comment thread packages/service/src/session.ts Outdated
Comment thread .changeset/publish-a-real-viewport.md
Comment thread packages/service/src/assert-capture.ts Outdated
@vishnuv688
vishnuv688 merged commit ca43e15 into main Sep 18, 2026
11 checks passed
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.

Selenium and Nightwatch traces are framed at 1280x720: neither adapter publishes a viewport

1 participant