Dummy Run

A real browser on your preview

traceparent00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ab902b7-01
baggagedummyrun.run.id=2026-10-17-sam-author-006,dummyrun.persona.id=sam-author
User-AgentMozilla/5.0 (...) Chrome/148.0.0.0 Safari/537.36 DummyRun/0.1.0

A run drives Chrome or Firefox through WebDriver BiDi. Every request to your hosts carries a traceparent and a baggage header, and the user agent ends with DummyRun/<version>. An app instrumented with OpenTelemetry joins the persona’s trace.

One JSON record per run

{
  "id": "2026-10-17-sam-author-006",
  "persona": { "id": "sam-author", "role": "author", "device": "phone" },
  "scenario": { "id": "reply-to-review", "title": "Reply to review comments" },
  "target": { "adapter": "url", "environment": "pr-44", "commit": "9076600" },
  "provider": { "kind": "vertex-gemini", "model": "gemini-3.5-flash", "region": "europe-west2" },
  "outcome": "completed",
  "steps": [ ... 11 steps ... ],
  "findings": [ { "id": "submit-button-below-keyboard", "severity": "major",
                  "steps": [6], "evidence": "measured", "verdict": "confirmed" } ],
  "usage": { "model_calls": 15, "input_tokens": 127215, "cost_usd": 0.0549 }
}

Each run writes one record that validates against the run record schema. The results board is static HTML and JSON built from those records.

What ships when

  1. Scaffolddone
  2. Enginenext
  3. Demo app and example cast
  4. PackagingHelm and compose
  5. CloudsGoogle Cloud and Azure
  6. Target adaptersVercel, Netlify, Cloudflare Pages

The plan gives the dummyrun command three subcommands: run, review and board. None of them ships yet. The architecture plans a plain URL adapter first. GitHub Deployments, Vercel, Netlify and Cloudflare Pages follow. Until the engine lands, contributions are issues.

Sources

The headers are from Telemetry and the browsers and adapters from the architecture, both sourced. The record excerpt is from examples/runs/2026-10-17-sam-author-006.json, measured.