Background
engine#112 created SubCaseGroupLifecycleEvent and SubCaseGroupPolicy.toEvent() but never fires the event via CDI. The event type exists but has no production consumers.
Work
In SubCaseCompletionListener.handleGroupedCompletion, inject Event<SubCaseGroupLifecycleEvent> and fire it asynchronously (fireAsync) for all group state transitions (IN_PROGRESS, COMPLETED, REJECTED). This enables monitoring, audit capture, and Claudony dashboard integration without changing the core resumption logic.
Refs #112
Background
engine#112 created
SubCaseGroupLifecycleEventandSubCaseGroupPolicy.toEvent()but never fires the event via CDI. The event type exists but has no production consumers.Work
In
SubCaseCompletionListener.handleGroupedCompletion, injectEvent<SubCaseGroupLifecycleEvent>and fire it asynchronously (fireAsync) for all group state transitions (IN_PROGRESS, COMPLETED, REJECTED). This enables monitoring, audit capture, and Claudony dashboard integration without changing the core resumption logic.Refs #112