# Privacy

This is a personal site operated by Edward Tadros through Proticom. It is hosted on Cloudflare Workers. This page describes what the site actually does with requests; there is no advertising, no analytics SDK, and no sale of data.

## What the site stores

- **A session cookie (`ps`)** set when you use the compiler on the home page. It carries a random session id and a count of images generated this session so the per-session image cap can be enforced. It is signed, contains nothing that identifies you, and is not used for tracking across sites.
- **Generated images** are stored in Cloudflare R2 keyed by a content hash so repeated requests are served from cache. They contain no visitor data.
- **Rate-limit counters** keyed by IP address live only in Cloudflare's rate-limiting service for the length of the window (60 seconds).
- **Optional OAuth registration metadata** is stored in Cloudflare D1: the agent name, redirect URIs, registration state and expiry, one-time identifiers, hashed claim/authorization credentials, hashed OAuth rate-limit actors, and access-token revocations retained only until token expiry. Unclaimed registrations expire after 24 hours, claimed registrations after at most 30 days, and scheduled cleanup removes expired rows.

## What the site reads but does not keep

- The greeting on the home page uses the **city and timezone Cloudflare attaches to the request** at the edge. Nothing is looked up or written; the values are rendered once into the page and discarded.
- Home-page compile requests are protected by **Cloudflare Turnstile**, which may set its own cookies according to Cloudflare's privacy policy.

## Model requests

Questions typed into the compiler, or sent to `/api/v1/ask`, are forwarded to a third-party model (Anthropic, OpenAI, or xAI) through Cloudflare AI Gateway together with excerpts of the public dossier. Cloudflare AI Gateway keeps request logs for operational monitoring and spend control. Do not include personal or confidential information in questions; the site does not need it to answer.

## Contact and changes

Questions about this policy go to etadros@proticom.com. Material changes are reflected on this page; the dossier's generated timestamp (2026-08-28) indicates the last content rebuild.
