Release v2.2.0
Changes
- chore: release 2.2.0 (#48)
- Merge pull request #47: clear all open CodeQL alerts
- Merge pull request #46: dependency updates, ruff consolidation, module splits, and 3 bug fixes
- Merge branch 'worktree-agent-a526fa34fde4aa4c6' into fix/codeql-log-injection
- refactor: finish the Pydantic v2 migration; make ProcessedArticles equality explicit
- test: resolve the 36 CodeQL alerts in tests/
- fix: stop /health/detailed echoing exception text; initialise NLP flag
- ci(gitleaks): ignore the one historical placeholder; fix two leftover exports
- fix: scrub request values at the 19 flagged log sites; check photo hosts properly
- fix: resolve the CodeQL alerts this PR introduced, plus two it re-surfaced
- ci(gitleaks): allow the two auth-flow fixture keys by exact value
- fix(deps): lock watchfiles 1.3.0 to match the requirements-dev.txt pin
- Merge branch 'worktree-agent-acdba07dbde01d659' into chore/deps-and-cleanup
- fix: migrate (str, Enum) classes to StrEnum; stop sending ds=DataSource.X to Google
- ci: move to cosign-installer v4.1.2, keeping cosign pinned at v2.6.5
- fix: give YouTube transcript requests a timeout; drop dead requests helper
- Merge branch 'worktree-agent-a057f960c29d1972f' into chore/deps-and-cleanup
- ci: make the full ruff rule set and ruff format blocking
- refactor: clear the remaining ruff findings; enable UP007 and B904
- fix: keep a reference to background scrape tasks; stop bare excepts eating cancellation
- ci: bump github/codeql-action v3 -> v4
- fix: resolve the 13 bandit findings that bandit 1.8 never reported
- chore: add .git-blame-ignore-revs for the ruff format commit
- style: apply ruff format across the repository
- Merge branch 'worktree-agent-a0243f75672cae5dc' into chore/deps-and-cleanup
- refactor: apply ruff safe fixes, drop unused imports, migrate deprecated Query args
- docs: archive point-in-time docs and track open improvements in ROADMAP
- docs: make contributor docs match the ruff/Python 3.14 tooling
- chore: point make lint at ruff and drop stale Python 3.11/3.12 defaults
- Merge branch 'worktree-agent-a58073f38625e7110' into chore/deps-and-cleanup
- refactor: split google_news_api and core/utils into cohesive modules
- Merge branch 'worktree-agent-a55e7b4b3f1396bb0' into chore/deps-and-cleanup
- refactor: split google_maps service and scraper into cohesive modules
- ci: bump pre-commit hook revs to their latest releases
- chore: bump starlette/uvicorn, consolidate on ruff, drop dead sync autocomplete
- ci: regenerate requirements.lock on Dependabot pull requests (#43)
- ci: assert requirements.lock carries the pins in requirements.txt (#42)
- ci: pin the image description label instead of inheriting it (#41)
- docs: add a Docker Hub overview, rather than reusing the README (#40)
Images
rainmanjam/headwater:2.2.0
ghcr.io/rainmanjam/headwater:2.2.0
- Digest:
sha256:860917602937c81853ef7eef47dfaba123f3c7cfafa9b32173f2f0df913d3452
Verify the signature
cosign verify \
--certificate-identity-regexp 'https://github.com/rainmanjam/headwater/.github/workflows/release.yml@.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
ghcr.io/rainmanjam/headwater@sha256:860917602937c81853ef7eef47dfaba123f3c7cfafa9b32173f2f0df913d3452