Things to try
Each one below has been run against this deployment. Open the stream — it opens in a new tab — then work through them.
1 · Just load a page
MeasuredYou have already done this. Your own arrival is in the stream, classified as an ordinary browser session.
expect → browser · human-visit · counts as a session
The label says “human, or an agent we cannot detect”, because an agent driving your own browser would be indistinguishable from you.
2 · Forge an agent identity
Recorded, not countedThe case a sceptical reader will try, and the one most tooling silently counts. Claim to be ChatGPT-User from an address OpenAI does not publish.
curl -s -o /dev/null -A 'Mozilla/5.0 (compatible; ChatGPT-User/1.0; +https://openai.com/bot)' \
https://www.bondi.casa/rooms/harbour-suite
That is a page view, so it appears in the stream — under Show all traffic, since an unproven claim is not AI acting for a person. To read the whole record as JSON, send the same header to /api/whoami, which classifies its caller and returns the record in the response body. It is deliberately not published: it is a diagnostic, not a page view.
curl -s -A 'Mozilla/5.0 (compatible; ChatGPT-User/1.0; +https://openai.com/bot)' \
https://www.bondi.casa/api/whoami | jq '.classification | {actor, identity, metric}'expect → unverified-claim · identity verdict unverified · RECORDED_NOT_COUNTED
The evidence trail shows the range check running and failing. The claim is kept in full; it enters no metric.
3 · Ask an assistant to open this page
MeasuredPaste https://www.bondi.casa/rooms/harbour-suite into ChatGPT, Claude, Perplexity or Gemini and ask it to summarise the room. The fetch arrives from the operator's own infrastructure with a declared user-agent.
expect → declared-agent · purpose user-fetch · counts as exposure, not a visit
Identity is circumstantial via published IP range for most operators, because the fetch agents do not sign. Only Google-Agent signs, and only on a subset of requests.
This is the one trial that lands in the stream's default view — a real assistant fetching a real page on behalf of a real person is exactly what that view is for.
4 · Open the link from inside an assistant's mobile app
EstimatedAsk the app about this property on a phone, then tap through. The app's embedded browser identifies itself in the user-agent.
expect → in-app-browser · counts as a session · source attributed to the app
Tagged estimated rather than measured, because our pattern for that app is still provisional — see the registry below. It becomes measured once a real arrival validates it.
5 · Watch a training crawler get excluded
Recorded, not countedGPTBot is a training crawler: real, verifiable, and excluded from attribution on purpose, because it carries no user. Run the command and you get the other lesson first.
curl -s -o /dev/null -A 'Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)' \
https://www.bondi.casa/journal
# and to read the record itself:
curl -s -A 'Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)' \
https://www.bondi.casa/api/whoami | jq '.classification.purpose, .classification.metric'
expect → unverified-claim · purpose unknown · RECORDED_NOT_COUNTED
Not the training exclusion — your address is not in OpenAI's published GPTBot range, so the claim fails before purpose is ever consulted. Purpose is only read off an identity that survived verification.
To see the exclusion itself, use the GPTBot preset in the simulator below, which supplies an address from inside the published range. It classifies as declared-agent · training · MEASURED · counts as nothing. Measured and excluded are different states: the record does not disbelieve a verified crawler, it declines to count it.
6 · Send a signature that does not verify
Recorded, not countedStructurally valid Web Bot Auth headers with nothing behind them.
curl -s https://www.bondi.casa/api/whoami \
-H 'signature-agent: "https://chatgpt.com"' \
-H 'signature-input: sig1=("@authority" "@method" "@path" "signature-agent");created=1;expires=99999999999;keyid="nope";alg="ed25519";tag="web-bot-auth"' \
-H 'signature: sig1=:AAAA:' | jq '.classification.identity, .classification.metric'expect → identity unverified · RECORDED_NOT_COUNTED
The verifier fetches OpenAI's real key directory, finds no key that produces a valid signature, and says so. A directory it cannot reach is reported as unavailable instead — our gap, not evidence against the caller.
7 · Click through to the booking engine
MeasuredCheck availability, search, and watch the booking-intent record appear. Then look at what the engine received.
expect → booking intent with stay dates, party size and the source the edge assigned
The same page demonstrates the failure case: a cross-origin widget whose state genuinely cannot be read.