This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.
Overview
Block hid posts in the main feed. The “help me reply” tool retrieved the blocked user’s last comment as context.
Viral fan-out plus generative replies melted the write path; the read path stayed up, but suggested replies posted twice.
Block/report is a safety feature. If an AI path bypasses it, you have a regression even if the rest of the app is correct.
Highlights
- Safety features on every AI context path
- Idempotent generative writes
- Load tests with functional assertions
Typical launch bar: Block until pass rules hold on the money, identity, or safety path.
Challenges
Recommendation embeddings were trained without a block graph.
Group chats had different block semantics than DMs; the model used one rule for both.
Report queue SLA was not tested because it was “ops,” not “AI.”
How we tested
Block/report matrix including AI context, notifications, and search.
Default private vs public as designed.
Idempotent post of AI-suggested replies.
Separate read/write SLOs under viral load.
Starting point vs what we required
| Starting point | What we required |
|---|---|
| Recommendation embeddings were trained without a block graph. | Block/report matrix including AI context, notifications, and search. |
| Group chats had different block semantics than DMs; the model used one rule for both. | Default private vs public as designed. |
| Report queue SLA was not tested because it was “ops,” not “AI.” | Idempotent post of AI-suggested replies. |
What we delivered
Journeys / UI
- Playwright — Block, report, AI reply
API / contract
- Postman — Block graph on retrieve API
Load / soak
- k6 — Viral read vs write
Adversarial evals
- Promptfoo — Bypass prompts to mention blocked users
Outcomes
Retrieval filters included the block graph. Double-post of suggested replies was an e2e fail. Report queue got a Playwright path in the same pack.
k6 on viral fan-out with a correctness check that blocked authors never appear in AI context.
Stack
| Layer | Tool | What we validated |
|---|---|---|
| Journeys / UI | Playwright | Block, report, AI reply |
| API / contract | Postman | Block graph on retrieve API |
| Load / soak | k6 | Viral read vs write |
| Adversarial evals | Promptfoo | Bypass prompts to mention blocked users |
Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.