feat(03-04): implement _FlowRunExecutor
Adds the Layer 2 per-run lifecycle manager that composes LimitManager,
StateProposer, ProcessStarter, ProcessManager, HookRunner, and
CancellationManager to execute one flow run from slot acquisition
through terminal state proposal.
Co-authored-by: desertaxle <desertaxle@users.noreply.github.com>
Co-Authored-By: unknown <>
refactor(cli): extract shared utils from typer command files
extract `ConnectionStatus` + `check_server_connection` from
`profile.py` into `_profile_utils.py`, and `run_shell_process` +
helpers from `shell.py` into `_shell_utils.py`.
both typer and cyclopts command modules now import from the shared
utils. the typer files re-export for backwards compatibility. this
decouples the shared business logic from the typer CLI framework,
unblocking typer deletion in a later PR.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: preserve original trim defaults for safe migration
- events_loop_seconds: 3600 -> 900 (matches old trim_every=15m)
- heartbeat_events_retention_period: 1 day -> 7 days (matches
PREFECT_EVENTS_RETENTION_PERIOD default so no events are pruned
more aggressively than before out of the box)
With the help of Claude.