You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Clean Code/KISS] Split runtime target resolution from user feedback ports #117
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
Target resolution and user feedback are represented by separate interfaces.
RuntimeCoordinator, AutomaticActivationService and RuntimeOverlayActivator depend only on the portions they use.
The five-delegate constructor is removed or replaced with named collaborators.
SightAdaptContext remains the composition root.
Runtime tests can substitute target resolution without also configuring UI feedback, and vice versa.
Existing notification messages and automatic-mode synchronization behavior remain unchanged.
No DI container or service locator is introduced.
Completion evidence — 2026-09-24
Implemented in PR #160 and merged as e9ef6373ad8ed4c75c48d544a8b3c3cf978b6c29.
Verified checks:
DCO run 36002397999 — success;
full Windows build/test/release-compliance run 36002398000 — success.
Runtime target discovery and user feedback are now separate named ports composed in SightAdaptContext. Overlay activation failures are classified and diagnosed: expected native/availability failures recover into a safe fault state with automatic-target suppression, while contract/programming failures are diagnosed, cleaned up best-effort and rethrown without cleanup replacing the primary exception.
Activity
Split runtime target resolution from feedback ports
Use named runtime target and feedback collaborators
Limit automatic activation to runtime target resolution
Classify and diagnose runtime overlay activation failures
Compose named runtime target and feedback adapters
Update runtime coordinator tests for split ports
Update menu runtime tests for split ports
Document split runtime ports and activation failure policy
Split runtime ports and classify overlay activation failures (#160)