Repository navigation
Deregister the calibration tap and filter it from client lists; versionCode 12 - #2
Merged
guerman5 merged 2 commits intoAug 25, 2026
Merged
Conversation
…onCode 11 Wires the deregister hook capullo-audio added: after the tap process is killed, Server.DeleteClient removes it from the server, 1.5 s later so snapserver has registered the disconnect first. Without this every client-side calibration left a permanent phantom client behind. Filters the tap at both points where a server status arrives, rather than at the six places that consume the list. It is a connected client but not a speaker, so the control sheet, the connected-device count and reset-all all want it gone.
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.
Based on
settings-container-convergence(#1), so this shows only its own commits. Merge that first.A client-side calibration starts a second, silent snapclient for its reference PCM. Killing that process was never enough: snapserver keeps disconnected clients with their last-known values — the calibration's own read-back depends on it — so every run left the tap registered for ever under a fresh random id.
The rig had collected 14 orphan clients across 15 groups, one per calibration ever run, inflating
Server.GetStatusfrom 2.9 KB to 9.4 KB.Server.DeleteClientwas implemented and had no caller anywhere.What this does
capullo-audioba1ff9a's deregister hook:Server.DeleteClientonce the tap process is gone, after a 1.5 s grace so snapserver has registered the disconnect.Rig-verified on the OPPO, two consecutive runs
qctap-47d7d02bqctap-47d7d02balready aligned (Δ-16ms)already aligned (Δ-7ms)Same id both runs (the id is now derived per-device, not random), and zero orphans where before there would have been two. No
"Client not found"in either log, so the double-stop guard holds.The filter was proven by A/B rather than by absence: mid-run, on one server at one instant, the unfiltered build showed 3 client cards and the filtered build 2. The third is the tap.