Skip to content

Observe, investigate, verify

Blop starts with passive, local evidence and adds active flow evidence only when the question calls for it. The loop is observe → investigate → verify.

Point an existing OTLP/HTTP exporter at the local collector. This is the default path because it requires no account, no browser, and no model call:

Terminal window
blop monitor start --detach
OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:27686 pnpm test

Use an authored browser check when you need to observe a specific user journey as it is performed. The runner drives Browser Harness through explicit tools and records steps, assertions, and artifacts:

Terminal window
blop test tests/checkout.blop.ts --base-url http://localhost:3000

Ask the smallest question that can distinguish the problem:

Terminal window
blop traces --service checkout --status error --since 15m --json
blop trace <trace-id> --include logs --json
blop audit --service checkout --since 15m --json

For an active check, inspect its result, failing step, assertion reason, and artifacts. If platform ingest is configured, the control plane groups that run and its failures for team investigation.

After changing the software, reproduce the instrumented behavior and compare the same bounded queries or audit:

Terminal window
blop audit --service checkout --since 15m --fail-on regression --json

Then rerun the authored browser check if the claim is about a user-visible flow. Local, preview, and staging targets are the normal progression. A production target is deliberate, never inferred; read Production-target browser checks first.

Question Evidence to start with
Which service or span failed? Local traces, spans, and correlated logs
Did latency or errors regress after this edit? Local blop audit and grouped statistics
Can a user complete this exact flow? An authored browser check
What did the browser runner see and decide? Run steps, assertions, and artifacts
Did an existing Vitest/JUnit suite fail? Adapter-produced control-plane run evidence
Local plane Control plane
Holds traces, spans, logs, services runs, failures, projects, insights
Store SQLite on the developer’s machine Postgres in the web app
Input OTLP/HTTP traces and logs CloudEvents from browser checks and adapters
Best interface blop query and audit commands run and failure views

A run is not a trace. The loop lets an agent use both kinds of evidence in one investigation, but Blop does not ingest the local SQLite store into Postgres or claim a datastore-level correlation between them.

@blopai/browser-harness owns controlled browser actions, sessions, screenshots, and container browser infrastructure. The blop runner owns the authored check, bounded agent loop, result, reporters, and optional platform upload. Use the runner for repeatable product-flow verification; use Browser Harness directly when another host needs lower-level controlled browser tools.