Embed SPA build version in Subsonic c=, drop v= from Activity History - #256
Merged
Conversation
…History Subsonic's v= is a protocol version (fixed 1.16.1) that never changes across releases, so Activity History's "poutine v1.16.1" never reflected the actual SPA build. No surveyed OSS client (Substreamer, Supersonic, Vibrdrome) embeds its release version in v= either. Embed it in c= instead (c=poutine/x.y.z) using the SPA's existing APP_VERSION, and have streamClientLabel show just clientName. closes #255
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.
Summary
v=; it's protocol-reserved everywhere. Instead, embed the SPA's actual build inc=(c=poutine/x.y.z), using the existingAPP_VERSION(frontend/src/version.ts).ActivityPage.tsx'sstreamClientLabelnow shows justclientName, ignoringclientVersion.c=—proxy.ts/federation.tshardcode fixed client names (poutine-proxy/poutine-federation) when forwarding to Navidrome, so it does not touch theREAL_PATH_CLIENTSplayer-record pinning innavidrome-native.ts(docs/pitfalls.md Ingest track paths from Navidrome sync + folder-based Unknown Album detection with read-only preview report #252). Added a pitfalls.md entry documenting this.closes #255
Test plan
pnpm verify— typecheck, lint:boundary, 786 hub + 126 frontend unit tests, all passpnpm lint— zero errors/warningspnpm test:federation— 84 Python subsonic-compat tests + tombstone-gossip integration checks, all passc=poutine/<APP_VERSION>andv=1.16.1are both sent (subsonic.test.ts)🤖 Generated with Claude Code
https://claude.ai/code/session_011Q3riZ78G26ohMgPDh8F7u