@@ -151,7 +151,10 @@ The `# yaml-language-server:` line gives editors autocomplete and validation
151151against the [ published schema] .
152152Override the file's target with ` --target ` , choose the output with
153153` --format ` /` --output ` , and inspect a run without sending anything with
154- ` --dry-run ` .
154+ ` --dry-run ` . A dry run still probes the target's benchmark stats endpoint and
155+ resolves scenario discovery, such as WebFinger and actor inbox lookup, so the
156+ printed plan shows the concrete destinations a real run would use. It does
157+ not send benchmark load.
155158
156159An ` inbox ` scenario's ` recipient ` may be a single value or a list. With a
157160list, deliveries are rotated across the recipients (and across the synthetic
@@ -241,10 +244,22 @@ belongs in a controlled environment, not a shared CI runner.
241244### Safety
242245
243246` fedify bench ` runs without friction against a loopback or private target, or
244- any target that advertises benchmark mode. A public target that does not
245- advertise benchmark mode is refused unless you pass ` --allow-unsafe-target ` ,
246- which is mandatory (never prompted) in CI and any non-interactive context. Use
247- ` --dry-run ` to print the plan without sending anything.
247+ any target that advertises benchmark mode. Hostnames are classified from their
248+ resolved addresses when possible, and DNS failures are treated as public so the
249+ gate stays conservative. A public target that does not advertise benchmark
250+ mode is refused unless you pass ` --allow-unsafe-target ` , which is mandatory
251+ (never prompted) in CI and any non-interactive context.
252+
253+ The unsafe override is deliberately narrow. It must be paired with an
254+ explicit ` --target ` on the command line, and every scenario must set its load
255+ (` rate ` or ` concurrency ` ) and ` duration ` explicitly, either in the scenario or
256+ in suite defaults. This prevents a public run from falling back to built-in
257+ defaults by accident.
258+
259+ Use ` --dry-run ` as the first step against an unfamiliar target. It performs
260+ the benchmark-mode probe and discovery requests needed to print the planned
261+ WebFinger resources and inbox destinations, but it does not send signed inbox
262+ deliveries or other benchmark load.
248263
249264### Local targets over HTTP
250265
0 commit comments