Skip to content

Commit 0709e92

Browse files
committed
feat(room-combiner): add room-combination operation status lifecycle
Port the in-progress room-combination lockout feature from the v2 line (v2.43.0-feature-in-progress-lockout-updates.1) onto the v3 async combiner. The server-side lifecycle was absent from v3; the React overlay and codec Navigator webview were already present on v3 but never triggered because Essentials never emitted the status. - Add IEssentialsRoomCombinerWithOperationStatus + CombinationOperationStatus (OperationId/ScenarioKey/StartedUtc/State/Message/AffectedRoomKeys) and the CombinationOperationState enum. - EssentialsRoomCombiner publishes InProgress on ChangeScenario, gates completion on reflective ScenarioReconciled providers, supports a configurable operation timeout, and computes AffectedRoomKeys by diffing scenario uiMaps. - Broadcast combinationOperation over the room-combiner messenger (status-changed event + full status). - Guard PartitionPresent getter against a null partition sensor. Preserves the exact member/JSON names the codec (reflection) and React (JSON) clients bind to: CombinationOperation, State, AffectedRoomKeys, CombinationOperationStatusChanged, combinationOperation.{state,affectedRoomKeys}.
1 parent 2132efa commit 0709e92

5 files changed

Lines changed: 531 additions & 8 deletions

File tree

‎src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public bool PartitionPresent
2424
{
2525
if (IsInAutoMode)
2626
{
27-
return _partitionSensor.PartitionPresentFeedback.BoolValue;
27+
return _partitionSensor?.PartitionPresentFeedback?.BoolValue ?? _partitionPresent;
2828
}
2929

3030
return _partitionPresent;

0 commit comments

Comments
 (0)