When multiple users accept the same unlimited invite code, the user lookup
after a successful join used `filter_by(code=...).first()`, which always
returned the first user who ever used that code on the server — not the
user who just signed up. Subsequent users were never inserted into
invitation_users, so the home page card only ever showed the first acceptee.
Fix: look up the newly created user by username (unique per server) so each
acceptance is correctly attributed.
Add a regression test that asserts all users appear in invite.users after
multiple acceptances of an unlimited invite.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: add requests.exceptions import in Audiobookrequest and Ombi clients
fix: ignore type errors in invitation unit tests for library and server associations
fix: use timezone-aware datetime for export dates in WizardExportImportService
- Add Release Please GitHub Action workflow for automated releases
- Configure conventional commits with commitizen for local enforcement
- Update pyproject.toml version to current 2025.8.3
- Add release-please-config.json and manifest for version management
- Fix Ruff linting issues (exception chaining and unnecessary assignment)
- Update CLAUDE.md documentation with release automation workflow
- Maintain compatibility with existing release.yml Docker builds
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>