testsAndMisc/docs/superpowers/contracts/steam-library-hide-fix-2026-05-17.json
Krzysztof kuhy Rudnicki 61a9e5dc3c steam_backlog_enforcer: fix library_hider crash on invalid AppIDs + improve HLTB hour extraction
- library_hider.py: add safeHide(ids) JS helper that binary-bisects on failure
  to skip problematic DLC/tool IDs without blocking the entire hide pass
- library_hider.py: increase CDP timeout 30s -> 120s; extract richer CDP error
  details from exceptionDetails/exception.description
- _hltb_detail.py: rewrite _extract_base_leisure_hours() to pick the maximum
  (slowest) time across all platform comp_high values and *_h fields; add
  _platform_comp_high_candidates() helper
2026-05-22 15:59:18 +02:00

17 lines
1.2 KiB
JSON

{
"title": "Fix Steam library hider crash on invalid AppIDs",
"objective": "hide_other_games() crashes with RuntimeError 'JS evaluation error: Unknown JS error' because SetAppsAsHidden() throws in Steam's AddApps internals when fed AppIDs that are not recognised game entries (e.g. DLC/tool IDs returned by get_all_owned_app_ids via include_played_free_games). The fix makes the JS resilient via a safeHide() binary-search fallback that silently skips rejected IDs, and improves error reporting so future JS failures show the real exception message.",
"acceptance_criteria": [
"hide_other_games() completes without RuntimeError when owned list contains invalid AppIDs",
"Valid game IDs are still hidden correctly",
"Invalid/unrecognised AppIDs are silently skipped (not fatal)",
"CDP exception messages include the actual JS error text instead of 'Unknown JS error'",
"All 590 existing tests continue to pass at 100% coverage"
],
"out_of_scope": [
"Filtering invalid AppIDs on the Python side before passing to JS",
"Changing which AppIDs get_all_owned_app_ids() returns"
],
"verifier": "python -m pytest python_pkg/steam_backlog_enforcer/tests/ -x -q && pre-commit run --files python_pkg/steam_backlog_enforcer/library_hider.py"
}