steam-backlog-enforcer/steam_backlog_enforcer
Krzysztof kuhy Rudnicki 919ecdfd62 Re-arm the no-library warning before install_game's early return
The one-shot latch that stops the "Steam library not initialised" warning
repeating every 3s was only cleared *after* the is_game_installed() early
return. So once Steam was signed in and a game was installed, the latch
stayed set: if the library later vanished the warning would never fire
again, and the outage would be silent.

Clear it at the top instead, before any return. Found by writing the test
for the latch's debug branch, which was the last uncovered code in the
package.

Coverage is now 100.00% (1347 tests) under .ci-mirror-venv, which is the
gate CI actually runs -- system python3 has mcp 2.0 against a pinned mcp<2,
so test_mcp*.py cannot collect there and coverage reads low.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016A1EYiv7e7HGhET84oa9M3
2026-08-24 14:04:54 +02:00
..
docs feat(enforcer): raise manual pick cap from 2 to 3 concurrent games 2026-07-23 18:05:29 +02:00
main Split main.py (1076 lines) into a main/ package 2026-08-23 19:56:34 +02:00
tests Re-arm the no-library warning before install_game's early return 2026-08-24 14:04:54 +02:00
__init__.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
_actions.py fix(game_install): refuse to delete folders matching an allowed game's name 2026-07-25 15:50:29 +02:00
_allowed_games.py fix(game_install): refuse to delete folders matching an allowed game's name 2026-07-25 15:50:29 +02:00
_cdp.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_cmd_done.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
_cmd_playtime.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_desktop_env.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_echo.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_enforce_loop.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_enforce_steps.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_game_names.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +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_actions.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_mcp_gaming_time.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_mcp_query.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_mcp_server.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_mcp.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_owned_apps_cache.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_pacman.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_block.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_budget.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_cutoff.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_kill.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_mountinfo.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_notify.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_playtime_procs.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_run.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime_state.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_playtime.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_protected_apps.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +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_client.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_steam_errors.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_steam_launch.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_steam_process.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_steam_state.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
_total_block_domains.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_total_block_hosts.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_total_block_iptables.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_total_block_launchers.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_total_block_purge.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_total_block.py Split total-block, playtime and MCP by responsibility 2026-08-23 20:52:08 +02:00
_web_dataset.py feat(enforcer): allow two concurrent manual picks 2026-07-19 17:28:23 +02:00
_web_server.py feat: add interactive web UI for backlog completion planning 2026-05-29 18:35:45 +02:00
_whitelist.py perf(whitelist): only shell out to chattr when the immutable flag differs 2026-07-25 20:15:12 +02:00
config.py Add a daily gaming-time budget with a binary-level cutoff 2026-08-04 20:00:08 +02:00
enforcer.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +02:00
game_install.py Re-arm the no-library warning before install_game's early return 2026-08-24 14:04:54 +02:00
game_uninstall.py Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +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 Stop the enforcer launching Steam and notifications as root 2026-08-24 13:55:44 +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