OPENAPI callers (difyctl) don't send parent_message_id, causing
extract_thread_messages to treat each message as a new thread start
and return empty history. Apply UUID_NIL sentinel for OPENAPI the
same way SERVICE_API does, keeping the two invoke sources distinct.