Files
workflows-py/docs
Adrian Lyjak f96faa2d03 feat: add dedicated StopEvent subclasses for workflow termination scenarios (#264)
* 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>
2026-01-10 13:03:49 -05:00
..
2025-10-02 13:34:30 -07:00
2025-10-29 09:28:47 -06:00