You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update loop no longer fires every hour. The wrapper now refreshes SteamCMD's app info (+app_info_update 1) before reading the public-branch buildid, and only records an update as applied / sends the ✅ message when the installed build in appmanifest_4019830.acf actually matches Steam's. When SteamCMD reports success without changing the build, the stale-cache condition is logged clearly and the next attempt backs off exponentially instead of restarting the server every hour.
Player tracking now uses stable account IDs instead of display names, so idle detection (auto-updates and scheduled backups) works even when a player's Steam name differs from their in-game character name. Joins use Player ADDED to session [<id>]-[<name>] (with PlayerChar entered world as a fallback); leaves use Player Removed from session [<id>] (with ClientRequestDisconnect ... Account[XP:<id>] as a fallback). Add/remove are idempotent, so duplicate log lines and reconnects can't double-count or leave ghost players.
First-install verification. A silent SteamCMD failure (exit 0 with no files installed) is now detected: the wrapper verifies the app manifest's buildid and the server binary after every attempt, retries all 5 attempts, sends a failure notification, and exits so Docker can retry instead of reporting a successful install that never happened.
🧪 Testing
Four regression suites under scripts/tests/ covering player tracking (including the Steam-vs-character-name mismatch), update-helper parsing/verification/backoff, the real run_update flow with a fake SteamCMD, and the real first-install flow.
New GitHub Actions workflow (.github/workflows/test.yml) runs all four suites on every push and pull request.
CI "Shell tests" run passed on both main and the v0.5.0 tag.
📖 Docs
README.md and dockerhub.md updated with the new install-verification and idle-detection behavior; version history entry added for v0.5.0.