Repository navigation
ChannelNaming owns saved names and mid-Take renames and re-patches (#557, 2 of 2) - #963
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…ches during a Take; the Recorder only calls it (#557, 2 of 2) Assisted-by: Claude Code:claude-sonnet-5-5
Skeyelab
force-pushed
the
refactor/557-channel-naming
branch
from
October 27, 2026 03:23
eb81898 to
5c2006d
Compare
Skeyelab
changed the base branch from
refactor/557-availability-level
to
main
October 27, 2026 03:23
Skeyelab
marked this pull request as ready for review
October 27, 2026 03:23
Skeyelab
enabled auto-merge (squash)
October 27, 2026 03:23
4 tasks
4 tasks
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.
Part 2 of #557, stacked on #960. Interface agreed with Eric in the grilling.
ChannelNamingstays a pure value.mixerOffered(_:)now returns[MixerChange](.repatchedfirst, then.renamed), andtakeStarted(with:)seeds the tracking that wasmixerNames/takeRoutingin the Recorder.Recorder.offerSourcespasses each event to the TakeSession and refreshes markers once.saved,copy(_:)(copy from the last Show),persist(to:).Recorder.savedChannelNamesis a forward, so App/ is unchanged. The Recorder's public naming methods stay as thin forwards.typeandclearalready say whether they changed anything.copyreusesreplace, plus tests for a re-patch and a rename in one offer and late names with a change.Tests (red first:
mixerOfferedreturned nothing,saveddid not exist): rename, re-patch, first routing known late, re-patch to an unnamed Source, USB-name fallback, re-patch before rename, late names, chips, copy order, persistence. The existing Recorder and Saved-name tests pass unchanged. Full ./scripts/verify.sh passed on the first version; the review edits were package-only, so after them I re-ran the naming tests and VERIFY_QUICK. Checked by tests and builds only; this touches the Take's rename and re-patch logging, which Eric has not tried on a device.Draft on purpose: a refactor merges right after a tag. Held until cos says the [internal] tag is out, and after #960 merges.