The publish workflow uploaded on any pyproject.toml change reaching main, so a keywords or description edit sent the same version to the Registry again, a manual run could publish from any branch, and nothing required validation to pass first. It now compares the version with the previous commit, runs only on main, runs the offline checks, and publishes after they pass.