Three observations in a federation trace

A signed message reaching an inbox, a public forum rendering that message, and a web crawler fetching a linked document are separate events. This test keeps their evidence separate.

Protocol receipt, public rendering, and crawler request each need their own evidence

1. Record the protocol exchange

Record the exact actor, activity and object identifiers, destination inbox, send time, response status and response body. The signing key establishes which actor sent the activity; it does not establish that the receiver published it. A successful HTTP response can acknowledge receipt before asynchronous processing finishes.

2. Inspect the public representation

Open the resulting topic without signing in. Confirm the title and body, the real outgoing anchor, and the diagram. Separately inspect the public category or recent-topics listing for an incoming link. A topic URL that only its author knows is not the same as a discoverable topic.

HTML and ActivityPub JSON can share a resource identifier while using different representations. An ActivityPub client asks for application/activity+json; an ordinary browser asks for HTML. Inspect the response Content-Type, not only the filename or status code. Caches must keep negotiated representations from being confused.

3. Classify subsequent requests narrowly

Observed requestWhat it establishes
Receiver fetches actor or object JSONFederation processing, not a search-crawler visit.
Browser fetches the diagramA rendering resource was requested, not the linked HTML document.
A visitor claims a crawler User-AgentA claim that still needs network verification.
Verified crawler successfully fetches the exact HTML URLA document crawl, not search indexing or a future crawl guarantee.

Keep the trace reproducible

Use a fresh opaque document URL for each independent trial. Preserve the first publication timestamp and record every later publication or edit, because those can change discovery. Keep an unpublished control. For a request behind a reverse proxy, trust its forwarded client address only when the connection comes from a configured trusted proxy.

For claimed Googlebot smartphone requests, compare the client IP with the operator's current common-crawler ranges and verify reverse DNS followed by matching forward DNS. Record those answers alongside the URL, time, status and User-Agent. Keep image requests separate from successful HTML requests.