steam-backlog-enforcer/steam_backlog_enforcer
Krzysztof kuhy Rudnicki aecfd1a3a0 Split store_blocker along its one-way call boundaries
Extract only functions that call nothing else in the module: the iptables/DNS
layer and the /etc/hosts protection helpers. A two-way split here does not
work -- block_store calls _reblock_hosts while _unblock_hosts calls
is_store_blocked, so cutting between them makes the import circular. Choosing
the leaf set instead keeps every import one-way and needed almost no test
churn, where the earlier attempt cascaded into a dozen patch-target fixes.

1347 tests, 100% coverage.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016A1EYiv7e7HGhET84oa9M3
2026-08-24 15:06:15 +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 Split store_blocker along its one-way call boundaries 2026-08-24 15:06:15 +02:00
__init__.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
_actions.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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_finalize.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +02:00
_cmd_done.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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_cached.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +02:00
_hltb_confidence.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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
_hosts_protection.py Split store_blocker along its one-way call boundaries 2026-08-24 15:06:15 +02:00
_manual_pick_lifecycle.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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
_polls_reporting.py Split steam_api and _scanning_confidence under the cap 2026-08-24 14:25:43 +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 Split steam_api and _scanning_confidence under the cap 2026-08-24 14:25:43 +02:00
_stats.py Fix pre-existing CI failures from the MCP-server commit 2026-07-10 23:04:07 +02:00
_steam_api_client.py Split steam_api and _scanning_confidence under the cap 2026-08-24 14:25:43 +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_models.py Split steam_api and _scanning_confidence under the cap 2026-08-24 14:25:43 +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
_store_iptables.py Split store_blocker along its one-way call boundaries 2026-08-24 15:06:15 +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_locking.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +02:00
_whitelist.py Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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 Split _actions, _whitelist, _cmd_done and hltb under the cap 2026-08-24 14:55:57 +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 Split steam_api and _scanning_confidence under the cap 2026-08-24 14:25:43 +02:00
store_blocker.py Split store_blocker along its one-way call boundaries 2026-08-24 15:06:15 +02:00