Status: done
Synchronous execution honors structured resolution completeness and rejects incomplete optional-only arguments without invoking the handler.
Keep synchronous and asynchronous event execution semantically aligned by rejecting a structured deterministic resolution that explicitly reports complete=False, even when the schema has no required fields.
execute_sync() with an optional-only schema and an explicitly incomplete structured resolver result.INVALID_ARGUMENTS with a stable incomplete-arguments error before invoking the handler.src/agent_lab/application/events/kernel.pytests/test_event_kernel.pyexecute_sync() and normalize it to the same invalid result used by the async path when no fallback can run.git diff --check.EventArgumentResolution(arguments={}, complete=False) with a schema whose fields are optional.INVALID_ARGUMENTS and the error is event arguments incomplete.Confirm sync execution no longer treats schema-valid-but-incomplete resolution as executable, while complete and plain-dict resolvers remain unchanged.
uv run pytest tests/test_event_kernel.py -quv run pytestgit diff --check