Releases: Sjeff/SteamSelfGifter
Releases · Sjeff/SteamSelfGifter
v3.0.5
[3.0.5]
Fixed
PendingRollbackErrorin the safety checker when the SQLite database is locked — addedsession.rollback()in the except block before re-using the session, preventing the fallback commit from also failingTypeError: can't compare offset-naive and offset-aware datetimeswhen entering a giveaway —update_win_check_for_new_entrynow compares both datetimes as timezone-aware, consistent with theTZDateTimefix introduced in v3.0.4
v3.0.4
Bug fixes
- Fixed automation cycle crash when the Steam API returns no review data
Code quality
- Replaced deprecated `datetime.utcnow()` with `datetime.now(timezone.utc)` across 21 source files and 19 test files
- Added `TZDateTime` TypeDecorator to re-attach UTC timezone on SQLite read
- Fixed CI running 4 jobs per PR instead of 2
v3.0.3
v3.0.3
Bug fixes
- Fixed "Failed to load wins" error on accounts with an expired SteamGifts session — read-only pages (Wins, Giveaways) now work
regardless of session state - Corrected misleading label "Min Game Price ($)" → "Min Giveaway Cost (points)" on the Accounts page
CI/CD
- Docker image is now only built and published on merge to master or version tag — no more redundant builds on PRs
- Switched frontend Docker build stage from
node:24-alpinetonode:24-slimto fixnpm cifailure caused by TailwindCSS v4's
native Rust binary not supporting Alpine's musl libc
Dependency management
- Added Dependabot for weekly automated dependency updates (npm, pip, Docker, GitHub Actions)
v3.0.2
v3.0.1
feat: v3.0.1 — activity logs, automation fixes, scan staggering
Activity Logs:
- Show all accounts' logs in one combined view (no account filtering)
- Account badge per log entry to identify the source account
- Backend log endpoints are permanently unscoped (account switching has no effect)
Automation:
- Fix: Accounts page play button now correctly reflected on Dashboard
- Dashboard uses global scheduler status instead of per-account status
Rate limiting & scan staggering:
- 5-minute start offset per additional account to prevent simultaneous scans
- Staggering applied both on startup and when manually starting automation
- 1-second delay between page requests within a single scan
Docs:
- Updated README with v3.0.1 changelog
- Added multi-account scan interval warning table to Configuration section
Co-Authored-By: Claude
v3.0.0 Multi-account support
v3.0.0
All changes in this release were made in collaboration with Claude (Anthropic).
Multi-account support
- Added full multi-account management: create, rename, delete, and switch between accounts
- Account switcher in the sidebar with automation status indicator
- Accounts page with expandable rows for credentials, settings, and per-account scheduler controls
- Default account promotion when the current default is deleted
Per-account settings
- All settings (DLC, Safety Detection, Auto-Join Rules, Scheduler interval, Rate Limiting) are now configurable per account
- Removed the global Settings page from the navigation; all configuration lives on the Accounts page
- New accounts are created with sensible defaults
Security
- Session cookies (PHPSESSID) are no longer exposed in list API responses; replaced with a
has_credentialsboolean flag set_defaultaccount operation is now atomic (two SQLUPDATEstatements) to prevent race conditions
Automation
- Scheduler jobs are automatically cleaned up when an account is deleted
- Per-account scheduler endpoints: start, stop, run cycle, scan, process, sync wins
Frontend improvements
- Optimistic cache updates: all account mutations update the UI immediately without a full refetch
- Version number (
v3.0.0) shown at the bottom of the sidebar, sourced from the rootpackage.json
Version management
- Single version number (
3.0.0) shared between backend (pyproject.toml) and frontend (rootpackage.jsonread via Vitedefine)
Docker
- Backend process now runs as a non-root
appuserinside the container - Added
stopwaitsecs=30to supervisord for graceful shutdown of in-flight requests - Stage 3 copies backend source from the build stage instead of re-sending from the build context
docker-compose.ymlis now for external deployments (pulls fromghcr.io/sjeff/steamselfgifter:latest)docker-compose.dev.ymlis for local development (builds from source)
CI/CD
- Added GitHub Actions workflow for automated Docker image publishing to
ghcr.io - Images are tagged with
lateston push tomaster, and semver tags (3.0.0,3.0,3) on git tags
Bug fixes
- "Session Not Configured" banner now links to the Accounts page instead of the removed Settings page
- Default account credentials section auto-expands when navigating from the setup banner