gradio@6.20.0
📦 gradioView on GitHub →
✨ 8 features🐛 15 fixes🔧 10 symbols
Summary
This release introduces significant workflow enhancements, migrates Image components to Svelte 5, and resolves several critical bugs related to component rendering, security, and event handling.
✨ New Features
- Added "Download All" functionality to the Gallery component.
- Workflow: Downstream output is now shown when a subgraph runs.
- Workflow: Updated input change handling logic.
- Migrated Image components to Svelte 5.
- Workflow: Nodes are now automatically added when clicking on a port.
- Workflow: Validated the model before invoking the inference client.
- Replaced deprecated Starlette 422 status constant in the queue validator error path.
- Workflow: Injected token into function calls.
🐛 Bug Fixes
- Fixed `JSONDecodeError` when loading cached examples that contained negative number outputs.
- Security fix: Served `/gradio_api/file=<url>` via an SSRF-safe streaming proxy instead of an open redirect.
- Workflow: Forwarded `_token` to bound functions when no request session is present.
- Fixed `gr.Plot` collapsing to zero height when using autosize Plotly figures.
- Fixed embedded Gradio apps growing infinitely tall on HF Spaces when using `vh`/`%` heights or `fill_height`.
- Enforced `max_file_size` for multipart uploads to the `/component_server` route.
- Fixed `gr.ImageEditor` high CPU usage when idle by sleeping the render loop when no changes are occurring.
- Fixed ImageEditor transform tools and hidden cleanup issues.
- Fired `state.change()` events for streaming (`.stream()`) events.
- Fixed ImageEditor brush texture resets.
- Used same-origin credentials in the JS client to restore functionality for cross-origin embeds.
- Fixed `gr.Tabs.select()` event not firing when switching tabs.
- Waited for in-flight head scripts before running `js_on_load` in `gr.HTML`.
- Fixed Column component staying hidden after a multi-yield visibility update.
- Fixed `TypeError: this.app.$destroy is not a function` when embedding a Gradio app using the `<gradio-app>` web component.