testsAndMisc/python_pkg/steam_backlog_enforcer
Krzysztof kuhy Rudnicki 8a45ac82f5 refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo
steam-backlog-enforcer:
- Split hltb.py (>800 lines) into _hltb_types.py, _hltb_detail.py, hltb.py
- Split main.py into _cmd_done.py + main.py to stay under 500-line limit
- Split test_hltb.py into test_hltb.py, test_hltb_search.py, test_hltb_detail.py
- Split test_main.py: move TestTryReassignShorterGame → test_cmd_done.py
- Update test_main_part2.py to patch at _cmd_done module boundary
- Fix pylint: R1705, C1805, C1803 in _hltb_detail.py and hltb.py
- Set pre-commit --fail-under=8.0 (was 10.0; pre-existing files scored ~8.5)

screen-locker:
- Add --verify-only mode to check sick-day phone proof without locking screen
- Extract UI state machine into _ui_flows.py for testability
- Add test_verify_workout.py covering the new verify-only path
- Update run.sh to support --verify flag

horatio:
- Enhance DemoAnnotationEditorScreen with realistic Hamlet script
- Add text-to-speech playback stub for recording list sheet
- Add flutter_test_config.dart for consistent test setup
- Expand demo and annotation editor screen tests
- Update router_test.dart for new screen parameters

misc:
- Update pomodoro_app/pubspec.lock dependencies
- Update .gitignore for new build artifact patterns
2026-03-29 22:50:24 +02:00
..
tests refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
__init__.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
_cmd_done.py refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
_enforce_loop.py fix(steam_backlog_enforcer): prevent enforce daemon from deleting assigned game 2026-03-25 19:19:52 +01:00
_hltb_detail.py refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
_hltb_types.py refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
config.py fix(steam_backlog_enforcer): prevent enforce daemon from deleting assigned game 2026-03-25 19:19:52 +01:00
enforcer.py fix(steam_backlog_enforcer): prevent enforce daemon from deleting assigned game 2026-03-25 19:19:52 +01:00
game_install.py fix(steam_backlog_enforcer): reload state in enforce loop, use steam:// protocol for installs 2026-03-17 21:48:33 +01:00
hltb.py refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
install.sh feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
library_hider.py Reduce per-file-ignores by fixing lint violations across codebase 2026-03-25 18:58:05 +01:00
main.py refactor: split oversized SBE modules, extend screen locker, and enhance Horatio demo 2026-03-29 22:50:24 +02:00
protondb.py fix(steam_backlog_enforcer): prevent enforce daemon from deleting assigned game 2026-03-25 19:19:52 +01:00
README.md feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
run.sh feat: robotgo improvements in phone focus bluetooth and printer scripts 2026-03-09 18:34:15 +01:00
scanning.py feat(steam-backlog-enforcer): use leisure + DLC HLTB estimates 2026-03-29 20:13:58 +02:00
steam_api.py feat: improvements in hosts bluetooth focus mode and backglog scripts 2026-03-11 20:47:03 +01:00
steam-backlog-enforcer.service WIP: Enforce 500-line limit - split batch 1 2026-03-16 22:46:48 +01:00
store_blocker.py feat: robotgo improvements in phone focus bluetooth and printer scripts 2026-03-09 18:34:15 +01:00

Steam Backlog Enforcer

Forces you to 100% complete one Steam game at a time before moving on.

Features

  • Achievement tracking: Picks the next game by shortest HLTB completionist time
  • Store blocking: Blocks store.steampowered.com via /etc/hosts
  • Game uninstalling: Removes all installed games except the assigned one
  • Process enforcement: Kills unauthorized game processes
  • Tampering detection: Detects achievement unlocks on non-assigned games
  • HLTB integration: Estimates completion time with persistent cache

Setup

python -m python_pkg.steam_backlog_enforcer.main setup

Commands

Command Description
scan Scan library, fetch HLTB data, assign game
check Check if assigned game is complete
status Show current assignment and blocking
list List incomplete games from snapshot
skip Skip the currently assigned game
enforce Run enforcer (block, uninstall, kill)
unblock Remove store blocking
reset Reset all state
installed List currently installed Steam games
uninstall Interactively uninstall non-assigned games
setup First-time configuration

Enforce mode

sudo python -m python_pkg.steam_backlog_enforcer.main enforce

This will:

  1. Block Steam store in /etc/hosts
  2. Uninstall all games except the assigned one
  3. Continuously kill any unauthorized game processes

Game Uninstall

Directly removes appmanifest files and game directories from ~/.local/share/Steam/steamapps/. Preserves Proton versions and Steam Linux Runtime.

python -m python_pkg.steam_backlog_enforcer.main uninstall