BugTape privacy fixture

Proves default block selectors omit client / revenue nodes from DOM replay. Checklist: /docs/privacy-proof-checklist.md.

How to verify

  1. Init the browser SDK against a test project (only after the checklist is otherwise green).
  2. Submit one bug from this page (widget or programmatic).
  3. In the console occurrence, search event / replay JSON for the tokens below.

PASS: zero hits for FORBIDDEN_*; control string SAFE_MARKER_ALPHA present when DOM recording is on.
FAIL: any FORBIDDEN_* hit, or missing control string with DOM on.

Blocked — client / revenue (must not appear in replay)

Container selector: [data-testid="client-revenue-table"][data-bugtape-ignore]

ClientRevenue
FORBIDDEN_CLIENT_ACME_CORP FORBIDDEN_REVENUE_9912345

Blocked — FX margin panel

Container selector: [data-testid="fx-margin-panel"].bugtape-ignore

FORBIDDEN_FX_MARGIN_12BPS

Control — allowed status table (must appear when DOM is on)

Container selector: [data-testid="safe-status-table"] (no ignore attribute)

JobStatus
nightly-rollup SAFE_MARKER_ALPHA

Documented selectors (copy for AGENTS.md)

data-bugtape-ignore on [data-testid="client-revenue-table"]
.bugtape-ignore on [data-testid="fx-margin-panel"]
/* control — do not block: [data-testid="safe-status-table"] */