Skip to content

fix(make): keep the singer's title and never split it from the audio (v0.149.3) - #315

Merged
beveradb merged 1 commit into
mainfrom
feat/sess-20261106-1906-make-wizard-keep-typed
Nov 7, 2026
Merged

beveradb merged 1 commit into
mainfrom
feat/sess-20261106-1906-make-wizard-keep-typed

Conversation

@beveradb

@beveradb beveradb commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Live 2026-11-05: a singer typed "Cole Phillips – Roll of Dice", a 2025 song with no karaoke version. gen's Gemini fallback "corrected" it to "Roll of the Dice", and the singer tapped keep what I typed. The make wizard then ran gen's AI judge again. The judge said "Roll of the Dice" once more, and applyFullVerdict applied it without a new audio search, because the results for the typed title were good (tier 2: Spotify "Roll of Dice", score 1.0). gen job f01c9997 ended up with the wrong title on the right audio.

Changes

  • sing.js makeIsKeptTyped(): after "keep what I typed", if the form still holds what the singer typed, the wizard starts trusted. Only the formatting tidy runs, not the AI judge.
  • make.js applyFullVerdict: a confident content (different-song) correction is only offered ("Did you mean…?") when the audio results already match the typed title (tier 1–2). On weak results (tier 3) it is applied with a new audio search, as before. Accepting the offer re-searches (existing acceptSuggestion).
  • make.js toggleCorrection: undo/redo of a content correction searches again for the song now shown. A formatting tidy is the same song, so it keeps its results.
  • Docs: CHANGELOG entry and SONG-IDENTIFICATION.md D14. Version 0.149.3. The test .py change triggers the restart that busts ?v=.

Companion PRs: karaoke-decide#207 (live Spotify search) and karaoke-gen#1256 (grounding rule). Those fix the source of the bad correction. This PR makes the wizard safe whatever the judge says.

Testing

  • New E2E (tests/e2e/test_sing_make_wizard.py):
    • the incident flow: resolve correction → keep typed → wizard runs only the fast check and keeps "Roll of dice";
    • strong tier + content verdict → offered, title unchanged, no second search, and accepting re-searches;
    • weak tier → applied and re-searched; undo → back to typed with its own search and no extra judge call.
  • With each fix reverted, its new test fails (checked).
  • Make-wizard E2E file: 41 passed. Full suite on the build host (scripts/kjbox-test-remote): all pass except test_routes.py::test_download_queues_item / test_download_failure_tracked, which fail the same way on main there (host environment).
  • Local CodeRabbit review: no findings.

@coderabbitai ignore

🤖 Generated with Claude Code

https://claude.ai/code/session_012RYLVUQ68KFYtZF7vEfhAq

…(v0.149.3)

Live 2026-11-05: "Cole Phillips - Roll of Dice". Gemini's "Roll of the Dice" was
undone with "keep what I typed", then the make wizard's AI judge applied it again
without re-searching, so gen job f01c9997 got the wrong title on the right audio.

- sing.js: "keep what I typed" + an unedited form starts the wizard trusted (no
  AI judge, formatting tidy only).
- make.js: a confident content correction is only offered when the audio results
  already match the typed title (tier 1-2). It is applied with a new search only
  on weak results.
- make.js: undo/redo of a content correction searches again for the shown song.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012RYLVUQ68KFYtZF7vEfhAq
@beveradb
beveradb merged commit 9dd035d into main Nov 7, 2026
2 checks passed
@beveradb
beveradb deleted the feat/sess-20261106-1906-make-wizard-keep-typed branch November 7, 2026 01:14
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