refactor: extract mouse UI pointer target resolution
Merged
HA
3mo ago+687+687+012345678901234567890123456789-286-286-012345678901234567890123456789
Summary
- extract pointer data construction, hierarchy/path lookup, drop validation, and direct raycast construction into
MouseUiPointerTargetResolver - move the executor-consumed resolution result into the top-level
ResolvedPointerTargetsDTO - add synchronous EditMode characterization coverage for path, drop, bypass hierarchy, pointer state, and no-hit behavior
- reduce
SimulateMouseUiUseCasefrom 1,305 to 1,032 lines
Scope Notes
- The characterization commit advances five resolver methods and
ResolvedPointerTargetsfrom private to their required final internal visibility. The final implementation retains the existing signatures and nullability. - The only non-move behavior-preserving adaptation removes the one-line
RaycastUIwrapper. Its resolver and executor callers now invokeUiRaycastHelper.RaycastUIdirectly, matching the existing drag-finalization caller. - The two existing
out-parameter contracts remain byte-equivalent for move-only review. Their conversion to an explicit result DTO is recorded separately as R2-41. - Event dispatch, drag execution/finalization, overlay and main-thread cleanup, logging, and action execution remain with later R2-33 stages.
- IPC request/response DTOs and wire shapes are unchanged, so no protocol version bump is required.
Verification
dist/darwin-arm64/uloop compile(0 errors, 0 warnings)- EditMode
MouseUiPointerTargetResolverTestsbefore and after the move (10 passed) - PlayMode
SimulateMouseUiTests(32 passed) - EditMode
MouseUiSimulationResponseFactoryTests(12 passed) - EditMode
SimulateMouseUiActionValidationTests(1 passed) - EditMode
PlayModeToolPreflightServiceTests(8 passed) - EditMode
StaticFacadeStateGuardTests(20 passed) - EditMode
OnionAssemblyDependencyTests(83 passed) - normalized old/new resolver comparison (only the declared
RaycastUIdirect-call adaptation remains after visibility normalization) - old owner definitions, reverse references, and
RaycastUIwrapper references (0) git diff --check origin/v3-beta...HEAD