mirror of
https://github.com/run-llama/workflows-py.git
synced 2026-07-19 16:53:35 -04:00
f96faa2d03
* feat: add dedicated StopEvent subclasses for workflow termination scenarios Add WorkflowTerminationEvent base class and specific subclasses to provide detailed information when workflows end abnormally: - WorkflowTimedOutEvent: Published when workflow exceeds timeout, includes timeout duration and list of active steps - WorkflowCancelledEvent: Published when workflow is cancelled by user - WorkflowFailedEvent: Published when a step fails permanently, includes step name, exception type, and exception message These events replace the empty StopEvent() instances that were previously published, allowing consumers to understand why a workflow ended and take appropriate action. Closes: issue about providing exception information in StopEvent * refactor: simplify termination events to inherit directly from StopEvent * chore: add changeset * feat: add traceback and fully qualified exception type to WorkflowFailedEvent * feat: add retry info (attempts, elapsed_seconds) to WorkflowFailedEvent Also fixes a bug where step_function.py used time.monotonic() instead of time.time(), causing incompatible timestamps with first_attempt_at. * fix lints/locks * docs: add workflow termination events to streaming docs --------- Co-authored-by: Claude <noreply@anthropic.com>