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