Repository navigation
Explain autopilot picks in the UI (MAD-760) - #52
Merged
Merged
Conversation
People forgive picks they understand. Each DJ pick now carries a short
reason and the music knowledge it came from, shown on now playing, up
next and the big screen.
- AutopilotInfo gains Summary and Source, written when autopilot picks:
"Because Sam's Radiohead → Portishead (similar 0.82)", "A top song by
Radiohead, an artist the room loves", "Bridging Sam's Radiohead and
Jo's Massive Attack", deep cuts, songs like a member's, throwbacks.
Source names the knowledge sources ("Last.fm, Deezer").
- The API's AutopilotPick has them as reason and source.
- The web app shows the reason in place of "Like {seed}" when there is
one: in up next, under the title in the now playing sheet (with its
source), and on /tv, both for the song playing and in up next.
- ADR 0012 notes it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
People forgive picks they understand. Each DJ pick now carries a short reason and where the knowledge came from, and the app shows them. Phase 7, stage 4.
Server
queue.AutopilotInfogetsSummaryandSource. Autopilot writes them when it picks a song (autopilot/explain.go):Picks with no member behind them say "the room's Radiohead".
Sourcelists the music knowledge sources, e.g. "Last.fm, Deezer".The API's
AutopilotPickhas newreasonandsourcefields. Songs a service recommended or that were picked at random don't have them, and still read "Like {seedTitle}".Summaries use members' display names as they were when the song was picked.
Web
autopilotReasonprefers the DJ's reason. The newautopilotSourcereturns "via Last.fm, Deezer"./tv: the reason and source show next to the Autopilot mark for the song playing, and a reason line is added on autopilot cards in up next.Tests
TestExplaincovers each kind of pick.TestDJPicksFromTheGraphchecks that the summary and source are stored.autopilot.test.tscovers the reason and source helpers.go test -race ./...passes,golangci-lintreports 0 issues, and the web suite (169 tests),tsc -bandoxlintare clean.🤖 Generated with Claude Code