Skip to content

Add safe local song import and metadata truth UI - #42

Closed
Baltsat wants to merge 2 commits into
tonygoldcrest:mainfrom
Baltsat:codex/import-metadata-truth
Closed

Add safe local song import and metadata truth UI#42
Baltsat wants to merge 2 commits into
tonygoldcrest:mainfrom
Baltsat:codex/import-metadata-truth

Conversation

@Baltsat

@Baltsat Baltsat commented Jul 27, 2026

Copy link
Copy Markdown

What this adds

  • a prepared-song import flow: choose a Clone Hero folder, validate chart/audio/drum difficulties, review metadata and artwork, then add it to the selected library
  • cover ingestion that preserves an existing manual cover, extracts embedded artwork, or accepts an explicit HTTPS image URL when the user has permission to cache it
  • separate Auto-charted with STRUM provenance instead of displaying the AI engine as a human charter
  • clear score-star semantics: unplayed charts say play once to earn stars; played charts expose their best accuracy to assistive technology and in a tooltip
  • normalized local search across name, artist, album, charter, and auto-chart tool
  • normalized exact-field ranking for Enchor results, plus a clear fuzzy-only notice
  • a short settings hint showing where the installed stem splitter is actually used

Safety and compatibility

  • imports prepared local chart folders only; there is no streaming-service or YouTube media extraction
  • existing library folders are never overwritten or removed on a name collision
  • source folders inside the library, source folders containing the library, and symbolic links are rejected
  • imported AI provenance is normalized in the copied song.ini; the source folder is not changed
  • manual album art is never overwritten
  • remote artwork is optional, HTTPS-only, image-typed, size-limited, and framed as owned/permitted artwork

Proof

  • yarn test — 58 files, 705 tests passed
  • yarn lint — passed
  • yarn test:e2e — production build plus 3/3 Electron/Playwright tests passed
  • the E2E flow validates a prepared auto-chart, imports it, confirms the .sightkick sidecar and cover, searches it by STRUM, and verifies the provenance and score copy

The two commits are intentionally reviewable in order: the filesystem/IPC foundation first, then the renderer UX and E2E coverage.

Baltsat added 2 commits July 27, 2026 11:03
Validate and copy prepared chart folders, preserve manual artwork, ingest embedded or explicitly permitted covers, and normalize AI provenance without deleting colliding library data.

User-Request: add a reversible SightKick import foundation with cover and provenance repair | codex:019fa139-029e-7613-9be1-6a8ef299c61f
Show prepared-song validation before import, separate auto-chart provenance from human authorship, explain score stars, expand normalized local search, and rank exact online matches ahead of fuzzy results.

User-Request: make SightKick import, provenance, score stars, and search understandable | codex:019fa139-029e-7613-9be1-6a8ef299c61f
Copilot AI review requested due to automatic review settings July 27, 2026 03:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@tonygoldcrest

Copy link
Copy Markdown
Owner

Hey! Thanks for the PR.
It seems that it aims to implement multiple features.

Please, split it into multiple per-feature PRs so I have an easier time reviewing and testing them.

@Baltsat

Baltsat commented Jul 28, 2026

Copy link
Copy Markdown
Author

Split into the two independently reviewable PRs requested:

Both replacements target main directly, have one coherent feature each, and include their own tests and E2E proof. Closing this combined PR to avoid duplicate review.

@Baltsat Baltsat closed this Jul 28, 2026
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.

3 participants