Spotify-only rework: account selection, status/setup CLI, ~/.tapdeck config#8
Merged
Conversation
…vorites engine Adds getSpotifyAccounts (mines favorites + room queues for account serials), listRooms/connectedIp, a Zone type, and a bootstrap retry for sleeping players; removes playFavorite/playPlaylist and their radio/queue helpers.
Only spotify:/command:/room: tags are handled; adds the spotify_account_sn passthrough and reads fully-resolved settings. Removes the bundled config example (use `tapdeck setup`). BREAKING CHANGE: favorite: and playlist: tags are no longer supported.
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.
Reworks tapdeck around a streamlined Spotify-only flow with real setup/diagnostics. Split into focused commits (one logical change each) for review.
Highlights
spotify_account_sn+ discovery — pick which linked Spotify account to play from;getSpotifyAccountsmines favorites and room queues for the account serials. (Fixes a latent bug: hard-codedsn=1was wrong on multi-account systems.)tapdeck status— confirms it can reach Sonos and lists rooms (+IPs) and Spotify accounts. The pre-setup diagnostic.tapdeck setup— interactive: discovers the system, asks room + account, writes~/.tapdeck/config.json, offers pm2 autostart. A fresh install with no config runs it automatically.~/.tapdeck/config.json(or cwdusersettings.jsonfor dev); defaults + coercion centralized inresolveSettings. The bundled example file is removed in favor ofsetup+ the README schema.Café), still hand-rolled with zero runtime dependencies.status/setuprun on machines without the reader library.favorite:andplaylist:tags are no longer supported — tapdeck is Spotify-only. Spotify track/album/playlist URIs,room:, andcommand:tags are unchanged.Permissions
The binary moves from read-only to also requiring
--allow-write(setup writes config),--allow-run=pm2(optional autostart), and+HOMEenv (config location). Updated indeno.jsonandrelease.yml.Commits
style:deno fmt 2.chore(editor):VS Code config 3.build:widen permsfeat(config):settings module 5.fix(xml):numeric entities 6.refactor(nfc):lazy libpcsclitefeat(spotify):account selection 8.feat(sonos):account discovery + status helpers; drop favorites enginefeat!:Spotify-only dispatch 10.feat(pm2):autostart helper 11.feat(cli):status/setup 12.docs:Two commits are file-scoped where one file carries closely-related sub-changes (
system.tsbundles account-discovery with the favorites-engine removal;index.tsbundles status/setup/first-run) — interactive hunk-splitting wasn't available; happy to split further on request.Validation
deno fmt --check,deno lint,deno check,deno task test(41 passing) all green.statusverified live against hardware; the interactivesetup/pm2 path needs a TTY and wasn't exercised end-to-end in CI.