What's Changed
- FE: allow workflow run UI to show browser stream if workflow run has one by @jomido in #3838
- Cleanup ENABLE_TASKV2_METADATA_CURRENT_URL_VALIDATION experiment by @stanislaw89 in #3836
- Fern: add TypeScript code examples by @stanislaw89 in #3839
- Fern: generated SDK post processing by @stanislaw89 in #3840
- not try selectable input for otp or secret input by @LawyZheng in #3843
- skip msedge download hub page by @LawyZheng in #3844
- mark readonly element as interactable by @LawyZheng in #3845
- label workflow failure reason by status by @wintonzheng in #3830
- Update API specifications with fern api update by @wintonzheng in #3842
- make templating lax again by @jomido in #3846
- making gpt5 models have temp 1 by @pedrohsdb in #3849
- Release v0.2.21 by @stanislaw89 in #3848
- Log response status in request_logging by @stanislaw89 in #3747
- SDK: support actions skeleton by @stanislaw89 in #3817
- automatically parse content from totp url by @wintonzheng in #3852
- set up xp for using cheaper model for verication result by @pedrohsdb in #3853
- Fix z-indexing issue for timeline/browser stream in debugger view by @jomido in #3854
- set workflow status to 'published' when a user saves a workflow by @jomido in #3855
- Use lazy imports in init.py by @stanislaw89 in #3847
- Add GET /v1/credentials/totp to list recent 2FA codes per org by @marcmuon in #3770
- removing laminar by @pedrohsdb in #3858
- revert #2154 - fix complete action bug by @LawyZheng in #3859
- Update Copy to cURLbuttons to reference the new Runs API spec by @marcmuon in #3765
- OS-level workflow run alert (w sound) on status change by @jomido in #3862
- add notification sound for workflow runs by @jomido in #3863
- SDK: support select_option and extract by @stanislaw89 in #3850
Full Changelog: v0.2.19...v0.2.20