v1.0.47

upstash/context7v1.0.47Jul 16, 2026by github-actions[bot]

AI Summary

This release focuses on enhancing workflow reliability, security, and the Copilot agent experience. It includes upgrades to fix vulnerabilities, expanded self-healing metrics, and new UI features like a searchable credential picker and light mode support.

Key Highlights

  • Resolved Dependabot alerts and bumped json-repair to fix a HIGH DoS vulnerability
  • Enhanced workflow self-healing reliability with new aggregation services and badges
  • Improved Copilot grounding and coding agent instructions to reduce null blockers
  • Fixed artifact URL handling and recording playback reliability
  • Added searchable credential picker and light-mode support to the workflows UI

New Features

  • Search run timeline blocks by label
  • Workflow self-heal reliability badges
  • Tell coding agents when a workflow has reusable code
  • Tell coding agents when a workflow carries skill instructions
  • Searchable credential picker in workflow builder
  • Light-mode support for new workflows UI
  • MCP benchmark runs on eval dashboard

Full Release Notes

## What's Changed

Version bumped from 1.0.46 to 1.0.47

### Recent Changes
- Gate artifact URL re-minting to Skyvern signed content URLs (#7499) (8ed3be1b3)
- Refuse Copilot drafts whose entire output contract is a null blocker (SKY-12539) (#7497) (3fcac5d83)
- chore(deps): bump mcp to 1.28.1 to fix 3 high-severity Dependabot alerts (#7496) (14439528f)
- Bump version to 1.0.47 (#7481) (9fc0b2aee)
- feat(SKY-12446): search run timeline blocks by label and jump to match (#7495) (0c767adbd)
- feat: workflows-list reliability badge (self-heal UX Phase 1b) (#7494) (77ad799ef)
- Surface workflow self-heal reliability (panel + run-page uplink) (#7493) (409b2577a)
- SKY-12544: mint post-run gradeable criteria for page-produced confirmation tokens (#7492) (c6ecf3364)
- fix: harden SSRF validation for resolved hosts (#7491) (4c4d68360)
- Log a structured outcome event for every custom-select opportunity (observation-only) (#7490) (63411e2ad)
- Batch endpoint for workflow self-heal reliability (#7489) (78b620b72)
- feat(SKY-12098): tell coding agents when a workflow carries skill instructions (#7487) (850a99e50)
- Exclude orgs under 90 days old from Gemini flex LLM routing (#7486) (78616952b)
- Stop copying the chrome profile template on CDP-connect paths and sweep stale temp artifacts (#7485) (ae23a3601)
- Refresh static artifact URLs on demand: screenshots, viewers, download links (#7484) (a551a5236)
- Verify checkbox toggles instead of navigating in chain_click label/coordinate fallbacks (SKY-12543) (#7483) (119843855)
- Fix LLM router fallback-succeeded log firing on every flex-tier request (#7482) (a45e51726)
- fix(SKY-12383): commit invalid combobox selection after typing surfaces its options (#7480) (ac8d6583c)
- fix(SKY-12384): gate copilot action cards during history load + keep queued prompt visible (#7477) (4c27597dc)
- feat(SKY-12397): tell coding agents when a workflow already has reusable code (#7479) (ec61e687b)
- Add PII-safe lineage telemetry for download filename naming (SKY-12516) (#7478) (c55be07dc)
- [SKY-12007] S2: structural page-vs-frame predicate + browser-object identity AST guard (#7476) (230b1e6a7)
- [SKY-12007] Scope CDP http(s) redaction to CDP context-creation errors (#7475) (9a69fd9d6)
- refactor(SKY-12367): boot the screenshot streaming worker with a minimal app runtime (#7378) (9baa00514)
- Recover phone numbers rewritten by country-aware fields (#7474) (d6c3f6caa)
- Show all block prompts under Agent inputs in the Workflow Studio run view (#7473) (dcf09499e)
- Searchable credential picker in the workflow builder (uncap the 100-credential dropdown) (#7472) (8dbb2e500)
- fix(downloads): recover missing file extension by sniffing content (#7470) (ee411c98c)
- [SKY-12007] Add engine-neutral browser error taxonomy (#7468) (6b0b4fdc7)
- security: resolve all open Dependabot alerts across JS/TS lockfiles (SKY-12556) (#7467) (2dfe579ac)
- fix(SKY-12342): recognize commit-only copilot reach (#7466) (eb7c2ff41)
- Stop deterministic normal-select from falling back to the LLM on false negatives (#7464) (eb6f4aa47)
- feat(SKY-12054): harness engine swap — copilot scout-loop recovery behind enable_self_healing (#7462) (b96e444a4)
- fix: keep MCP-generated Playwright snippets valid when instruction text has quotes (#7460) (20abee573)
- Mint short-lived artifact URLs on demand for recording playback (#7459) (8c81c758a)
- fix(SKY-12218): drop the pinned revision hash from the self-heal ancestors assertion (#7458) (cb8ac5762)
- fix(SKY-12474): open Copilot pane on Discover → Studio handoff (#7457) (0ef393a2b)
- Self-discard artifact upload tasks and stop resurrecting the execution-channel driver (#7456) (457eb4f34)
- SKY-12163: Preserve Copilot completion checks when workflows are saved (#7455) (88fa07c13)
- feat(SKY-11944): skyvern_select_option works on custom dropdowns and autocomplete, not just native <select> (#7454) (7021e7792)
- SKY-12163: Don’t guess exact output requirements (#7451) (40cf6c989)
- feat: add action history option to login blocks (#7453) (5696c9166)
- fix: isolate untrusted webpage data in agent prompts (#7452) (ede6a5aa9)
- fix(SKY-12441): default studio layout mirrors legacy edit/run views (#7426) (ac407cbdd)
- Detect CodeBlock secure-runner downgrades, record execution locus, fix task_proxy_usage grants, remap S3 CSI log severities (#7434) (6a3daf7c6)
- SKY-12163 (part 2) Stabilize typed request-slot contracts (#7448) (a0702c323)
- Revert the overlay-blocked click change (#13377) to restore the coordinate-click fallback (#7425) (2687aaf4d)
- fix(SKY-12218): stop pinning the alembic head hash in the self-heal schema test (#7445) (a52d1d573)
- Sync OpenAPI reference from production (#7427) (e102b6fdc)
- feat(SKY-11971): condense narrator chatter and retries in the copilot build stream (#7420) (553a423e2)
- fix(SKY-12453): reserved system tags read-only + Labels page search and creation (#7446) (75b4a5486)
- Lead repeatable agent scheduling with a date/time picker flow (#7443) (cad7fc45b)
- security: add ignore-scripts .npmrc to skyvern-ts/client (supply-chain alert) (#7400) (8e0a1124c)
- fix(pbs): reclaim worker-local browser state when the shared session row is closed by another process (#7440) (98633da4f)
- fix(SKY-12401): make large workflows readable and safely editable through MCP (#7431) (e9c9ceb40)
- fix(SKY-12081): author-time reject for unresolvable freehand copilot selectors + idempotent login (#7419) (d438273d1)
- feat(SKY-12215): self-heal reliability aggregation service (runs × episodes) (#7415) (edfe565fa)
- feat(SKY-12217): heal-episodes read API + query index + dedupe semantics (#7414) (4e87f3f03)
- Cap and dedupe parsed run-tag filter terms (SKY-12327 follow-up) (#7413) (4d73df916)
- Surface run-level tags: chips + filter on run lists, and analytics picker keys (#7412) (765f0244f)
- Authenticate the download urllib fallback and reject HTML login pages saved as binary files (#7411) (a10656afd)
- feat(SKY-12216): heal-content sanitizer for code/error UI surfaces (#7410) (fb086ae2a)
- Jump the studio editor to a workflow block when its timeline item is clicked (#7409) (70e293955)
- Add light-mode support to the new workflows UI (#7408) (05a536259)
- Surface Odysseys MCP benchmark runs on the eval dashboard (#7407) (5c62f123e)
- fix(captcha): deliver equation screenshot to arithmetic solver in no-images mode (SKY-11671) (#7406) (5b6bceac9)
- security: bump json-repair to 0.60.1 (HIGH DoS #557) (#7405) (e17140d6f)
- security: clear internal-tooling npm/pip Dependabot alerts (dashboard/support-agent/mcpb/reverse-proxy/fathom) (#7404) (373778ecc)
- fix(runs-history): guard sub-3-char search + render load-error state (#7401) (52fbfeb68)
- Update API specifications with fern api update (#7389) (41d7feea8)
- security: bump skyvern-frontend transitive deps (dompurify/react-router/protobufjs/js-yaml/otel) (#7387) (ed676ecbc)
- Copilot: grounded parameterized-selection so persisted code reads a click-embedded input (SKY-12316, partial) (#7397) (1ea96ebca)
- fix(SKY-12367): release recording exfiltration channel driver and unpin JS asset cache (#7396) (7d3f4bed9)
- fix(SKY-12367): release upload aiotask tracking on every wait exit path (#7394) (af95cb7e1)
- fix(SKY-12367): release the local Playwright driver when browser-context creation fails (#7392) (8c9d0bfe2)
- Chunked resumable Google Drive upload with resume-on-failure (SKY-12394) (#7391) (4c1c50c7b)
- fix(SKY-12378): prefill run inputs when re-running from a viewed run in Studio (#7388) (868a5474b)
- fix(SKY-8804): log cached-block AI fallback at warning not error (#7386) (ad882de99)
- fix(log-noise): downgrade handled cached-script selector miss to warning (#7385) (89091d98e)
- fix(SKY-11934): sanitize remaining MCP ApiError leak paths (#7384) (187f9be98)
- feat(SKY-12404): log which app (Claude, Cursor, Hermes) each MCP session comes from (#7383) (9c53dd897)
- SKY-12368: capture click-to-reveal values into structured copilot page evidence (#7381) (c8e2876ff)
- chore(deps-dev): bump pytest from 7.4.4 to 9.0.3 (#7380) (e4ff5c638)
- security: bump uv.lock deps to clear 8 Dependabot alerts (3 high) (#7379) (c429bb0b0)
- refactor(SKY-11699): extract _finalize_step_execution from ForgeAgent.agent_step (#7376) (64178e208)
- fix(SKY-12332): reconcile the persisted copilot block against the full captured trajectory (#7375) (2dbb46404)
- SKY-11838: Copilot: recognize scouted extraction data by value format, not just page labels (#7374) (e204dc095)
- fix(SKY-12320): render worker foreign-record tracebacks as one structured log entry (#7325) (31fbe623c)
- Support Google Drive uploads over 5 MB via resumable upload (SKY-12374) (#7373) (94d5156f7)
- feat(SKY-12137): queued-warmup bubble footer + Confirm chip for copilot QA turns (#7372) (216713775)
- fix: remove ReDoS ambiguity in PdfFillBlock test regex (code scanning 329) (#7371) (801f6ae05)
- security: restore CodeQL-modeled path-containment sanitizer in download_file (#7218) (9cc3f13ca)
- security: fix 8 skyvern-ts/client vulnerabilities (vitest critical + 7 high) (#7225) (6e073f04e)
- fix(SKY-12372): make round robin selectable on the run credential rotation page (#7363) (4ef3f1ea7)
- refactor(SKY-11708): extract conditional-episode and cache-tracking phases from _execute_single_block (#7361) (ef10e62c5)
- feat(SKY-12138): pause copilot BUILD turns on a mid-loop credential ask (#7360) (114441f4e)
- fix(SKY-11971): reclassify precondition redirects out of the error stream (#7359) (1507e2801)
- fix(SKY-12194): humanize block display names in copilot chat (#7358) (8051b358f)
- feat(SKY-12136): opt-in keep_pending_proposal survives no-op turns (#7357) (2de89ba3d)
- fix(home): thread Generate Script + Data Schema through the prompt box, pill/empty-state UX (#7356) (cf13ed2f0)
- SKY-12357: Make Workflow Copilot loop guard argument-aware so multi-field builds are not halted as loops (#7355) (6ff4c6b0b)
- refactor(SKY-11707): extract script-attempt and agent-execution phases from _execute_single_block (#7354) (cd3e0d4f6)
- fix(SKY-11690): rewire wait_utils killswitch through app.AGENT_FUNCTION; delete cloud import (#7353) (7792f9e54)
- test(SKY-11696): characterization tests for agent_step (pin 12 uncovered behaviors) (#7352) (0a03e62ad)
- fix(SKY-11851): treat missing S3 object as terminal not-found on download (#7350) (3ab876188)
- SKY-12339: code-first authoring producer reads per-column tables (TABLE_COLUMN) into keyed returns via the shared reader (#7349) (809dfe2b2)
- fix(SKY-12341): stop masking OTP-extraction backend failures as client 400s (#7348) (2a9d56753)
- fix(SKY-11962): suppress orphaned patchright TargetClosedError future noise (#7344) (23456a564)
- test(SKY-11712): pin router/non-router LLM handler parity (characterization gate) (#7342) (4eeb456e8)
- test(SKY-11705): characterization tests for _execute_single_block (pin phase seams) (#7343) (15596470e)
- refactor(SKY-11694): move EventSourceStream SSE transport routes/ → core/ (#7340) (78833b939)
- fix(SKY-12272): normalize leaked code-block recorder proxies to JSON-safe output (#7339) (bfa98fef7)
- test(SKY-11692): guard against in-package test files (both pytest conventions) (#7338) (8e7bbd400)
- refactor(SKY-11693): move copilot workflow-YAML processing out of routes into copilot/ (#7337) (32f005cfa)
- refactor(SKY-11695): make enforcement→streaming_adapter a one-way module-level dependency (#7335) (f9dd84d29)
- fix(SKY-11618): drive native <select> via select_option under unrelated overlays (#7334) (ea8057d6e)
- Clarify MCP tool descriptions to fix wrong-tool routing errors (#7333) (8bacea6ec)
- fix(SKY-12131): batch workflow-run parameter definition lookups to remove sequential queries (#7330) (dfca4ca98)
- Sync OpenAPI reference from production (#7329) (ba1d44823)
- ci: restore all-files pre-commit checks on pull requests (#7328) (9e0221f58)
- feat(SKY-12255): persist per-run topup credits consumed on workflow_runs (#7321) (4a9aaa6df)
- Cap LiteLLM Redis connection pools (#SKY-12319) (#7320) (a0a832479)
- GCP A2A Agent (#7319) (b10e164d8)
- SKY-12000 Copilot: give each turn a single decision-owner so conflicting checks can't drop work (#7318) (0550b7959)
- feat(SKY-12303): decouple spine imposition from first authoring call; gate landing on download-reached (#7316) (d2edf46b2)
- fix(SKY-11952): force-persist waits for the full credential flow before grading a login goal-complete (#7315) (dcdf769ab)
- fix(SKY-12307): make the copilot repair-ceiling streak progress-gated (#7314) (9d8d3a090)
- fix(SKY-12301): stop a never-fired conditional check from failing a completed workflow (#7313) (19a732d82)
- feat(SKY-12181): verify Copilot outputs the page confirms, instead of always hedging (dormant until SKY-12306) (#7312) (4ad169f64)
- SKY-12156: compile grounded Copilot output extraction recipes (#7310) (9793647db)
- fix(SKY-12271): Email Inbox review follow-ups (#7309) (448f06903)
- fix(SKY-12164): repair incomplete workflow outputs on first validation (#7308) (417cac70d)
- feat(SKY-12253): add run_type filter to runs list (BE param + FE facet) (#7307) (a4c74f68d)
- fix(SKY-12269): return 422 not 500 for malformed update_workflow body (#7306) (3dfd788fb)
- fix(SKY-12173): import bundled multi-workflow YAML/JSON exports (#7305) (f04121ba2)
- test(SKY-12248): unbreak main — make file-upload log assertion order-independent (#7304) (9ceee3272)
- feat(SKY-12068): add Email Inbox workflow block (Gmail + Outlook) (#7303) (20845c8f1)
- feat(SKY-11553): allow-by-default Playwright facade for secure CodeBlock runner (#7302) (61d0bb15b)
- feat(SKY-12199): add an optional prompt to the file upload (Cloud Storage) block to control which files are uploaded (#7301) (90520906a)
- fix(SKY-12252): restore skyvern.platform tag when first-block URL is unresolved (#7300) (81a8b0847)
- feat(SKY-12254): completion-time system tags (status, execution mode, failure category) (#7299) (f0ac794f2)
- feat: add create-time run provenance tags (SKY-12252) (#7298) (aad031759)
- feat(SKY-12179): stage workflow_run_tag_events + source docs (#7297) (620294294)
- feat(SKY-12251): expand skyvern.platform tagging via cloud-only detector (cache key unchanged) (#7296) (52fc6f969)
- fix(SKY-11571): repair main CI — add resolve_feature_enabled_unrecorded to 4 missed provider fakes (#7295) (42484b20f)
- fix(SKY-11718): require affirmative NANP evidence for bare-digit tel fill + success-path logging (#7292) (05d0053f9)
- fix(SKY-12202): correct block-run terminal copy and turn-overlap dedup (#7291) (5b9ff64d8)
- feat(SKY-11970): add phased progress model to the copilot build (#7290) (d6936866b)
- feat(SKY-12134): bind Google OAuth credentials to their OAuth client config (#7288) (6e384633b)
- fix(SKY-11933): harden custom-select is_choice_input classification (#7287) (b72395646)
- fix(SKY-11946, SKY-11945): compute select shadow agreement by normalized committed value (#7286) (96d070896)
- feat(SKY-11953): observe omits input values by default; passwords never emitted (#7285) (f25f0b97a)
- fix(SKY-12182): keep every workflow step the copilot performed, and log why a step is rejected (#7284) (2e5aa4920)
- feat(SKY-12026): open-source Google integrations + org-level OAuth client config (#7283) (1e0afae8a)
- test(SKY-12171): eliminate measured slow-test hotspots (adversarially reviewed) (#7282) (081ad6adb)
- feat(submission): shadow-mode deterministic submission signal behind default-off flag (SKY-12162) (#7281) (31e6bdacd)
- feat(SKY-12187): stream real codegen progress while copilot writes code (#7277) (4961777eb)
- feat(SKY-12155): thread contingent antecedent path into author-time output contract + mint-time invariant (#7276) (77db77a5a)
- fix(SKY-12196): stop gating block-status polling on the narration LLM floor (#7275) (407f1ce5f)
- feat(SKY-12139): add isolated copilot credential card component (#7274) (eefba9c90)
- feat(SKY-12136): g2 unified review gate behind copilot_ux_v1 (#7273) (8d6080800)
- feat(SKY-12180): register GPT-5.6 sol/terra/luna model + flex-fallback router keys (#7272) (fd9c1eb07)
- fix(SKY-11300): require a typed challenge-evidence carrier to assert any anti-bot category (#7271) (d18286807)
- feat(SKY-12190): make timeline/block-detail split vertically resizable (#7270) (d79f9109d)
- feat(SKY-12191): add new-output indicator to the studio Outputs toggle (#7269) (1b0c2a4b3)
- feat(SKY-12135): add SFTP target to the file upload (Cloud Storage) block (#7268) (702d1095e)
- fix(settings): org update form + schema (#7267) (aa60b3a14)
- fix(SKY-11720): read back auto-formatting card-number inputs and re-enter atomically on mismatch (#7264) (7b2a1cc50)
- fix(SKY-11720): mock supports_text_input in tel/card routing test (unblocks main) (#7266) (d0228f6c1)
- test(SKY-12085): prove dispatched terminal-page capture reaches judgment verdicts (#7263) (552813f8d)
- perf(SKY-12171): eliminate measured slow-test hotspots (#7262) (160f28dc7)
- fix(SKY-12062): return 422 for send_email block with undeclared smtp params (#7260) (e2600be5f)
- feat(SKY-12071): add Split PDF workflow block (#7258) (df20379e5)
- fix(SKY-12158): reserve lightning bolt for cached runs on /runs (#7257) (36703cb18)
- perf(SKY-12165): thread app_url through SkyvernBrowser, drop extra get_browser_session call (#7256) (e8e3448a9)
- fix(SKY-12102): key copilot code-block synthesis on captured control-state (#7254) (0b0fce76e)
- feat(llm): CONTENT_FILTER_RESCUE_LLM_NAME flag picks the content-filter rescue model (SKY-11766) (#7253) (24863e850)
- test: make embedded E2E tests opt-in via SKYVERN_EMBEDDED_E2E (#7252) (ad1b50cf5)
- feat(SKY-12100): lead session MCP results with app_url + recording_url (#7251) (806977ece)
- fix(SKY-12101): persist observe refs per browser session for cross-call execute (#7250) (962acb3cd)
- feat(SKY-11672): schema-first storage for heal episodes and heal proposals (#7249) (4d2aeda08)
- feat(SKY-12053): path-neutral heal chokepoint for both code-block engines (#7248) (38b178f22)
- fix(SKY-12069): fail closed when zero requested-output criteria grade the deliverable (#7247) (9b18e40d4)
- feat(SKY-11677): navigate dead-nav self-heal seats to the authored goto target (#7246) (0ee505b24)
- feat(SKY-11673): browser-adoption seam for runtime self-heal turns (#7245) (295d1935f)
- fix(SKY-12073): make the copilot repair ceiling reachable after a failed run (#7244) (f2acc9293)
- fix(SKY-11539): resolve exactly-named org credential regardless of classifier status/kind (#7243) (c269e36c1)
- fix(SKY-12019): guard clear/fill from iframe targets (#7242) (55709c945)
- feat(SKY-11859): reach positive page-evidence carrier on dispatched/STANDARD copilot runs (#7241) (9e49dff96)
- fix(workflow-editor): wait/code block fields, breakout button, last-run values (#7239) (f09632c51)
- SKY-12058: Distinguish MCP trigger type (#7236) (95e57cf43)
- fix(schedules): preserve paused state on edit, stricter cron validation, schedule UX (#7235) (b4e6c8f1c)
- feat(SKY-11973): copilot narrates studio runs happening next to it (#7233) (e9ef9529c)
- feat(SKY-11339): progressive action reveal for copilot verify cards (#7232) (3aaffb667)
- refactor(SKY-11967): remove internal run-viewing toggle + orphaned compact action list (#7231) (59fd1982d)
- chore: remove deprecated LangChain and LlamaIndex integrations (#7095) (e174afd63)
- security: fix cryptography HIGH vulnerability in integrations/llama_index (#6935) (edf38e68f)
- fix(SKY-11996): restore copilot actuation-obligation feature reverted by #13210 (#7230) (bf3624d78)
- security: restore jupyter-server >=2.20.0 and msgpack >=1.2.1 (regressed by SKY-12044) (#7229) (d79359d55)
- security: fix vite HIGH-severity fs.deny bypass (alert #720) (#6772) (7b4dd7e7c)
- security: bump form-data to 4.0.6 in skyvern-frontend (#6912) (7120df409)
- security: pin undici to ^7.28.0 in skyvern-frontend (fixes 2 HIGH alerts) (#6958) (97da02c14)
- SKY-12070 mint requested-output criteria for quoted fields (#7227) (65d28b166)
- fix(SKY-12044): resolve in-process page.extract() via SkyvernPage recorder wrapper (#7226) (33ee848e0)
- security: bump jupyter-server >=2.20.0 and msgpack >=1.2.1 (#6910) (3e260f21b)
- feat(SKY-11897): typed judgment-evidence grounding — confirm/refute/abstain from independent packet (#7224) (6a5226d19)
- fix(SKY-11958): fail closed on ambiguous output-contract owner resolution (#7223) (bb7fe7158)
- fix(SKY-10708): thread loop value into cached-block agent fallback payload (#7221) (8b78d8e8f)
- SKY-11940 MCP browser tool schemas: selector/ref leads, intent is the explicit AI fallback (#7220) (633b65d33)
- fix(SKY-12078): restore run-level editable credential input for single-credential login blocks (#7219) (26f73ec04)
- [NO-TICKET] Delete tmp directory (#7217) (7681a7cd2)
- fix(SKY-11623): preserve /discover prompt in Copilot handoff (#7216) (ac7ffaf6e)
- SKY-11911 scout fill carry rebind (#7215) (d72b6a1ba)
- SKY-11950 typed degraded completion terminal (#7214) (400fd43d7)
- docs(mcp): add Claude Desktop bundle release runbook (#7213) (c2038aaaf)
- Fix staging preview CORS allowlist (SKY-12074) (#7212) (ac01aca99)
- fix: log BlockedHost download rejections at warning instead of error (#7211) (265679e9d)
- fix(SKY-12018): classify external download HTTP errors (#7210) (2452bf60e)
- feat(SKY-11909): /analytics console restructure — Phase 1 (v4.2) (#7209) (777e842c3)
- ci(SKY-12002): unbind pytest-shard critical path from two outlier tests (#7208) (337c00259)
- chore(mcpb): rebuild skyvern-claude-desktop.mcpb v1.0.46 (#7207) (f339ff76d)
- Add run tag frontend hooks (#7205) (a3ce97384)
- Fix workflow list query alias (SKY-12016) (#7206) (1eb2e64f0)
- Add workflow run tag event data layer (#7204) (78fa30ed1)
- fix(mcp): route empty-API-key 401s to the Configure dialog instead of OAuth (#7203) (bee2b836c)
- fix(SKY-12021): show user-inputted prompt for file download block (#7202) (323adca6a)
- fix(SKY-11991): expand collapsed loop/conditional ancestors before block jump (#7201) (bff497e2e)
- feat(SKY-11988): add credentialPrompt signal to copilot narrative payload (#7200) (9949fb0de)

**Full Changelog**: https://github.com/Skyvern-AI/skyvern/compare/v1.0.46...v1.0.47


## What's Changed
* feat(SKY-11988): add credentialPrompt signal to copilot narrative payload by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7200
* fix(SKY-11991): expand collapsed loop/conditional ancestors before block jump by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7201
* fix(SKY-12021): show user-inputted prompt for file download block by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7202
* fix(mcp): route empty-API-key 401s to the Configure dialog instead of OAuth by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7203
* Add workflow run tag event data layer by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7204
* Fix workflow list query alias (SKY-12016) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7206
* Add run tag frontend hooks by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7205
* chore(mcpb): rebuild skyvern-claude-desktop.mcpb v1.0.46 by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7207
* ci(SKY-12002): unbind pytest-shard critical path from two outlier tests by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7208
* feat(SKY-11909): /analytics console restructure — Phase 1 (v4.2) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7209
* fix(SKY-12018): classify external download HTTP errors by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7210
* fix: log BlockedHost download rejections at warning instead of error by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7211
* Fix staging preview CORS allowlist (SKY-12074) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7212
* docs(mcp): add Claude Desktop bundle release runbook by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7213
* SKY-11950 typed degraded completion terminal by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7214
* SKY-11911 scout fill carry rebind by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7215
* fix(SKY-11623): preserve /discover prompt in Copilot handoff by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7216
* [NO-TICKET] Delete tmp directory by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7217
* fix(SKY-12078): restore run-level editable credential input for single-credential login blocks by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7219
* SKY-11940 MCP browser tool schemas: selector/ref leads, intent is the explicit AI fallback by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7220
* fix(SKY-10708): thread loop value into cached-block agent fallback payload by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7221
* fix(SKY-11958): fail closed on ambiguous output-contract owner resolution by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7223
* feat(SKY-11897): typed judgment-evidence grounding — confirm/refute/abstain from independent packet by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7224
* security: bump jupyter-server >=2.20.0 and msgpack >=1.2.1 by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6910
* fix(SKY-12044): resolve in-process page.extract() via SkyvernPage recorder wrapper by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7226
* SKY-12070 mint requested-output criteria for quoted fields by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7227
* security: pin undici to ^7.28.0 in skyvern-frontend (fixes 2 HIGH alerts) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6958
* security: bump form-data to 4.0.6 in skyvern-frontend by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6912
* security: fix vite HIGH-severity fs.deny bypass (alert #720) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6772
* security: restore jupyter-server >=2.20.0 and msgpack >=1.2.1 (regressed by SKY-12044) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7229
* fix(SKY-11996): restore copilot actuation-obligation feature reverted by #13210 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7230
* security: fix cryptography HIGH vulnerability in integrations/llama_index by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/6935
* chore: remove deprecated LangChain and LlamaIndex integrations by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7095
* refactor(SKY-11967): remove internal run-viewing toggle + orphaned compact action list by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7231
* feat(SKY-11339): progressive action reveal for copilot verify cards by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7232
* feat(SKY-11973): copilot narrates studio runs happening next to it by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7233
* fix(schedules): preserve paused state on edit, stricter cron validation, schedule UX by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7235
* SKY-12058: Distinguish MCP trigger type by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7236
* fix(workflow-editor): wait/code block fields, breakout button, last-run values by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7239
* feat(SKY-11859): reach positive page-evidence carrier on dispatched/STANDARD copilot runs by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7241
* fix(SKY-12019): guard clear/fill from iframe targets by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7242
* fix(SKY-11539): resolve exactly-named org credential regardless of classifier status/kind by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7243
* fix(SKY-12073): make the copilot repair ceiling reachable after a failed run by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7244
* feat(SKY-11673): browser-adoption seam for runtime self-heal turns by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7245
* feat(SKY-11677): navigate dead-nav self-heal seats to the authored goto target by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7246
* fix(SKY-12069): fail closed when zero requested-output criteria grade the deliverable by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7247
* feat(SKY-12053): path-neutral heal chokepoint for both code-block engines by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7248
* feat(SKY-11672): schema-first storage for heal episodes and heal proposals by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7249
* fix(SKY-12101): persist observe refs per browser session for cross-call execute by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7250
* feat(SKY-12100): lead session MCP results with app_url + recording_url by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7251
* test: make embedded E2E tests opt-in via SKYVERN_EMBEDDED_E2E by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7252
* feat(llm): CONTENT_FILTER_RESCUE_LLM_NAME flag picks the content-filter rescue model (SKY-11766) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7253
* fix(SKY-12102): key copilot code-block synthesis on captured control-state by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7254
* perf(SKY-12165): thread app_url through SkyvernBrowser, drop extra get_browser_session call by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7256
* fix(SKY-12158): reserve lightning bolt for cached runs on /runs by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7257
* feat(SKY-12071): add Split PDF workflow block by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7258
* fix(SKY-12062): return 422 for send_email block with undeclared smtp params by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7260
* perf(SKY-12171): eliminate measured slow-test hotspots by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7262
* test(SKY-12085): prove dispatched terminal-page capture reaches judgment verdicts by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7263
* fix(SKY-11720): mock supports_text_input in tel/card routing test (unblocks main) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7266
* fix(SKY-11720): read back auto-formatting card-number inputs and re-enter atomically on mismatch by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7264
* fix(settings): org update form + schema by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7267
* feat(SKY-12135): add SFTP target to the file upload (Cloud Storage) block by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7268
* feat(SKY-12191): add new-output indicator to the studio Outputs toggle by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7269
* feat(SKY-12190): make timeline/block-detail split vertically resizable by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7270
* fix(SKY-11300): require a typed challenge-evidence carrier to assert any anti-bot category by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7271
* feat(SKY-12180): register GPT-5.6 sol/terra/luna model + flex-fallback router keys by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7272
* feat(SKY-12136): g2 unified review gate behind copilot_ux_v1 by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7273
* feat(SKY-12139): add isolated copilot credential card component by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7274
* fix(SKY-12196): stop gating block-status polling on the narration LLM floor by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7275
* feat(SKY-12155): thread contingent antecedent path into author-time output contract + mint-time invariant by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7276
* feat(SKY-12187): stream real codegen progress while copilot writes code by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7277
* feat(submission): shadow-mode deterministic submission signal behind default-off flag (SKY-12162) by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7281
* test(SKY-12171): eliminate measured slow-test hotspots (adversarially reviewed) by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7282
* feat(SKY-12026): open-source Google integrations + org-level OAuth client config by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7283
* fix(SKY-12182): keep every workflow step the copilot performed, and log why a step is rejected by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7284
* feat(SKY-11953): observe omits input values by default; passwords never emitted by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7285
* fix(SKY-11946, SKY-11945): compute select shadow agreement by normalized committed value by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7286
* fix(SKY-11933): harden custom-select is_choice_input classification by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7287
* feat(SKY-12134): bind Google OAuth credentials to their OAuth client config by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7288
* feat(SKY-11970): add phased progress model to the copilot build by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7290
* fix(SKY-12202): correct block-run terminal copy and turn-overlap dedup by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7291
* fix(SKY-11718): require affirmative NANP evidence for bare-digit tel fill + success-path logging by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7292
* fix(SKY-11571): repair main CI — add resolve_feature_enabled_unrecorded to 4 missed provider fakes by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7295
* feat(SKY-12251): expand skyvern.platform tagging via cloud-only detector (cache key unchanged) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7296
* feat(SKY-12179): stage workflow_run_tag_events + source docs by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7297
* feat: add create-time run provenance tags (SKY-12252) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7298
* feat(SKY-12254): completion-time system tags (status, execution mode, failure category) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7299
* fix(SKY-12252): restore skyvern.platform tag when first-block URL is unresolved by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7300
* feat(SKY-12199): add an optional prompt to the file upload (Cloud Storage) block to control which files are uploaded by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7301
* feat(SKY-11553): allow-by-default Playwright facade for secure CodeBlock runner by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7302
* feat(SKY-12068): add Email Inbox workflow block (Gmail + Outlook) by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7303
* test(SKY-12248): unbreak main — make file-upload log assertion order-independent by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7304
* fix(SKY-12173): import bundled multi-workflow YAML/JSON exports by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7305
* fix(SKY-12269): return 422 not 500 for malformed update_workflow body by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7306
* feat(SKY-12253): add run_type filter to runs list (BE param + FE facet) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7307
* fix(SKY-12164): repair incomplete workflow outputs on first validation by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7308
* fix(SKY-12271): Email Inbox review follow-ups by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7309
* SKY-12156: compile grounded Copilot output extraction recipes by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7310
* feat(SKY-12181): verify Copilot outputs the page confirms, instead of always hedging (dormant until SKY-12306) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7312
* fix(SKY-12301): stop a never-fired conditional check from failing a completed workflow by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7313
* fix(SKY-12307): make the copilot repair-ceiling streak progress-gated by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7314
* fix(SKY-11952): force-persist waits for the full credential flow before grading a login goal-complete by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7315
* feat(SKY-12303): decouple spine imposition from first authoring call; gate landing on download-reached by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7316
* SKY-12000 Copilot: give each turn a single decision-owner so conflicting checks can't drop work by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7318
* GCP A2A Agent by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7319
* Cap LiteLLM Redis connection pools (#SKY-12319) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7320
* feat(SKY-12255): persist per-run topup credits consumed on workflow_runs by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7321
* ci: restore all-files pre-commit checks on pull requests by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7328
* Sync OpenAPI reference from production by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7329
* fix(SKY-12131): batch workflow-run parameter definition lookups to remove sequential queries by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7330
* Clarify MCP tool descriptions to fix wrong-tool routing errors by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7333
* fix(SKY-11618): drive native <select> via select_option under unrelated overlays by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7334
* refactor(SKY-11695): make enforcement→streaming_adapter a one-way module-level dependency by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7335
* refactor(SKY-11693): move copilot workflow-YAML processing out of routes into copilot/ by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7337
* test(SKY-11692): guard against in-package test files (both pytest conventions) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7338
* fix(SKY-12272): normalize leaked code-block recorder proxies to JSON-safe output by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7339
* refactor(SKY-11694): move EventSourceStream SSE transport routes/ → core/ by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7340
* test(SKY-11705): characterization tests for _execute_single_block (pin phase seams) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7343
* test(SKY-11712): pin router/non-router LLM handler parity (characterization gate) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7342
* fix(SKY-11962): suppress orphaned patchright TargetClosedError future noise by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7344
* fix(SKY-12341): stop masking OTP-extraction backend failures as client 400s by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7348
* SKY-12339: code-first authoring producer reads per-column tables (TABLE_COLUMN) into keyed returns via the shared reader by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7349
* fix(SKY-11851): treat missing S3 object as terminal not-found on download by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7350
* test(SKY-11696): characterization tests for agent_step (pin 12 uncovered behaviors) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7352
* fix(SKY-11690): rewire wait_utils killswitch through app.AGENT_FUNCTION; delete cloud import by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7353
* refactor(SKY-11707): extract script-attempt and agent-execution phases from _execute_single_block by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7354
* SKY-12357: Make Workflow Copilot loop guard argument-aware so multi-field builds are not halted as loops by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7355
* fix(home): thread Generate Script + Data Schema through the prompt box, pill/empty-state UX by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7356
* feat(SKY-12136): opt-in keep_pending_proposal survives no-op turns by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7357
* fix(SKY-12194): humanize block display names in copilot chat by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7358
* fix(SKY-11971): reclassify precondition redirects out of the error stream by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7359
* feat(SKY-12138): pause copilot BUILD turns on a mid-loop credential ask by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7360
* refactor(SKY-11708): extract conditional-episode and cache-tracking phases from _execute_single_block by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7361
* fix(SKY-12372): make round robin selectable on the run credential rotation page by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7363
* security: fix 8 skyvern-ts/client vulnerabilities (vitest critical + 7 high) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7225
* security: restore CodeQL-modeled path-containment sanitizer in download_file by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7218
* fix: remove ReDoS ambiguity in PdfFillBlock test regex (code scanning 329) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7371
* feat(SKY-12137): queued-warmup bubble footer + Confirm chip for copilot QA turns by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7372
* Support Google Drive uploads over 5 MB via resumable upload (SKY-12374) by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7373
* fix(SKY-12320): render worker foreign-record tracebacks as one structured log entry by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7325
* SKY-11838: Copilot: recognize scouted extraction data by value format, not just page labels by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7374
* fix(SKY-12332): reconcile the persisted copilot block against the full captured trajectory by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7375
* refactor(SKY-11699): extract _finalize_step_execution from ForgeAgent.agent_step by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7376
* security: bump uv.lock deps to clear 8 Dependabot alerts (3 high) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7379
* chore(deps-dev): bump pytest from 7.4.4 to 9.0.3 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7380
* SKY-12368: capture click-to-reveal values into structured copilot page evidence by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7381
* feat(SKY-12404): log which app (Claude, Cursor, Hermes) each MCP session comes from by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7383
* fix(SKY-11934): sanitize remaining MCP ApiError leak paths by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7384
* fix(log-noise): downgrade handled cached-script selector miss to warning by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7385
* fix(SKY-8804): log cached-block AI fallback at warning not error by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7386
* fix(SKY-12378): prefill run inputs when re-running from a viewed run in Studio by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7388
* Chunked resumable Google Drive upload with resume-on-failure (SKY-12394) by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7391
* fix(SKY-12367): release the local Playwright driver when browser-context creation fails by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7392
* fix(SKY-12367): release upload aiotask tracking on every wait exit path by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7394
* fix(SKY-12367): release recording exfiltration channel driver and unpin JS asset cache by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7396
* Copilot: grounded parameterized-selection so persisted code reads a click-embedded input (SKY-12316, partial) by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7397
* security: bump skyvern-frontend transitive deps (dompurify/react-router/protobufjs/js-yaml/otel) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7387
* Update API specifications with fern api update by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7389
* fix(runs-history): guard sub-3-char search + render load-error state by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7401
* security: clear internal-tooling npm/pip Dependabot alerts (dashboard/support-agent/mcpb/reverse-proxy/fathom) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7404
* security: bump json-repair to 0.60.1 (HIGH DoS #557) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7405
* fix(captcha): deliver equation screenshot to arithmetic solver in no-images mode (SKY-11671) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7406
* Surface Odysseys MCP benchmark runs on the eval dashboard by @trevor-cheung in https://github.com/Skyvern-AI/skyvern/pull/7407
* Add light-mode support to the new workflows UI by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7408
* Jump the studio editor to a workflow block when its timeline item is clicked by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7409
* feat(SKY-12216): heal-content sanitizer for code/error UI surfaces by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7410
* Authenticate the download urllib fallback and reject HTML login pages saved as binary files by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7411
* Surface run-level tags: chips + filter on run lists, and analytics picker keys by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7412
* Cap and dedupe parsed run-tag filter terms (SKY-12327 follow-up) by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7413
* feat(SKY-12217): heal-episodes read API + query index + dedupe semantics by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7414
* feat(SKY-12215): self-heal reliability aggregation service (runs × episodes) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7415
* fix(SKY-12081): author-time reject for unresolvable freehand copilot selectors + idempotent login by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7419
* fix(SKY-12401): make large workflows readable and safely editable through MCP by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7431
* fix(pbs): reclaim worker-local browser state when the shared session row is closed by another process by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7440
* security: add ignore-scripts .npmrc to skyvern-ts/client (supply-chain alert) by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7400
* Lead repeatable agent scheduling with a date/time picker flow by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7443
* fix(SKY-12453): reserved system tags read-only + Labels page search and creation by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7446
* feat(SKY-11971): condense narrator chatter and retries in the copilot build stream by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7420
* Sync OpenAPI reference from production by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7427
* fix(SKY-12218): stop pinning the alembic head hash in the self-heal schema test by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7445
* Revert the overlay-blocked click change (#13377) to restore the coordinate-click fallback by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7425
* SKY-12163 (part 2) Stabilize typed request-slot contracts by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7448
* Detect CodeBlock secure-runner downgrades, record execution locus, fix task_proxy_usage grants, remap S3 CSI log severities by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7434
* fix(SKY-12441): default studio layout mirrors legacy edit/run views by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7426
* fix: isolate untrusted webpage data in agent prompts by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7452
* feat: add action history option to login blocks by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7453
* SKY-12163: Don’t guess exact output requirements by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7451
* feat(SKY-11944): skyvern_select_option works on custom dropdowns and autocomplete, not just native <select> by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7454
* SKY-12163: Preserve Copilot completion checks when workflows are saved by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7455
* Self-discard artifact upload tasks and stop resurrecting the execution-channel driver by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7456
* fix(SKY-12474): open Copilot pane on Discover → Studio handoff by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7457
* fix(SKY-12218): drop the pinned revision hash from the self-heal ancestors assertion by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7458
* Mint short-lived artifact URLs on demand for recording playback by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7459
* fix: keep MCP-generated Playwright snippets valid when instruction text has quotes by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7460
* feat(SKY-12054): harness engine swap — copilot scout-loop recovery behind enable_self_healing by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7462
* Stop deterministic normal-select from falling back to the LLM on false negatives by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7464
* fix(SKY-12342): recognize commit-only copilot reach by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7466
* security: resolve all open Dependabot alerts across JS/TS lockfiles (SKY-12556) by @suchintan in https://github.com/Skyvern-AI/skyvern/pull/7467
* [SKY-12007] Add engine-neutral browser error taxonomy by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7468
* fix(downloads): recover missing file extension by sniffing content by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7470
* Searchable credential picker in the workflow builder (uncap the 100-credential dropdown) by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7472
* Show all block prompts under Agent inputs in the Workflow Studio run view by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7473
* Recover phone numbers rewritten by country-aware fields by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7474
* refactor(SKY-12367): boot the screenshot streaming worker with a minimal app runtime by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7378
* [SKY-12007] Scope CDP http(s) redaction to CDP context-creation errors by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7475
* [SKY-12007] S2: structural page-vs-frame predicate + browser-object identity AST guard by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7476
* Add PII-safe lineage telemetry for download filename naming (SKY-12516) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7478
* feat(SKY-12397): tell coding agents when a workflow already has reusable code by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7479
* fix(SKY-12384): gate copilot action cards during history load + keep queued prompt visible by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7477
* fix(SKY-12383): commit invalid combobox selection after typing surfaces its options by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7480
* Fix LLM router fallback-succeeded log firing on every flex-tier request by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7482
* Verify checkbox toggles instead of navigating in chain_click label/coordinate fallbacks (SKY-12543) by @LawyZheng in https://github.com/Skyvern-AI/skyvern/pull/7483
* Refresh static artifact URLs on demand: screenshots, viewers, download links by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7484
* Stop copying the chrome profile template on CDP-connect paths and sweep stale temp artifacts by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7485
* Exclude orgs under 90 days old from Gemini flex LLM routing by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7486
* feat(SKY-12098): tell coding agents when a workflow carries skill instructions by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7487
* Batch endpoint for workflow self-heal reliability by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7489
* Log a structured outcome event for every custom-select opportunity (observation-only) by @marcmuon in https://github.com/Skyvern-AI/skyvern/pull/7490
* fix: harden SSRF validation for resolved hosts by @AronPerez in https://github.com/Skyvern-AI/skyvern/pull/7491
* SKY-12544: mint post-run gradeable criteria for page-produced confirmation tokens by @andrewneilson in https://github.com/Skyvern-AI/skyvern/pull/7492
* Surface workflow self-heal reliability (panel + run-page uplink) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7493
* feat: workflows-list reliability badge (self-heal UX Phase 1b) by @pedrohsdb in https://github.com/Skyvern-AI/skyvern/pull/7494
* feat(SKY-12446): search run timeline blocks by label and jump to match by @celalzamanoglu in https://github.com/Skyvern-AI/skyvern/pull/7495
* Bump version to 1.0.47 by @wintonzheng in https://github.com/Skyvern-AI/skyvern/pull/7481


**Full Changelog**: https://github.com/Skyvern-AI/skyvern/compare/v1.0.46...v1.0.47