steam-backlog-enforcer/steam_backlog_enforcer
Krzysztof kuhy Rudnicki dbc3242c07
Some checks are pending
pre-commit / pre-commit (push) Waiting to run
Tests / test (3.10) (push) Waiting to run
Tests / test (3.11) (push) Waiting to run
Tests / test (3.12) (push) Waiting to run
fix(enforcer): defer Steam restart while a game update is in progress
Restarting Steam (steam -shutdown + relaunch for the CDP port) suspends any
in-flight game update. Repeatedly interrupting a large update — including
during the commit-to-disk phase — leaves a partially written install that
Steam's "verify integrity" still reports as OK, but the game's anti-tamper
detects and crashes on. This corrupted Age of Empires II DE (deterministic
0xc0000005 at AoE2DE_s.exe+0x29B9E3) once commit 00a08de made the enforcer's
CDP restart actually work and it began bouncing Steam mid-update.

Add steam_update_in_progress() in a new _steam_state leaf module (now the
single source of truth for STEAMAPPS_PATH, shared by game_install and
library_hider without an import cycle). It scans appmanifests for unfinished
download/stage bytes. ensure_steam_debug_port() now raises
SteamUpdateInProgressError (a SteamUnavailableError subclass, so the enforce
loop already skips + retries) and restart_steam() skips, when an update runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vw1sLrSjDksvH5zjU2RMYB
2026-07-18 15:59:47 +02:00
..
docs Fix pre-existing CI failures from the MCP-server commit 2026-07-10 23:04:07 +02:00
tests fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
__init__.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
_actions.py Add MCP server exposing the enforcer to Claude Code 2026-07-10 21:05:17 +02:00
_cmd_done.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
_enforce_loop.py fix(enforcer): idle when Steam is absent instead of crash-looping 2026-07-17 13:53:24 +02:00
_hltb_detail.py fix: HLTB count_comp=0 bug, false matches, and ProtonDB log noise 2026-05-28 20:40:51 +02:00
_hltb_search.py fix: HLTB count_comp=0 bug, false matches, and ProtonDB log noise 2026-05-28 20:40:51 +02:00
_hltb_types.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
_mcp.py Add MCP server exposing the enforcer to Claude Code 2026-07-10 21:05:17 +02:00
_scanning_confidence.py fix: HLTB count_comp=0 bug, false matches, and ProtonDB log noise 2026-05-28 20:40:51 +02:00
_stats.py Fix pre-existing CI failures from the MCP-server commit 2026-07-10 23:04:07 +02:00
_steam_state.py fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
_total_block.py feat: block-gaming purges Steam/Proton filesystem remnants + helper packages 2026-07-04 17:25:08 +02:00
_web_dataset.py Fix pre-existing CI failures from the MCP-server commit 2026-07-10 23:04:07 +02:00
_web_server.py feat: add interactive web UI for backlog completion planning 2026-05-29 18:35:45 +02:00
_whitelist.py Remove whitelist exception cooldown; approve immediately 2026-07-10 22:57:39 +02:00
config.py feat: add pick-manual command with 2-week enforcement lock 2026-05-30 17:15:37 +02:00
enforcer.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00
game_install.py fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
hltb.py feat: add pick-manual command with 2-week enforcement lock 2026-05-30 17:15:37 +02:00
library_hider.py fix(enforcer): defer Steam restart while a game update is in progress 2026-07-18 15:59:47 +02:00
main.py Remove whitelist exception cooldown; approve immediately 2026-07-10 22:57:39 +02:00
protondb.py fix: HLTB count_comp=0 bug, false matches, and ProtonDB log noise 2026-05-28 20:40:51 +02:00
scanning.py chore: set up as standalone repo 2026-05-28 07:21:29 +02:00
steam_api.py feat(steam_backlog_enforcer): harden whitelist against circumvention 2026-05-17 20:44:05 +02:00
store_blocker.py feat: add block-gaming command (Stage 4) + guard-lib migration cleanup 2026-07-04 11:45:54 +02:00