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