fix: revert any_ changes to preserve match-nothing semantics
any_=[] means 'match nothing' (like SQL IN ()), which is intentional.
Only optimize like_ (empty string), all_ (empty list), and not_any_
(empty list) which are true no-ops that match everything.
Co-authored-by: alex.s <alex.s@prefect.io>
Co-Authored-By: alex.s <ajstreed1@gmail.com>
Kill process group on flow run cancellation to stop child processes
Start flow run subprocesses in their own process group
(start_new_session=True) and use os.killpg instead of os.kill when
cancelling. This ensures child processes spawned by ShellOperation
(or anything else) get terminated along with the flow run process,
instead of being orphaned.
Fixes #20979