Skip to content

feat: add offline XboxUnity title autocomplete - #20

Merged
TrapEmAll merged 1 commit into
mainfrom
feature/xboxunity-title-autocomplete
Jul 24, 2026
Merged

feat: add offline XboxUnity title autocomplete#20
TrapEmAll merged 1 commit into
mainfrom
feature/xboxunity-title-autocomplete

Conversation

@TrapEmAll

Copy link
Copy Markdown
Owner

Summary

  • fixes the Library game-name column so missing names display as Unknown game instead of duplicating the TitleID
  • adds a persistent XboxUnity title catalog with local name/TitleID search, ranking, source payloads, sync history, and stale-cache detection
  • refreshes the full catalog in a background thread when missing or older than seven days
  • adds an Add Games autocomplete popup showing game name, TitleID, and title type
  • safely enriches only blank, unknown, or TitleID-shaped library names and preserves known/user-provided names
  • adds manual UI and --sync-title-catalog refresh paths
  • closes LibraryService SQLite handles immediately after queries
  • documents the workflow and changelog entries

Migration

Schema migration 5 creates xboxunity_title_catalog and xboxunity_catalog_sync_runs. The migration is additive. Existing library rows are not rewritten unless their name is blank, unknown, or exactly equal to their TitleID.

XboxUnity transport

All XboxUnity requests remain explicitly HTTP-only. The catalog service rejects a non-HTTP XboxUnity base URL and tests enforce this constraint.

Validation

  • 71 tests passed
  • Ruff passed across the repository
  • focused mypy check passed for title_catalog.py
  • compileall and desktop import smoke checks passed
  • live temporary-database sync completed all 52 pages and cached 5,159 titles
  • local autocomplete returned Halo 3 - 4D5307E6 [360]

Notes

XboxUnity remains an independent service. The application stores returned metadata and source URLs locally, rate-limits catalog pagination, refreshes no more than weekly by default, and preserves the last usable cache if a refresh fails.

@TrapEmAll
TrapEmAll marked this pull request as ready for review July 24, 2026 02:20
@TrapEmAll
TrapEmAll merged commit 7517777 into main Jul 24, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant