Release / release (push) Successful in 52s
Adds ruff (lint + format check) as a dev dependency and gate, applies its fixes across the codebase (modernized typing, safer zip usage, line length), and adds a Gitea Actions workflow that lints, tests, builds, and publishes to the Gitea PyPI registry on v*.*.* tag pushes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>