Skip to content

In-process Android test driver, pluggable drivers, unified tracing, and multi-run report views - #245

Merged
handstandsam merged 1 commit into
mainfrom
upstream-2026.09.01
Sep 2, 2026
Merged

In-process Android test driver, pluggable drivers, unified tracing, and multi-run report views#245
handstandsam merged 1 commit into
mainfrom
upstream-2026.09.01

Conversation

@handstandsam

@handstandsam handstandsam commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Syncs internal changes through 2026.09.01. The headline items:

  • An in-process Android test driver (in development) (trailblaze-android-test) that runs Trailblaze tools inside the app's own AndroidJUnitRunner test — Espresso for Views, the app's existing Compose rule for composables, with two native selector dialects (androidView, compose) over one non-overlapping hybrid tree. Reachable from the host CLI, and runnable against an app with no Gradle module of your own via trailblaze inprocess make-test-apk.
  • Drivers are now plug-ins. HostDriverDescriptor replaces when (driverType) arms that were scattered across device discovery, the YAML runner, screen capture and three device listings. Adding a driver is three edits; an app declares which drivers it has rather than spelling each one out everywhere. Compose desktop, both Playwright web drivers and Revyl are converted.
  • One tracing pipeline. Four overlapping profiling systems collapse into one span producer, one durable timing record, one consumer (trailblaze profile), and two export formats — Chrome Trace always, OTLP via trailblaze otel on demand. Host and device halves merge into a single trace.json on one trace id.
  • Multi-run report views. Several runs of the same trail render as one report with Map, Grid and Replay projections — every lane advancing on a shared wall clock, playing each lane's video where one was recorded. Plus run comparison, snapshot baselines against a previous run, and attachment rendering across every report surface.
  • trailblaze usages --json — a documented, versioned report contract for gating CI on which trails a tool change affects.
  • Session video is now opt-in (--capture-video / TRAILBLAZE_CAPTURE_VIDEO / capture-video), and the legacy Compose/WebAssembly report is removed.

Also: multi-device runs take per-run --bind / --configuration flags instead of daemon-wide env vars, Playwright web recordings replay trustworthily and the module's tests run in CI, and device-clock skew no longer corrupts a run's recording.

@handstandsam
handstandsam merged commit 8479888 into main Sep 2, 2026
12 checks passed
@handstandsam
handstandsam deleted the upstream-2026.09.01 branch September 2, 2026 12:49
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