Skip to content

chore: harden automation and refresh project documentation - #10

Merged
TrapEmAll merged 1 commit into
mainfrom
agent/repository-quality-and-docs
Jul 23, 2026
Merged

chore: harden automation and refresh project documentation#10
TrapEmAll merged 1 commit into
mainfrom
agent/repository-quality-and-docs

Conversation

@TrapEmAll

Copy link
Copy Markdown
Owner

Summary

This pass turns the newly expanded UnityScraper codebase into a cleaner, safer, and more maintainable project for contributors and release users.

  • rewrites the README and advanced documentation around the current Library, Knowledge, Backup, CLI, API, and packaging workflows
  • adds architecture, API, changelog, contribution, security, conduct, and license documentation
  • adds Windows/Linux CI, Windows executable smoke builds, Dependabot, version consistency checks, and tag-driven release packaging with SHA-256 checksums
  • removes generated binaries, local portable-mode state, duplicate dependency notes, and obsolete integration summaries from source control
  • repairs the Windows setup and launcher scripts and makes the canonical PyInstaller build reproducible
  • hardens the REST API with localhost defaults, token requirements for remote binding, restricted CORS, input limits, safe configuration allowlists, and generic server errors
  • hardens backup copy/export behavior against path escapes, unsafe destinations, conflicting existing files, and abandoned FTP partial uploads
  • fixes delayed Tk error callbacks, update-check result handling, checksum imports, and zero-time ETA calculations
  • removes import-time writes to the user profile so modules and tests can be imported safely

Migration notes

  • portable.mode is no longer committed. Source checkouts now use %LOCALAPPDATA%\UnityScraper by default. Users who want portable storage can create an empty portable.mode file beside the application or set UNITYSCRAPER_PORTABLE=1.
  • Existing portable data under UnityScraperData is not moved automatically.
  • dist/UnityScraper.exe is removed from Git history going forward. Release binaries should be downloaded from GitHub Releases or generated by the documented build script.
  • Remote API bindings now require UNITYSCRAPER_API_TOKEN or --api-token. Localhost operation remains straightforward and /api/health remains unauthenticated.
  • The project is declared GPL-3.0-only. Imported source material retains its own attribution and licensing metadata.

Source and transport considerations

  • XboxUnity remains explicitly HTTP-only. This change does not add, prefer, or advertise HTTPS for XboxUnity endpoints.
  • ConsoleMods, XenonLibrary, Free60, Redump, and No-Intro data remain source-attributed through the normalized knowledge model; this pass documents those boundaries and does not redistribute game content, firmware, keys, or SDK material.

Validation

  • Ruff high-confidence checks: passed
  • Python compile check: passed
  • Core tests: 53 passed
  • Integration tests: 31 passed
  • Version consistency: 0.10.0b1 passed
  • Windows PyInstaller one-file build: passed
  • SHA-256 checksum generation: passed
  • local Markdown link validation: passed

Next steps

  • continue expanding structured XenonLibrary and Free60 parsers while preserving revision provenance and source licenses
  • add user-selected Redump and No-Intro DAT import workflows with field-specific conflict resolution
  • add signed release artifacts and a formal upgrade/migration assistant
  • split the legacy monolithic test files into focused offline unit and integration suites

Secure the local API and backup paths, fix runtime edge cases, and remove import-time user-data side effects. Add CI, release automation, version checks, community files, and a complete documentation refresh. Remove generated binaries, local portable state, and obsolete integration notes from source control while preserving XboxUnity's HTTP-only transport.
@TrapEmAll
TrapEmAll marked this pull request as ready for review July 23, 2026 13:41
@TrapEmAll
TrapEmAll merged commit 8d74eb1 into main Jul 23, 2026
5 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