Skip to content

feat: modernization phase 4 PR4 A#48

Merged
dsmurfin merged 2 commits into
modernization-planfrom
modernization-phase4-lifecyclegate
Jul 18, 2026
Merged

feat: modernization phase 4 PR4 A#48
dsmurfin merged 2 commits into
modernization-planfrom
modernization-phase4-lifecyclegate

Conversation

@dsmurfin

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings July 18, 2026 18:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR continues Modernization Phase 4 by extracting the reserve-before-await lifecycle state machine into a shared helper (LifecycleGate) and migrating component actors to use it, improving consistency across start/stop/updateInterfaces gating.

Changes:

  • Added LifecycleGate (state + stop-supersede flag + stop waiters) and shared interfaceDiff helper.
  • Refactored sACNSource and sACNDiscoveryReceiver to use LifecycleGate instead of per-actor lifecycle fields.
  • Added a dedicated LifecycleGateTests suite to validate the transition table and diff helper behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
Tests/sACNKitTests/LifecycleGateTests.swift Adds direct transition-table tests for the shared lifecycle gate and interface diff helper.
Sources/sACNKit/Source/sACNSource.swift Replaces the local lifecycle state/flags with LifecycleGate and routes lifecycle decisions through it.
Sources/sACNKit/Shared/LifecycleGate.swift Introduces the shared lifecycle gate and the interfaceDiff helper used by component actors.
Sources/sACNKit/Receiver/sACNDiscoveryReceiver.swift Migrates lifecycle gating/stop waiters to LifecycleGate and reuses interfaceDiff for interface updates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Sources/sACNKit/Shared/LifecycleGate.swift Outdated
@dsmurfin
dsmurfin merged commit d6b6b17 into modernization-plan Jul 18, 2026
7 checks passed
@dsmurfin
dsmurfin deleted the modernization-phase4-lifecyclegate branch July 18, 2026 19:01
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.

2 participants