CI / Sync project version with tag (hand-pushed tags only) (pull_request) Skipped
CI / Publish package to Gitea package registry (pull_request) Skipped
CI / Lint (ruff check) (pull_request) Successful in 1m28s
CI / Type check (ty) (pull_request) Successful in 1m28s
CI / Format (ruff format) (pull_request) Successful in 1m28s
CI / Tests (pull_request) Successful in 3m34s
CI / Release (bump, changelog, badges, tag) on merge to master (pull_request) Skipped
Adds two Gitea Actions scheduled workflows, each opening/updating one standing pull request rather than pushing to master or opening an issue, so the existing pull_request CI (lint/format/type-check/tests) gates every change before a human merges: - deps-lock.yml (weekly, Mondays): `uv lock --upgrade` within the existing pyproject.toml constraints, PR'd on chore/uv-lock-upgrade. - deps-bounds.yml (monthly): raises pyproject.toml upper bounds that have fallen behind the latest PyPI release, re-locks, PR'd on chore/dep-bounds. torch (pinned <2.4 for portal-machine driver support), plotstyle (private index), and the giant[...] self-references are permanently excluded. Both branches are force-pushed fresh from master each run (no history accumulation, at most one open PR per job), sharing PR-upsert mechanics in deps-pr.sh. Both support workflow_dispatch for manual testing. No changes to ci.yml, release-commit.sh, .bumpversion.toml, or cliff.toml — merging either PR flows through the existing release job unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KhEer5EWzFU6NJi8hTnDe1