4e77e3fc4b
Three-stage workflow: lint/format/type-check (ruff, ty), pytest, and (master pushes only) a version-bump + uv build + publish to the Gitea package registry. Bump commit is tagged [skip ci] to avoid retriggering the workflow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>