v1.0.37

Skyvern-AI/skyvernv1.0.37May 31, 2026by github-actions[bot]

AI Summary

Major release focusing on Copilot output policies, TurnIntent classification, browser profile management, and the analytics dashboard backend.

Key Highlights

  • Enforced Copilot output policy and request policy classification.
  • Added TurnIntent classifier and shadow contract.
  • Introduced browser profile management page and MCP support.
  • Implemented analytics dashboard backend rollup.

New Features

  • Enforce Copilot output policy
  • Add TurnIntent classifier and shadow contract
  • Browser profile management page
  • Analytics dashboard backend rollup
  • Phase 1 tagging schema + types

Full Release Notes

## What's Changed

Version bumped from 1.0.38 to 1.0.37

### Recent Changes
- SKY-10578: Add credential folders (backend) (#6375) (7e6ea829d)
- fix(SKY-10622): clean up child entities on workflow run timeout (#6374) (66d1fe98d)

**Full Changelog**: https://github.com/Skyvern-AI/skyvern/compare/v1.0.38...v1.0.37


## What's Changed
* fix(frontend): replace react-github-btn with static link (SKY-9724) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5927
* Add command-aware env scope resolver by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/5928
* fix(SKY-9723): guard react-router blocker proceed/reset on state by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5929
* ci: full speedup overhaul (concurrency, pytest-split sharding, parallel jobs, scoped pre-commit) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5933
* fix(SKY-9115): reviewer drops ambiguous label selectors in multi-row forms by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5934
* fix(bitwarden): coerce null username/password/totp to empty string (SKY-8847) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5936
* fix(SKY-9334): defer file chooser listener across steps for two-step uploads by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/5937
* fix(SKY-9704): restore legacy loop block output shape on cached path by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5938
* fix(SKY-8660): raise on fill_form 0-mapped to trigger AI fallback by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5939
* feat(SKY-8861): always mint signed /v1/artifacts content URLs from get_share_link[s] by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/5940
* fix(mcp): disambiguate ref selectors for unnamed duplicate widgets (#SKY-9701) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5941
* feat(SKY-9720) (1/3): Structure request policy scope by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5942
* fix: use per-run distinct_id for FORCE_TASK_V1 and USE_GEMINI_FLEX_FOR_NON_UI by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5943
* feat(SKY-9720) (2/3): Enforce Copilot output policy by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5944
* fix(frontend): detect nested block changes in Co-Pilot diff view (SKY-9332) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5945
* chore(ci): add trevor-cheung to OSS sync workflows by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/5946
* feat(SKY-9639): wire shadow gate to data-extraction-summary cross-run hits by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5947
* fix(alembic): add nonterminal_status indexes to unblock sync PRs (SKY-9746) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5961
* fix(SKY-8924): retry webhook delivery on transient 403/5xx/network errors by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5952
* feat(SKY-9737): add PATCH /browser_profiles/{id} endpoint for rename by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5960
* feat(SKY-9737): wire browser profile selector into workflow run form by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5962
* Pre-build UI assets in Docker image instead of at container startup (SKY-7342) by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5959
* feat(SKY-9737): add workflow.browser_profile_id default column by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5963
* fix(SKY-7939): surface FileParserBlock failures in workflow run outputs by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/5964
* fix(scraper): recover from multi-hop navigation context destruction (SKY-9470) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5954
* fix(scripts): idempotent create_script_file / create_script_block (SKY-9730) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5955
* fix(mcp): classify login/run_task timeout as TIMEOUT, surface non-empty messages by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5953
* fix(workflow): skip block retry on anti-bot detection (SKY-8957) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5951
* feat(runs): show scheduled trigger badge on global /runs page (SKY-8937) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5948
* fix: dep-patch group with [server] openai-agents floor unbroken (replaces #10899) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5896
* fix(runs): show scheduled workflow runs on global /runs page (SKY-8937) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5949
* feat(SKY-9069): analytics dashboard backend rollup (Phases 1-3) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5966
* fix(SKY-9753): tighten request-policy prompt for credential-context turns by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5965
* feat(SKY-8672): add browser profile MCP and CLI auth reuse by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/5632
* feat(SKY-9785): Gemini 3 reasoning_effort experiment by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5968
* fix(workflow-editor): Record Browser button stays visible while session loads (SKY-9777) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5969
* [SKY-9718] Layer 1 — deterministic HTML element-tree compression by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/5970
* fix(SKY-9755): resolve chat_history before asking for context already on record by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5971
* fix(SKY-9788): humanize init-time failure copy and skip wasted test on unbound credentials by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5972
* fix(workflow): cap oversized output_parameter JSON values to protect Estuary (SKY-9779) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5974
* fix(SKY-9233): return all per-tab recordings in workflow run fallback by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5975
* feat(SKY-9780): typed transcript anchors for request-policy classifier by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5976
* feat(SKY-9737): paginate GET /browser_profiles by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5977
* fix(SKY-9745): surface cached-script block errors + add per-iteration logs by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5978
* feat(SKY-9737): wire workflow-level browser profile default by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5979
* feat: add /analytics route + page shell + nav item (SKY-9072) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5980
* fix(SKY-9820): surface YAML parser detail on workflow save by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5981
* fix(artifacts): support HTTP Range on /v1/artifacts/{id}/content (SKY-9472) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/5982
* fix(SKY-9756): guard diagnostic answers on absent workflow entities by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5983
* fix(experimentation): set SkyvernContext before flag evals in Temporal worker boot by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5985
* fix(SKY-9821): consolidate copilot ask edit routing by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5986
* fix(SKY-9804): distinguish missing-TOTP-source from delivery timeout in MFA terminate paths by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5987
* SKY-9841 extract shared agent context helpers by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5988
* fix(SKY-9837): normalize browser_task and clarify invalid conditional loop edits by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5989
* feat(SKY-9737): browser profile management page by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5990
* fix(SKY-9784): complete chain_click fallback chain for blocked elements by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/5991
* fix(SKY-9822): script generator emits credential TOTP lookup when block has no explicit totp_identifier by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/5992
* perf(SKY-9738): speed up GET workflow run endpoint by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/5993
* Fix SKY-9838 Copilot download retry loop by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/5994
* Revert "fix(SKY-9803): expose CLOSE_PAGE when multiple tabs are open" by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/5997
* feat(SKY-9827): add search_key to GET /browser_profiles by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/5999
* feat(SKY-9828): polish browser profile selector + table search by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6000
* feat(SKY-9575): add workflow_run_viewing_v2 flag and run-viewing preference store by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6001
* fix(SKY-9864): stop overwriting totp_identifier on hydration by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6002
* SKY-9863: Fail fast when download signal is missing by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6003
* Revert SKY-9838 download retry loop and SKY-9863 fail-fast (#11152, #11167) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6006
* fix(workflow): restore analytics flag gate by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6007
* feat(SKY-9578): swap ScrollableActionList + add view-mode toggle behind flag by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6008
* Fix SKY-9838 download retry loop without empty artifacts by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6009
* [CLI] Handle quickstart Docker cleanup and server extras by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/5923
* Add cached script deploy dry-run primitives by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6012
* Add cached script deploy commit mode by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6013
* feat(SKY-9576): add ActionCardCompact component by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6014
* SKY-9863: Reintroduce download signal monitoring by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6015
* feat(SKY-9577): swap WorkflowRunTimelineBlockItem to ActionCardCompact behind flag by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6016
* fix(SKY-9871): drop blank late download artifacts by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6017
* Harden cached script deploy cleanup by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6018
* Add XHR.dev proxy by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6019
* chore: demote noisy high-volume logs to debug by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6024
* Update 2FA docs to reference workflows by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6010
* SKY-9933 Avoid repeated credential clarification loop by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6027
* chore: demote WebSocket streaming lifecycle logs to debug (SKY-9945) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6029
* chore: replace script_mode print() with LOG.debug to cut log volume (SKY-9945) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6030
* chore: demote LLM experiment config log to debug (SKY-9945) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6031
* chore: demote mouse movement logs to debug (SKY-9945) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6033
* fix(scripts): propagate workflow_scripts.is_pinned from cache_key lookup by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6034
* fix(scraper): use networkidle settle for Auth0 form_post redirect recovery (SKY-9470) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6035
* fix(copilot): type ResponseScaffoldingNormalization.response_type as ResponseType + sync OSS mypy overrides by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6041
* fix(frontend): restore GitHub star count in header (SKY-9868) by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6042
* feat(SKY-9867): guided Create-a-Browser-Profile flow by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6043
* log: drop log_level= from uvicorn.run() so ws spam stays silenced by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6046
* fix: cascade child tasks and prevent workflow_run resurrection on cleanup-cron timeout by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6047
* fix(copilot): name where Credentials UI lives in clarification text (SKY-9934) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6048
* fix(SKY-9930): copilot classifier infers credential intent from URL shape by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6049
* Revert "feat: add total_cost to runs response endpoint" by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6050
* chore: remove ENABLE_PARSE_SELECT_IN_EXTRACT feature flag by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6051
* Add repo-root skills/ mirror for Codex Marketplace + auto-sync to OSS by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6052
* fix(SKY-9785): use compact JSON serialization for file parser LLM prompt by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6053
* fix(SKY-9802): capture XHR inline file downloads during download actions by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6054
* fix: scope custom-select prompt to new-element subtrees (SKY-9948) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6055
* Skip speculative extract-actions in script_mode workflows by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6057
* fix(SKY-9962): recover conditional block when LLM returns extra placeholder evaluations by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6058
* feat(SKY-9326): caching benchmark + copilot evals share one Logfire surface by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6059
* feat: default new workflows to run_with="agent" by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6060
* fix(SKY-9929): feasibility-gate proceeds on diagnostic input over existing workflow by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6061
* [oncall] Retry workflow webhooks after infra failures by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6062
* feat: add curl-based Skyvern server installer by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/5804
* SKY-9975 Add TurnIntent shadow contract by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6063
* SKY-9976 Add mode-aware turn context assembler by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6064
* fix: map ai_click operational failures to 422 on /v1/sdk/run_action by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6065
* Improve local browser streaming devex by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6026
* feat(workflow): ValidationBlock data_extraction_goal/data_schema frontend by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6067
* fix(SKY-9982): route missing trigger type through flex gate by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6068
* [oncall] Fix inline add inside nested conditional loops by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6069
* SKY-9980 Add diagnosis repair contract shadow logging by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6070
* SKY-9977 add turn intent classifier eval by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6071
* feat(workflow): expose data_extraction_goal and data_schema on ValidationBlock backend by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6066
* Revert "feat(workflow): ValidationBlock data_extraction_goal/data_schema frontend" by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6072
* SKY-9947 track copilot output policy diagnostics by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6073
* fix(SKY-9803): inject tab context into extract-action prompt for safe CLOSE_PAGE by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6074
* feat(SKY-9672): detect archived artifacts and surface archive status to frontend by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6075
* SKY-9978 Gate no-mutation TurnIntent tools by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6076
* SKY-9979 Gate Copilot side effects with TurnIntent by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6077
* fix(SKY-9974): capture popup page recordings via context-level listener by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6078
* fix(SKY-9785): make finish_reason=length trigger LLM router fallback by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6079
* [oncall] Capture transient download error popups by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6080
* fix(SKY-9965): redact refused raw-credential turns from copilot transcript context by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6081
* [Oncall] Preserve PDF suffix for slash-date invoice downloads by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6082
* fix: block Liferay favicon redirect that strands login flow by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6083
* fix(SKY-9965): verify raw-secret claims with cited evidence by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6087
* Update changelog - Apr 27 through May 20, 2026 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6088
* fix: strip NUL bytes from JSON columns before persisting by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6091
* fix(SKY-9402): preserve class and readable pseudo-text for icon-only navigation elements by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6092
* SKY-9927 Carry docs intent across bare confirmations in TurnIntent by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6093
* fix(SKY-9935): decouple WIP-rescue force-review from unvalidated proposal flag by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6094
* feat(SKY-9938): typed workflow-change section in copilot turn context by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6095
* fix(copilot): catch block YAML leaked into chat reply (SKY-9925) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6096
* SKY-9926: reject credential ID baked into block prose in Workflow Copilot by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6097
* fix(SKY-9857): prompt token bloat — hard ceiling enforcement + data_extraction_goal cap by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6098
* revert: drop pool_timeout/pool_recycle and roll DB pool sizes back to pre-#10903 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6099
* [Oncall] Disable content blockers for credentialed auth launches by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6102
* fix(SKY-10141): preserve copilot browser session context by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6103
* SKY-10140 Name Copilot parameters by domain intent by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6104
* SKY-10138: stop Copilot on unrecoverable browser-session errors by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6106
* fix(SKY-10139): preserve proposals on output-policy blocks by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6107
* [Oncall] Deprecate public workflow run total_cost by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6108
* skyvern-cli: clarify skill guidance on workflow-level session toggles by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/6111
* fix(SKY-10137): annotate _workflow_with_runtime_block_goal_context's ctx as CopilotContext by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6115
* fix(frontend): re-sync React Flow nodes when comparison colors change by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6116
* Re-introduce cdp_connect_headers (#11067) with NOWAIT migration (#11198) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6117
* [CLI] Add non-interactive quickstart setup by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6025
* Add cindehaa and cursor to sync PR auto-merge allowlist by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6090
* perf(agent): prefetch data-extraction-summary before scrape (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6110
* perf(agent): reuse SkyvernFrame for post-action HTML artifact (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6089
* perf(agent): fire-and-forget post-action artifact recording (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6109
* dev: restore agent profiling and benchmark scripts (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6086
* perf(agent): reduce scrape wait time and parallelize CSS conversion (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6085
* perf(agent): parallelize scrape artifact persistence (SKY-8393) by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6101
* fix(SKY-9917): use bounded lock wait for cdp migration by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6122
* fix(SKY-9917): align browser state cdp header protocol by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6123
* feat(experiment): add CHECK_USER_GOAL_LLM_NAME to A/B check-user-goal independently by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6130
* feat: show credits consumed per run on workflow run pages (#SKY-8320) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6133
* feat: support BROWSER_REMOTE_DEBUGGING_CONNECT_HEADERS for default CDP auth headers by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6134
* feat(tagging): Phase 1 schema + types (SKY-10100) by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6135
* fix(artifact): show real filename on workflow run download links by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6137
* SKY-10201: Treat MCP calls like frontend calls by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6138
* fix(SKY-10295): scope Copilot credential authority by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6140
* SKY-10124: Make Copilot unexpected errors recoverable by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6143
* SKY-10307: Surface Copilot missing-context fallback by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6144
* SKY-10130 (1/3): add nullable TurnOutcome JSON column + schema plumbing by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6147
* Add Yutori Navigator as a CUA engine by @lawrencechen98 in https://github.com/Skyvern-AI/skyvern/pull/5513
* refactor(SKY-10065): remove legacy copilot proposal flags by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6148
* SKY-10130 (2/3): populate TurnOutcome on every AgentResult + typed user-non-progress signal by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6149
* fix(SKY-10191): allow selecting credential when editing a parameter by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6155
* fix(SKY-10192): clarify credential variable in selector UI by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6156
* fix(SKY-10198): keep save button visible when adding credential parameter by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6157
* revert: light mode v2 token system + hardcode sweep (#10910) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6163
* Add packaged UI pip install flow by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6159
* fix(SKY-10327): detect PDF embeds in multi-frame pages by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6164
* fix(SKY-9402): always include native form inputs inside shadow DOM in visibility check by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6165
* feat(SKY-9959): support double-click in element-based click action by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6166
* docs: remove billing endpoints from public API reference by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6168
* fix(SKY-10152): gate persistent profile write-back on run success by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6169
* SKY-10130 (3/3): detect identical-reply loops + hard rewrite by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6161
* fix(test): mock useSelectedCredentialTotpIdentifier in NavigationEditor test by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6175
* fix(SKY-10339): cap flex execution before fallback by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6174
* copilot: split run-context read authority from mutation gates (SKY-10313) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6176
* SKY-10335: copilot BuildPhase machine + AgentResult writeback factory by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6177
* feat: hook local debugger to the cdp-connect remote browser by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6179
* fix: clarify workflow run queue setting by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6180
* feat(SKY-10211): gate code-mode dispatch on CACHING_ROLLOUT flag by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6181
* SKY-10322: skip flex LLM router on UI-triggered runs by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6183
* v3 reviewer 3/3: wire mint-audit + post-run dispatch + mid-run hooks (SKY-7676) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6184
* fix: point GEMINI_3.1_FLASH_LITE at GA model, not retired preview by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6185
* fix(SKY-10317): classify blank-workflow browser-task copilot turns as build by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6186
* copilot: structured tool-blocker signal contract + lifecycle (SKY-10314 1/2) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6187
* Document v3 reviewer architecture and boundary by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/6188
* copilot: deterministic blocked-turn renderer + finalization shim (SKY-10314 2/2) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6192
* docs: update smoke-test skill with Chrome DevTools MCP and screenshot evidence by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6193
* fix(SKY-10350): recomposite on accordion-down inside nested block tiles by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6194
* Add workflow run retry APIs by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6195
* fix(SKY-10352): align control button hit areas with visual bounds by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6196
* Add LLM vision mode experiment by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6197
* fix(SKY-9402): add needs_followup + followup_message for deferred upload action history by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6198
* perf(SKY-10319): make inter-action delay experiment-controllable by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6199
* fix: run registered browser cleanup for VM browser contexts (SKY-10189) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6200
* [codex] Add workflow runtime limit backend by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6201
* feat(tagging): TagsRepository + AgentDB wiring + caller-context auth dep (SKY-10101) by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6205
* SKY-10142: stream turn narrative envelope events (BE, 1/2) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6204
* fix(frontend): port vitest.setup.ts + wire setupFiles config by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6207
* Revert validated proxy session pool by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6206
* chore: remove references by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6210
* [SKY-10263] Redesign sidebar navigation by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6211
* feat(SKY-9506): add selector + ai_fallback fields to Action Block schema by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6212
* chore(frontend): bump prettier-plugin-tailwindcss to ^0.8.0 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6217
* SKY-6729: Add llm_cost, proxy_cost, captcha_cost columns to task_runs by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6219
* chore(frontend): add cta color and collapsible animations to tailwind config by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6222
* docs: fix loop value reference in build-a-workflow tutorial by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6216
* feat(SKY-9956): show in-progress placeholder row while saving browser profile by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6215
* feat(SKY-9840): add enterprise summary cache warmer by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6213
* feat(SKY-10066): split workflow run page into compact timeline + detail panel by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/6214
* Update API specifications with fern api update by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6209
* chore(frontend): align tailwind config shape for clean cross-repo sync by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6227
* fix(SKY-10452): pre-create browser with block URL in script mode for proxy selection by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6228
* feat(SKY-10222): show N/M block completion and unexecuted blocks on run UI by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6230
* SKY-10142: render turn narrative bubble (FE, 2/2) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6231
* fix(SKY-10457): stop block-body clip from cutting focused input rings by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6232
* SKY-10346: Add page evidence parser contract (PR 1/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6233
* SKY-10346: Wire MCP page inspection tool (PR 2/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6234
* SKY-10346: Harden page evidence boundaries (PR 3/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6235
* fix: use solid open session pill styling by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6237
* fix(SKY-10405): update n8n integration logo by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6239
* fix: truncate loop_over_value in for-loop iteration log by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6240
* fix(SKY-10351): flatten 3D context on Flippable face containers by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6241
* SKY-10346: Normalize repository datetimes (PR 6/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6242
* Revert "fix: run registered browser cleanup for VM browser contexts (SKY-10189)" by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6244
* fix(SKY-10347): resolve embedded multi-placeholder secrets in workflow credentials by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6245
* [Streaming] Support local VNC browser sessions by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6225
* Add browser controls to CDP streams by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6229
* [codex] Add workflow runtime limit frontend by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6248
* security: fix 5 npm vulnerabilities in skyvern-frontend (protobufjs, qs) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6243
* [SKY-10102] Phase 3: Tag CRUD + history + tag-keys + batch endpoints by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/6251
* chore: enable ruff B009/B010 and add Any typing guideline by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6253
* SKY-10346: Enforce inspect-before-compose (PR 4/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6254
* fix(SKY-10453): handle nullable download field in action parsing by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/6255
* SKY-10346: Replace goto-url heuristics with page evidence policy (PR 5/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6256
* SKY-10318/10142: stage workflow proposals + persist turn-narrative bubble across reloads (BE, 1/2) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6257
* SKY-10346: Guard stale browser session reuse (PR 7/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6258
* SKY-10346: Preserve continuation blocker signals (PR 8/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6259
* SKY-10346: Plan runtime frontiers from page evidence (PR 9/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6261
* SKY-10346: Preserve runtime frontier browser state (PR 10/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6262
* SKY-10346: Finalize from post-run page evidence (PR 11/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6263
* Replace non-vision blob with enrich_tree experiment by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6266
* SKY-10346: Render terminal anti-bot blockers (PR 12/12) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6267
* SKY-10143: keep the copilot chat live during the in-turn test (queue + cancel) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6268
* feat(SKY-10559): reveal collapsed sidebar flyout on hover by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/6270
* SKY-10346: Track runtime verification evidence (PR 13/13) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/6269
* Update API specifications with fern api update by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6265
* Fix browser session UI not updating after create by @cindehaa in https://github.com/Skyvern-AI/skyvern/pull/6272
* SKY-10560: route TOTP verification requests through NAT egress proxy by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6274
* Bump version to 1.0.37 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/6208

## New Contributors
* @lawrencechen98 made their first contribution in https://github.com/Skyvern-AI/skyvern/pull/5513

**Full Changelog**: https://github.com/Skyvern-AI/skyvern/compare/v1.0.36...v1.0.37