Audit finding
IRuntimeEnvironment currently combines two unrelated roles:
- target/window environment queries (
ResolveTargetWindow, IsSupportedTarget, ResolveIdentity);
- presentation feedback (
ShowNotification, SynchronizeAutomaticMode).
The public RuntimeCoordinator constructor consequently accepts five raw delegates and adapts them into one mixed interface. This obscures dependency intent and couples runtime evaluation tests to notification/control synchronization concerns.
Target state
Introduce two small named ports, for example:
IRuntimeTargetResolver for window support and application identity;
IRuntimeFeedback for notifications and automatic-mode presentation synchronization.
Compose concrete adapters in SightAdaptContext. Keep the runtime services framework-free.
Acceptance criteria
Audit finding
IRuntimeEnvironmentcurrently combines two unrelated roles:ResolveTargetWindow,IsSupportedTarget,ResolveIdentity);ShowNotification,SynchronizeAutomaticMode).The public
RuntimeCoordinatorconstructor consequently accepts five raw delegates and adapts them into one mixed interface. This obscures dependency intent and couples runtime evaluation tests to notification/control synchronization concerns.Target state
Introduce two small named ports, for example:
IRuntimeTargetResolverfor window support and application identity;IRuntimeFeedbackfor notifications and automatic-mode presentation synchronization.Compose concrete adapters in
SightAdaptContext. Keep the runtime services framework-free.Acceptance criteria
RuntimeCoordinator,AutomaticActivationServiceandRuntimeOverlayActivatordepend only on the portions they use.SightAdaptContextremains the composition root.