0d451ac584
release.yml triggers on every v* tag push and the four publish jobs (crates.io, PyPI, npm, wasm) inject long-lived registry tokens straight from secrets with no environment, no reviewer and no tag restriction. Bind all four jobs to a `release` GitHub environment. With the environment's protection rules (required reviewers, tag/branch restrictions) configured under repo Settings -> Environments, the registry secrets become reachable only from an approved release run rather than from any workflow execution.