Make runner cancellation observing critical to runner health
When both websocket and polling mechanisms for detecting cancellation
events fail, the runner now:
1. Logs errors using the flow run logger (visible to customers)
2. Marks all in-flight flow runs as crashed
3. Raises RuntimeError to trigger runner shutdown
This prevents flow runs from running indefinitely when the runner
cannot respond to cancellation requests.
Also changes websocket failure log level from debug to warning for
better visibility when falling back to polling.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix ContextVar issue in test fixtures for Python 3.10
Use the existing `app` fixture (which handles temporary_settings properly)
and only add the lifespan context in the async generator fixture. This
avoids the ContextVar token error that occurs when temporary_settings
context manager is entered/exited in different async contexts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
fix: remove incorrect docstrings from CLI ls commands
The variable ls and artifact ls commands had copy-pasted docstrings
that incorrectly referenced "flow runs" instead of their actual
resource types. These redundant argument descriptions are already
covered by the typer Option help text.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>