Skip to content

ChannelNaming owns saved names and mid-Take renames and re-patches (#557, 2 of 2) - #963

Merged
Skeyelab merged 2 commits into
mainfrom
refactor/557-channel-naming
Oct 27, 2026
Merged

Skeyelab merged 2 commits into
mainfrom
refactor/557-channel-naming

Conversation

@Skeyelab

Copy link
Copy Markdown
Member

Part 2 of #557, stacked on #960. Interface agreed with Eric in the grilling.

  • ChannelNaming stays a pure value. mixerOffered(_:) now returns [MixerChange] (.repatched first, then .renamed), and takeStarted(with:) seeds the tracking that was mixerNames/takeRouting in the Recorder. Recorder.offerSources passes each event to the TakeSession and refreshes markers once.
  • The saved-name chips move in: saved, copy(_:) (copy from the last Show), persist(to:). Recorder.savedChannelNames is a forward, so App/ is unchanged. The Recorder's public naming methods stay as thin forwards.
  • The Recorder still writes the Show's names; type and clear already say whether they changed anything.
  • CONTEXT.md: adds Re-patch and Saved name.
  • The Recorder loses about 60 lines. Behavior is meant to be identical; the Code Reviewer compared event order, side effects, resets and observation against the removed code, no blockers. I took its points: no separate no-session branch, copy reuses replace, plus tests for a re-patch and a rename in one offer and late names with a change.

Tests (red first: mixerOffered returned nothing, saved did 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.

@codecov

codecov Bot commented Oct 26, 2026

Copy link
Copy Markdown

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
Skeyelab force-pushed the refactor/557-channel-naming branch from eb81898 to 5c2006d Compare October 27, 2026 03:23
@Skeyelab
Skeyelab changed the base branch from refactor/557-availability-level to main October 27, 2026 03:23
@Skeyelab
Skeyelab marked this pull request as ready for review October 27, 2026 03:23
@Skeyelab
Skeyelab enabled auto-merge (squash) October 27, 2026 03:23
@Skeyelab
Skeyelab merged commit 4af8443 into main Oct 27, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant