#377's first preview built, but its upload was skipped. CLOUDFLARE_API_TOKEN is scoped to the production environment, so a pull request job had none.
The Upload job now names environment: {name: production, deployment: false}, the same way Deploy's plan job reads production's secrets. A preview still makes no deployment record. production has no branch policy, so this is the same exposure as a repository secret: anyone who can push a branch here can already read secrets from a workflow on their pull request. Forks get no secrets and no preview.
This PR changes preview.yml, so its own Preview run is the first real upload.
Checks: preview.test.mjs (12), repository_workflows (24), prettier.