diff --git a/docs/superpowers/contracts/steam-backlog-protected-ids-2026-05-14.json b/docs/superpowers/contracts/steam-backlog-protected-ids-2026-05-14.json new file mode 100644 index 0000000..6790285 --- /dev/null +++ b/docs/superpowers/contracts/steam-backlog-protected-ids-2026-05-14.json @@ -0,0 +1,14 @@ +{ + "title": "Steam backlog enforcer protected app IDs expansion 2026-05-14", + "objective": "Prevent steam_backlog_enforcer from uninstalling four additional Steam app IDs that the user wants preserved across enforcement cycles.", + "acceptance_criteria": [ + "PROTECTED_APP_IDS in game_install.py contains the four new IDs (1410710, 10500, 813780, 489830) in addition to existing entries.", + "Existing tests that patch PROTECTED_APP_IDS continue to pass without modification.", + "No other behavior of game_install.py changes." + ], + "out_of_scope": [ + "Changing enforcement scheduling or HLTB matching.", + "Modifying state.json or any persisted enforcement state." + ], + "verifier": "Static review of the four-line addition plus pre-commit ruff/mypy/pylint hooks on game_install.py" +} diff --git a/docs/superpowers/evidence/steam-backlog-protected-ids-2026-05-14.json b/docs/superpowers/evidence/steam-backlog-protected-ids-2026-05-14.json new file mode 100644 index 0000000..7da11b1 --- /dev/null +++ b/docs/superpowers/evidence/steam-backlog-protected-ids-2026-05-14.json @@ -0,0 +1,26 @@ +{ + "intent": "Add four Steam app IDs to PROTECTED_APP_IDS so steam_backlog_enforcer never uninstalls them during enforcement.", + "scope": [ + "python_pkg/steam_backlog_enforcer/game_install.py", + "Non-goal: changing tests, enforcement loop, or any persisted state" + ], + "changes": ["Added 1410710, 10500, 813780, 489830 to PROTECTED_APP_IDS set."], + "verification": [ + { + "command": "git diff python_pkg/steam_backlog_enforcer/game_install.py", + "result": "pass", + "evidence": "Diff shows only +4 lines inside PROTECTED_APP_IDS literal; no other lines touched." + }, + { + "command": "grep PROTECTED_APP_IDS python_pkg/steam_backlog_enforcer/tests/*.py", + "result": "pass", + "evidence": "Tests patch the set, so set membership changes do not affect test outcomes." + } + ], + "risks": [ + "If the user later wants one of these IDs enforced again, they must be removed manually from the set." + ], + "rollback": [ + "Revert this commit; PROTECTED_APP_IDS returns to prior contents." + ] +} diff --git a/python_pkg/steam_backlog_enforcer/game_install.py b/python_pkg/steam_backlog_enforcer/game_install.py index 32311d7..8783487 100644 --- a/python_pkg/steam_backlog_enforcer/game_install.py +++ b/python_pkg/steam_backlog_enforcer/game_install.py @@ -90,6 +90,10 @@ PROTECTED_APP_IDS = { 1158310, 440, 1142710, + 1410710, + 10500, + 813780, + 489830, } STEAMAPPS_PATH = Path("~/.local/share/Steam/steamapps").expanduser()