# gradio ## 6.31.0 ### Features - [#13958](https://github.com/gradio-app/gradio/pull/13958) [`de986c7`](https://github.com/gradio-app/gradio/commit/de986c72372e233ffaaa7abe1b93608d4d115065) - Write gr.Video format conversions and watermarks into the cache. Thanks @abidlabs! - [#13966](https://github.com/gradio-app/gradio/pull/13966) [`4b58c80`](https://github.com/gradio-app/gradio/commit/4b58c80fd67fe42bd4c1b1533a1c825afb1a979d) - forward ZeroGPU X-IP-Token from gr.Workflow + stop reporting quota errors as GPU unavailable. Thanks @hannahblair! - [#13994](https://github.com/gradio-app/gradio/pull/13994) [`15199c0`](https://github.com/gradio-app/gradio/commit/15199c0faf5fa2a477ab9cf25178010ce8bc480e) - handle system clashing with browser scrolling in `gr.workflow`. Thanks @hannahblair! - [#13996](https://github.com/gradio-app/gradio/pull/13996) [`336590f`](https://github.com/gradio-app/gradio/commit/336590f061a3ee59ca9592e3c6675bad616e35eb) - workflow: ensure inline checkbox works. Thanks @hannahblair! - [#13971](https://github.com/gradio-app/gradio/pull/13971) [`b3c050c`](https://github.com/gradio-app/gradio/commit/b3c050c7d445a9d3d9ae5fd76adef8d5e6052874) - fit gr.workflow in full screen layouts. Thanks @hannahblair! - [#13963](https://github.com/gradio-app/gradio/pull/13963) [`3570032`](https://github.com/gradio-app/gradio/commit/35700328a4dbe4a96708ed891dc661db7102dae5) - ensure app/workflow toggle is visible in tall spaces. Thanks @hannahblair! - [#13970](https://github.com/gradio-app/gradio/pull/13970) [`c270f35`](https://github.com/gradio-app/gradio/commit/c270f35d91995d3f33b77b9504567d6d1c9b7216) - Don't flash the app view before showing a Workflow Space's owner the canvas. Thanks @abidlabs! - [#13949](https://github.com/gradio-app/gradio/pull/13949) [`526c243`](https://github.com/gradio-app/gradio/commit/526c24340024dfae9c9a7709aad552382ed99f86) - Fix infinite loop when a file range extends past EOF. Thanks @cbensimon! - [#14015](https://github.com/gradio-app/gradio/pull/14015) [`56f0f8d`](https://github.com/gradio-app/gradio/commit/56f0f8d9be57b0737b1f967fb90eed336e647212) - Require brotli>=1.2.1 (CVE-2026-111497). Thanks @dawoodkhan82! ### Fixes - [#13985](https://github.com/gradio-app/gradio/pull/13985) [`8a77753`](https://github.com/gradio-app/gradio/commit/8a77753ffd0cb7bf9c3c30d5f5a0aebb665cda30) - Record each user's run from a batched event to their own run history bucket. Thanks @hysts! - [#13981](https://github.com/gradio-app/gradio/pull/13981) [`68a1122`](https://github.com/gradio-app/gradio/commit/68a112234da6f48df003d0de9449b455ac5d9e5b) - Don't save runs started by a Timer tick or a page load to run history. Thanks @hysts! - [#13941](https://github.com/gradio-app/gradio/pull/13941) [`12cc9d4`](https://github.com/gradio-app/gradio/commit/12cc9d4cca0ecfa3f7a70ce445e8481382833b5f) - Render streamed markdown block by block instead of rebuilding the whole message. Thanks @hysts! - [#13979](https://github.com/gradio-app/gradio/pull/13979) [`1d6b6cb`](https://github.com/gradio-app/gradio/commit/1d6b6cb8a626c876ea5b66dfd9fc85d5776b53d0) - Save a `.stream()` input event to run history once, with its last output. Thanks @hysts! - [#13983](https://github.com/gradio-app/gradio/pull/13983) [`020c76c`](https://github.com/gradio-app/gradio/commit/020c76cd18e59609a26dc006f25d3bb071e3b8b2) - Don't rerun a `.stream()` handler on its last chunk when the stream ends. Thanks @hysts! ## 6.30.0 ### Features - [#13893](https://github.com/gradio-app/gradio/pull/13893) [`0d59e5e`](https://github.com/gradio-app/gradio/commit/0d59e5e75824fa1b2317717bcb982ce3d77e95db) - Add an app view to gr.Workflow. Thanks @abidlabs! - [#13866](https://github.com/gradio-app/gradio/pull/13866) [`ef1a961`](https://github.com/gradio-app/gradio/commit/ef1a9612f595316c9a98620e332742bf52d58d9b) - gr.Workflow: "Run this node" now reuses up-to-date upstream results instead of re-executing the whole upstream subgraph (Shift+click forces a full re-run). Also keeps a node's completed state after a run, which makes the stale-outline indicator work beyond the first few seconds. Thanks @yvrjsharma! - [#13937](https://github.com/gradio-app/gradio/pull/13937) [`dea2bf3`](https://github.com/gradio-app/gradio/commit/dea2bf33d79338b2e607689d4b77b9b37d31293b) - Preserve the alpha channel of images loaded into gr.ImageEditor (backport to 6.x). Thanks @abidlabs! ### Fixes - [#13936](https://github.com/gradio-app/gradio/pull/13936) [`0a7c8da`](https://github.com/gradio-app/gradio/commit/0a7c8da46e0d3918e24a3da6cd9b749e08eb8f6d) - Fix hidden Accordion revealed with open=True rendering empty. Thanks @abidlabs! - [#13940](https://github.com/gradio-app/gradio/pull/13940) [`c836e23`](https://github.com/gradio-app/gradio/commit/c836e23ae83b938c2677534955357aae8c26c358) - Keep custom tags visible in gr.Chatbot when allow_tags is set. Thanks @hysts! - [#13944](https://github.com/gradio-app/gradio/pull/13944) [`ff0dfca`](https://github.com/gradio-app/gradio/commit/ff0dfca072af1424d32d2acc43053915530366cb) - Escape LaTeX when restoring it into rendered markdown. Thanks @hysts! ## 6.29.1 ### Fixes - [#13930](https://github.com/gradio-app/gradio/pull/13930) [`86b44f2`](https://github.com/gradio-app/gradio/commit/86b44f261c43e55aadc635ddb7c08eb1741a1607) - Make gr.Gallery's empty state respect `sources`. Thanks @hysts! ## 6.29.0 ### Features - [`db9699e`](https://github.com/gradio-app/gradio/commit/db9699e0bfd364ef7ca104e348618cf235d1d0be) - Name rejected files in upload errors and fix a Document leak in sanitize. Thanks @abidlabs! - [`4814057`](https://github.com/gradio-app/gradio/commit/4814057e04a42853ac955cfc600c50ea5a79b3c8) - Add display controls for examples. Note: `gr.Interface` now hides the `additional_inputs` columns in its examples table by default; their values are still loaded when an example is selected. Thanks @abidlabs! - [`3111c06`](https://github.com/gradio-app/gradio/commit/3111c069d59ccd4ed5b4d2118baa8ada62569bfd) - Add height/max_height to gr.Accordion and gr.Tab, fix gr.Code max_lines. Thanks @dawoodkhan82! - [`27731f4`](https://github.com/gradio-app/gradio/commit/27731f4cbcb0c98fea34b4cbdca32326e310ec62) - docs:Clarify that `None` is reserved to mean "no selection" in `Dropdown` and cannot be used as a choice's value. Thanks @dawoodkhan82! - [`96a79b1`](https://github.com/gradio-app/gradio/commit/96a79b19c8b4a0634c9ab4a969460c0ad55ddf77) - Refactor the remaining component unit tests and remove components.test.ts. Thanks @abidlabs! ### Fixes - [`70db61b`](https://github.com/gradio-app/gradio/commit/70db61b90e427d47621f75301c5202738f4d4329) - Import CSV and TSV files dropped on `gr.Dataframe`. Thanks @hysts! - [`0f889f0`](https://github.com/gradio-app/gradio/commit/0f889f075fe42409dbdeac510362e8307565e099) - Clear the loading status when a validator rejects an event. Thanks @hysts! - [#13901](https://github.com/gradio-app/gradio/pull/13901) [`e918914`](https://github.com/gradio-app/gradio/commit/e918914c7d2f6015b2eac268bf53a5cd75fe871b) - Release the microphone when a streaming gr.Audio recording is stopped. Thanks @hysts! - [#13902](https://github.com/gradio-app/gradio/pull/13902) [`526543d`](https://github.com/gradio-app/gradio/commit/526543d9a46593a8b388e568c0285eb05211668c) - Fetch channel data once per channel when encoding recorded audio to WAV. Thanks @hysts! - [#13903](https://github.com/gradio-app/gradio/pull/13903) [`7ba5437`](https://github.com/gradio-app/gradio/commit/7ba5437d7df65949ae65536b3e982d715907244a) - Fix streaming gr.Audio getting stuck at "queue: 1/1" when stopped while waiting. Thanks @hysts! - [`64359c6`](https://github.com/gradio-app/gradio/commit/64359c699abdfc6998906a6a5ae49c9a5b2b0f0c) - Stop validators from overwriting their own inputs. Thanks @hysts! - [`239db17`](https://github.com/gradio-app/gradio/commit/239db1773e61a8900929b58b6164f5371f981ebf) - Stop converting .m4b audio that browsers can already play. Thanks @abidlabs! - [#13924](https://github.com/gradio-app/gradio/pull/13924) [`ee3ca5f`](https://github.com/gradio-app/gradio/commit/ee3ca5f3ee5d831f132d40dfc8c1eec62cbcc51c) - Fix 16-bit audio conversion of uint8, int8 and float16 arrays on NumPy 2. Thanks @hysts! ## 6.28.0 ### Features - [#13840](https://github.com/gradio-app/gradio/pull/13840) [`aab9fcf`](https://github.com/gradio-app/gradio/commit/aab9fcf79ed77a5e5aeca8dd866b4ec94be08a70) - workflow: add styling to input nodes. Thanks @hannahblair! - [#13836](https://github.com/gradio-app/gradio/pull/13836) [`abf6825`](https://github.com/gradio-app/gradio/commit/abf6825e96f9f546fa8f9d8fb378c40ad967238e) - workflow: add pending node UI. Thanks @hannahblair! - [#13573](https://github.com/gradio-app/gradio/pull/13573) [`5ab610f`](https://github.com/gradio-app/gradio/commit/5ab610f1d376fc56169493495767144944ae0273) - workflow: add getting started templates. Thanks @hannahblair! - [#13850](https://github.com/gradio-app/gradio/pull/13850) [`cb0cdac`](https://github.com/gradio-app/gradio/commit/cb0cdac181efea2e5f6fdec35e65829245cf5ae5) - Add keyword arguments for event inputs. Thanks @abidlabs! - [#13851](https://github.com/gradio-app/gradio/pull/13851) [`afffecc`](https://github.com/gradio-app/gradio/commit/afffeccf69262a8070a091b50206c1e33b8c06c4) - Add configurable tab overflow and alignment. Thanks @abidlabs! - [#13843](https://github.com/gradio-app/gradio/pull/13843) [`8193f16`](https://github.com/gradio-app/gradio/commit/8193f1644cf8e3746f1d10e5643240768169f5c0) - Speed up multipage app navigation. Thanks @abidlabs! - [#13862](https://github.com/gradio-app/gradio/pull/13862) [`3353446`](https://github.com/gradio-app/gradio/commit/3353446616a56838e7e3cb3477fcd02664a0db40) - Expose live camera and slider position to event handlers. Thanks @abidlabs!/n `camera_position` on `gr.Model3D` and `slider_position` on `gr.ImageSlider` now follow the user, so a function whose parameter is annotated with the component reads the view that is actually on screen. Both can still be set from the backend to move the camera or the divider./n Also fixes, in the same area:/n - `camera_position` is applied on load for `display_mode="point_cloud"` and `display_mode="wireframe"`, not only for `"solid"`./n - `camera_position` is applied to interactive (uploadable) `gr.Model3D`, and `slider_position` to interactive `gr.ImageSlider`; both previously ignored it./n - `pan_speed` is passed through to the `gr.Model3D` viewer; it was silently stuck at its default./n - A Model3D camera observer was added on every camera update without ever being removed; exactly one is now registered, and it is cleaned up with the component. ### Fixes - [#13829](https://github.com/gradio-app/gradio/pull/13829) [`908b427`](https://github.com/gradio-app/gradio/commit/908b427466c2ac1d2950ca3b9fb39371f167fba0) - Fix `gr.Dataframe` shift+click range selecting rows hidden by the search. Thanks @hysts! - [#13847](https://github.com/gradio-app/gradio/pull/13847) [`0293306`](https://github.com/gradio-app/gradio/commit/0293306f3f25bf4cda44b6e819060edd5fcbd09e) - Encode streamed video's audio once per stream. Thanks @hysts! - [#13831](https://github.com/gradio-app/gradio/pull/13831) [`d99a49a`](https://github.com/gradio-app/gradio/commit/d99a49a1456dd11efbec75b74c29657466b12b30) - Keep the empty Dataframe's add row button on screen in fullscreen. Thanks @hysts! - [#13816](https://github.com/gradio-app/gradio/pull/13816) [`ca09427`](https://github.com/gradio-app/gradio/commit/ca0942761b2b276aa8fab26d076e8b1f1605fcf0) - Fix private Space file URLs in gr.load() and the JS client. Thanks @abidlabs! - [#13868](https://github.com/gradio-app/gradio/pull/13868) [`efef209`](https://github.com/gradio-app/gradio/commit/efef209b6549a9e85de8521e002faa15c77e5846) - Fix deep links on Windows, and only accept a deep link that looks like one. Thanks @dawoodkhan82! - [#13817](https://github.com/gradio-app/gradio/pull/13817) [`81b7b77`](https://github.com/gradio-app/gradio/commit/81b7b77787fad818d686f43fc2347b32d2ceea99) - Several fixes related to rendering of custom components. Thanks @abidlabs! ## 6.27.0 ### Features - [#13806](https://github.com/gradio-app/gradio/pull/13806) [`17f0e9e`](https://github.com/gradio-app/gradio/commit/17f0e9e54d38d66ad3e8a8271aec98688173068b) - Fix Audio stream reload timing and repeated recording previews. Thanks @abidlabs! - [#13763](https://github.com/gradio-app/gradio/pull/13763) [`7e83999`](https://github.com/gradio-app/gradio/commit/7e839990a092c11e049db171c98ceba76896e6b1) - add server-side run history in HF Hub buckets. Thanks @hannahblair! - [#13755](https://github.com/gradio-app/gradio/pull/13755) [`6dd0224`](https://github.com/gradio-app/gradio/commit/6dd02249b7a04dae62b430c2ffecaface5fb1238) - Send only app-owned files to the models and Spaces a workflow names. Thanks @abidlabs! - [#13805](https://github.com/gradio-app/gradio/pull/13805) [`265680d`](https://github.com/gradio-app/gradio/commit/265680d889ce9e88b402bd3d644fb28ba8dfaefc) - Load large Dropdown choices progressively on scroll. Thanks @abidlabs! - [#13783](https://github.com/gradio-app/gradio/pull/13783) [`f881a04`](https://github.com/gradio-app/gradio/commit/f881a0442658073dbf3a5b06779c1d7ad1d20869) - workflow: move delete button. Thanks @hannahblair! - [#13797](https://github.com/gradio-app/gradio/pull/13797) [`b7ce915`](https://github.com/gradio-app/gradio/commit/b7ce9157fdefe5bb92df0d74ec88c1048d87af00) - workflow: ensure text outputs stream. Thanks @hannahblair! - [#13794](https://github.com/gradio-app/gradio/pull/13794) [`44f8712`](https://github.com/gradio-app/gradio/commit/44f8712bfc11d53b714c9fc9b44cd7486a407777) - wf: delete button v2. Thanks @hannahblair! - [#13795](https://github.com/gradio-app/gradio/pull/13795) [`40dbb52`](https://github.com/gradio-app/gradio/commit/40dbb52f057d42a275a4e8a53fdfd133d3ec7d97) - workflow: improve mobile experience. Thanks @hannahblair! - [#13779](https://github.com/gradio-app/gradio/pull/13779) [`4eafc18`](https://github.com/gradio-app/gradio/commit/4eafc18cc5b7d42926eacf20231d94952d4b37a8) - Fix file URLs and sanitize invalid uploaded filenames. Thanks @abidlabs! - [#13790](https://github.com/gradio-app/gradio/pull/13790) [`1e9b643`](https://github.com/gradio-app/gradio/commit/1e9b6434564b3329d56f0281de84a3192e0967f0) - workflow: node value meta + a markdown node type. Thanks @abidlabs! - [#13710](https://github.com/gradio-app/gradio/pull/13710) [`e7fd8f4`](https://github.com/gradio-app/gradio/commit/e7fd8f482027cdd76376fcb383cc5e6866bab5a9) - workflow: inference hardcoded endpoint improvements. Thanks @hannahblair! ### Fixes - [#13642](https://github.com/gradio-app/gradio/pull/13642) [`19cb8f7`](https://github.com/gradio-app/gradio/commit/19cb8f7bce14a7961cd4f81adb7f629c64df4988) - Align launch and event JavaScript execution. Thanks @dawoodkhan82! - [#13787](https://github.com/gradio-app/gradio/pull/13787) [`2ae6f97`](https://github.com/gradio-app/gradio/commit/2ae6f97d0f5284c8f351ffe6d45da61944284d5a) - Fix Image and ImageEditor UI/UX issues. Thanks @abidlabs! - [#13800](https://github.com/gradio-app/gradio/pull/13800) [`7542edb`](https://github.com/gradio-app/gradio/commit/7542edb7ab6f3d987af6e2d7948eda6d35d8f26f) - Fix Colab connections when share=False. Thanks @abidlabs! - [#13804](https://github.com/gradio-app/gradio/pull/13804) [`0cceb3d`](https://github.com/gradio-app/gradio/commit/0cceb3d4fb2b09539a70cf9c1325cc75234e4697) - Fix custom component template generation. Thanks @abidlabs! - [#13815](https://github.com/gradio-app/gradio/pull/13815) [`a9a571a`](https://github.com/gradio-app/gradio/commit/a9a571acf755f9c3aa7721a3275b53b171ba8cdf) - Allow selecting unlabeled HighlightedText tokens. Thanks @abidlabs! - [#13830](https://github.com/gradio-app/gradio/pull/13830) [`c398576`](https://github.com/gradio-app/gradio/commit/c39857647609361ea6548972ced702861b775b1f) - Restore the Dataframe's outer border. Thanks @hysts! - [#13803](https://github.com/gradio-app/gradio/pull/13803) [`ec369a5`](https://github.com/gradio-app/gradio/commit/ec369a5830f0ba5a2387225b9db4eeb00ce8ce84) - Install skills by default and support Windows without symlinks. Thanks @abidlabs! - [#13808](https://github.com/gradio-app/gradio/pull/13808) [`3cbdf8e`](https://github.com/gradio-app/gradio/commit/3cbdf8e57babfdd6bead5be387e3ec46b067d76a) - Fix streaming playback and HLS lifetime in `gr.Audio` and `gr.Video`. Thanks @hysts! - [#13748](https://github.com/gradio-app/gradio/pull/13748) [`d37d528`](https://github.com/gradio-app/gradio/commit/d37d528ca1426062c7eead73008d111ebb63b036) - workflow: improve handling of `Any` output type. Thanks @hannahblair! - [#13802](https://github.com/gradio-app/gradio/pull/13802) [`d857094`](https://github.com/gradio-app/gradio/commit/d857094868c85167dd332b6093a3914dee960840) - Handle a paste in `gr.MultimodalTextbox` as text or as an image, not both. Thanks @hysts! - [#13814](https://github.com/gradio-app/gradio/pull/13814) [`935fee2`](https://github.com/gradio-app/gradio/commit/935fee23567274ea9bbc10ddcaa20502d8f718ac) - Stage uploads on the cache filesystem. Thanks @abidlabs! - [#13729](https://github.com/gradio-app/gradio/pull/13729) [`82ca180`](https://github.com/gradio-app/gradio/commit/82ca180c5c9a77d36b9097a62e63318317dc9d1f) - Fix Dataframe keyboard navigation accessibility. Thanks @dawoodkhan82! - [#13820](https://github.com/gradio-app/gradio/pull/13820) [`94c0bdc`](https://github.com/gradio-app/gradio/commit/94c0bdca749f73c58270e718508a4c1cca53c89e) - Encode streamed audio with one encoder per stream. Thanks @hysts! - [#13822](https://github.com/gradio-app/gradio/pull/13822) [`8b44cf7`](https://github.com/gradio-app/gradio/commit/8b44cf7799f7d21eeb72810775e712e3fa998bb4) - Forward visitor requests when lazily caching examples. Thanks @abidlabs! - [#13811](https://github.com/gradio-app/gradio/pull/13811) [`b8f3e63`](https://github.com/gradio-app/gradio/commit/b8f3e634bdf91a3cd5e1a6de5e389b2467aa6e51) - Fix streaming run key colliding across sequential runs. Thanks @hysts! ## 6.26.0 ### Features - [#13766](https://github.com/gradio-app/gradio/pull/13766) [`5824703`](https://github.com/gradio-app/gradio/commit/5824703d4cc2904adaaca4ea7b536800ccf6a358) - workflows: allow save as copy. Thanks @hannahblair! - [#13773](https://github.com/gradio-app/gradio/pull/13773) [`375335e`](https://github.com/gradio-app/gradio/commit/375335e60e2b4504a57f3eef0eb6bca3c7bb765a) - Keep workflow canvas layout per-viewer, and add undo/redo. Thanks @abidlabs! - [#13770](https://github.com/gradio-app/gradio/pull/13770) [`2cb02c0`](https://github.com/gradio-app/gradio/commit/2cb02c06228a4dfd509a0ac757ed0af466218478) - Upgrade vulnerable frontend dependencies. Thanks @abidlabs! ### Fixes - [#13641](https://github.com/gradio-app/gradio/pull/13641) [`d9acd25`](https://github.com/gradio-app/gradio/commit/d9acd25491a87eda4e98b0f43d4ba262dc6a69e6) - Fix OAuth redirect loops caused by stale sessions. Thanks @dawoodkhan82! - [#13760](https://github.com/gradio-app/gradio/pull/13760) [`7831e62`](https://github.com/gradio-app/gradio/commit/7831e62509a85a3cb38689655fe6ed98946d0d74) - Give the client's internal helper tasks their own thread pool. Thanks @hysts! - [#13782](https://github.com/gradio-app/gradio/pull/13782) [`a9ce60a`](https://github.com/gradio-app/gradio/commit/a9ce60ae03123ed6374b739d862e62dcae2f451e) - Load a saved run's outputs, not just its inputs, when SSR is on. Thanks @abidlabs! ## 6.25.0 ### Features - [#13747](https://github.com/gradio-app/gradio/pull/13747) [`612abdf`](https://github.com/gradio-app/gradio/commit/612abdff732ddb68b1dc5e9f32b1b42e02eb8e78) - workflow: forward x-ip-token so zerogpu spaces bill the caller. Thanks @hannahblair! - [#13754](https://github.com/gradio-app/gradio/pull/13754) [`a79d94a`](https://github.com/gradio-app/gradio/commit/a79d94a031ac08fed050582f3a12b20a0f092453) - workflow: fix oauth logic check. Thanks @hannahblair! - [#13753](https://github.com/gradio-app/gradio/pull/13753) [`b7ed7cf`](https://github.com/gradio-app/gradio/commit/b7ed7cf7e86382532d88c345118c12f72a31a377) - workflow: fix checkbox visibility. Thanks @hannahblair! - [#13715](https://github.com/gradio-app/gradio/pull/13715) [`e9dabaa`](https://github.com/gradio-app/gradio/commit/e9dabaa18afea53329cc99282f28c69c70e237c5) - Allow saving Workflow to the Space itself. Thanks @hannahblair! ### Fixes - [#13765](https://github.com/gradio-app/gradio/pull/13765) [`c6b9cc3`](https://github.com/gradio-app/gradio/commit/c6b9cc33c9f3932014f51467f7219bb1c4ac7a4b) - Fix nested reactive render contexts. Thanks @abidlabs! - [#13745](https://github.com/gradio-app/gradio/pull/13745) [`3706565`](https://github.com/gradio-app/gradio/commit/3706565c713e6959d5078305712b5c1a4f87dda5) - Render the PLY and OBJ files `gr.Model3D` showed as a blank canvas. Thanks @hysts! - [#13742](https://github.com/gradio-app/gradio/pull/13742) [`3f52f17`](https://github.com/gradio-app/gradio/commit/3f52f1737f1d68f6e1cda7bb8b498da9e4111799) - Fix two chat-history bugs in `gr.ChatInterface` and `gr.load_chat`. Thanks @abidlabs! - [#13741](https://github.com/gradio-app/gradio/pull/13741) [`1e24f6e`](https://github.com/gradio-app/gradio/commit/1e24f6ee916b8b7df08ba45ab4998ca4165da20c) - Respect a user-configured `CORSMiddleware` on mounted Gradio apps. Thanks @abidlabs! - [#13767](https://github.com/gradio-app/gradio/pull/13767) [`b6beeac`](https://github.com/gradio-app/gradio/commit/b6beeac899c0783303a974491fe4d3c3a26bfe60) - Return 413 instead of 500 when a multipart upload's headers exceed the maximum allowed size. Thanks @abidlabs! - [#13767](https://github.com/gradio-app/gradio/pull/13767) [`b6beeac`](https://github.com/gradio-app/gradio/commit/b6beeac899c0783303a974491fe4d3c3a26bfe60) - workflow: warn when a Space's OAuth app is missing the scopes the canvas needs. Thanks @abidlabs! - [#13756](https://github.com/gradio-app/gradio/pull/13756) [`dbfa0c1`](https://github.com/gradio-app/gradio/commit/dbfa0c189264371d3f67469e675b998f490b02bc) - Stop the server from accumulating per-request and per-session state. Thanks @abidlabs! - [#13764](https://github.com/gradio-app/gradio/pull/13764) [`fb02661`](https://github.com/gradio-app/gradio/commit/fb0266119af98eae52e8abcab735d643254ad0d4) - Fix mobile image-related issues. Thanks @abidlabs! - [#13759](https://github.com/gradio-app/gradio/pull/13759) [`6919dd4`](https://github.com/gradio-app/gradio/commit/6919dd4f663d1c590a5e248887956b3a2b08a95e) - Resolve the `/config` username through the auth dependency. Thanks @abidlabs! - [#13744](https://github.com/gradio-app/gradio/pull/13744) [`ca9dec0`](https://github.com/gradio-app/gradio/commit/ca9dec0e2e07d33cf3551f5062ff35ab9acf3026) - Re-read the Dataframe virtual window whenever the row count changes. Thanks @abidlabs! ## 6.24.0 ### Features - [#13750](https://github.com/gradio-app/gradio/pull/13750) [`e0f0790`](https://github.com/gradio-app/gradio/commit/e0f0790b6fbe591cfb6de968316596806f5b59dc) - Workflow: only inline app-owned files, and keep opened HTML off the app origin. Thanks @abidlabs! - [#13718](https://github.com/gradio-app/gradio/pull/13718) [`a9e8382`](https://github.com/gradio-app/gradio/commit/a9e8382c4f68e938b5fceef299d7539434c6063f) - Add browser-local run history and loading. Thanks @abidlabs! - [#13751](https://github.com/gradio-app/gradio/pull/13751) [`1c8aa23`](https://github.com/gradio-app/gradio/commit/1c8aa23263ef1d3a641690395b8f0d816b593cc3) - Fix initial Spaces iframe resize after app render. Thanks @dawoodkhan82! - [#13749](https://github.com/gradio-app/gradio/pull/13749) [`5019a24`](https://github.com/gradio-app/gradio/commit/5019a2402779d40d7c0b42817fc73bd2df3d8022) - Await `auth_dependency` and apply it when routes are built on an existing app. Thanks @abidlabs! ## 6.23.1 ### Fixes - [#13708](https://github.com/gradio-app/gradio/pull/13708) [`3458ea4`](https://github.com/gradio-app/gradio/commit/3458ea4db41e6d08d4363ad05df99ba3a4110082) - Fix processing timer and other inherited text unreadable in dark mode. Thanks @hysts! ## 6.23.0 ### Features - [#13632](https://github.com/gradio-app/gradio/pull/13632) [`a0800b9`](https://github.com/gradio-app/gradio/commit/a0800b9e4692a22f9bc6095a8d57be49fa38213c) - workflow: add oauth hint. Thanks @hannahblair! ### Fixes - [#13695](https://github.com/gradio-app/gradio/pull/13695) [`03d7c53`](https://github.com/gradio-app/gradio/commit/03d7c53b5e45fe97fe24d10dd115e7d7bb9f0615) - Let embedded apps shrink back after stretched content stops needing the room. Thanks @hysts! - [#13698](https://github.com/gradio-app/gradio/pull/13698) [`f3c286b`](https://github.com/gradio-app/gradio/commit/f3c286bed621400e61e42c998ac017f9553683c5) - Emit a `required` array in MCP tool input schemas. Thanks @hysts! - [#13704](https://github.com/gradio-app/gradio/pull/13704) [`b97d910`](https://github.com/gradio-app/gradio/commit/b97d91008b8378823f990c6661a15b428b5434c7) - Recalculate the sidebar overlap amount on resize. Thanks @hysts! - [#13699](https://github.com/gradio-app/gradio/pull/13699) [`8f6f292`](https://github.com/gradio-app/gradio/commit/8f6f29260b2371363af1ac57b35210b4fee2dd5e) - Fix SSR apps hanging on Ctrl+C at "Stopping Node.js server...". Thanks @hysts! ## 6.22.0 ### Features - [#13685](https://github.com/gradio-app/gradio/pull/13685) [`6302098`](https://github.com/gradio-app/gradio/commit/6302098bc300df0dd36f2cbea904bafca03b208d) - `gr.Workflow`: auto-create input/output nodes for model nodes (as already happens for Space nodes), replace the "Input"/"Output" buttons with a single "Component" button whose direction is derived from wiring, rename "Data" to "Dataset", let node error messages be copied, and document the `oauth_token` parameter in the View API panel. Thanks @abidlabs! - [#13688](https://github.com/gradio-app/gradio/pull/13688) [`321361f`](https://github.com/gradio-app/gradio/commit/321361fd8de9942e7046dcb54987d18a2a091e7e) - Workflow: resizable nodes, full-screen image view, and webcam/mic capture. Thanks @abidlabs! - [#13697](https://github.com/gradio-app/gradio/pull/13697) [`3ac9d5d`](https://github.com/gradio-app/gradio/commit/3ac9d5db5892e88f57260215793feeaa06bdde59) - Fix release CI regressions for assets and bundles. Thanks @abidlabs! ### Fixes - [#13692](https://github.com/gradio-app/gradio/pull/13692) [`3676c45`](https://github.com/gradio-app/gradio/commit/3676c45acfc12456de097996fe5adab2132e2d30) - publish the `Prism` global before its grammar files load, so the docs pages stop failing to hydrate with `ReferenceError: Prism is not defined`. Thanks @abidlabs! - [#13687](https://github.com/gradio-app/gradio/pull/13687) [`fd79d09`](https://github.com/gradio-app/gradio/commit/fd79d0999e66a3331a59d2ac80a7b61ec3e90f46) - Harden authentication and file redirect boundaries. Thanks @abidlabs! ## 6.21.0 ### Features - [#13601](https://github.com/gradio-app/gradio/pull/13601) [`0ee5cc8`](https://github.com/gradio-app/gradio/commit/0ee5cc80e2915e5a1b074c892490a62f165cd80d) - Preserve browser-visible proxy origins for frontend assets and API requests, and retain app-level FastAPI root paths. Thanks @abidlabs! - [#13620](https://github.com/gradio-app/gradio/pull/13620) [`5200235`](https://github.com/gradio-app/gradio/commit/520023532b66d6fa327da04701da3e02c554fa6e) - Fix chained events after cancellation and while the browser tab is hidden. Thanks @abidlabs! - [#13667](https://github.com/gradio-app/gradio/pull/13667) [`2d753d0`](https://github.com/gradio-app/gradio/commit/2d753d0e86bf53e97b0094c2dce0726a265cbe3e) - oauth: let API callers supply a token for endpoints that take a `gr.OAuthToken`, via `oauth_token` on the Python and JS clients — sent only to endpoints that declare they need one. Thanks @abidlabs! - [#13329](https://github.com/gradio-app/gradio/pull/13329) [`7ac583a`](https://github.com/gradio-app/gradio/commit/7ac583a38a4c995d172033ff6e3700390201ff21) - Make builds go zoom zoom. Thanks @pngwn! - [#13650](https://github.com/gradio-app/gradio/pull/13650) [`8bdc643`](https://github.com/gradio-app/gradio/commit/8bdc6439adbd0102cbf2af7826a228e378acf500) - Fix `gradio cc dev`, `gradio cc build`, and `gradio cc install` to respect a custom `FRONTEND_DIR` set on the component class, instead of assuming the frontend code lives in the `frontend` directory. Thanks @abidlabs! - [#13558](https://github.com/gradio-app/gradio/pull/13558) [`d07af9d`](https://github.com/gradio-app/gradio/commit/d07af9ddb77e792bea17f669905a36f2fc218c43) - workflow: add model endpoint integration. Thanks @hannahblair! - [#13681](https://github.com/gradio-app/gradio/pull/13681) [`eed6ebd`](https://github.com/gradio-app/gradio/commit/eed6ebd38ed743b56183c6dd514412e250d35900) - Report why the Node SSR server failed, and serve without SSR on the expected port. Thanks @abidlabs! - [#13654](https://github.com/gradio-app/gradio/pull/13654) [`2f6d04a`](https://github.com/gradio-app/gradio/commit/2f6d04acf8bd9eb147b628539a77efde168c6b92) - workflow: improve canvas authoring and examples. Thanks @abidlabs! - [#13606](https://github.com/gradio-app/gradio/pull/13606) [`04c5527`](https://github.com/gradio-app/gradio/commit/04c552732c461771d935496533289c82e652330f) - Fix spurious separators from empty tokens in `HighlightedText` with `combine_adjacent=True`. Thanks @hysts! - [#13668](https://github.com/gradio-app/gradio/pull/13668) [`3473879`](https://github.com/gradio-app/gradio/commit/347387984c9254be3bee97238b435bcde522b023) - workflow: add html modality. Thanks @hannahblair! - [#13666](https://github.com/gradio-app/gradio/pull/13666) [`d3c70fa`](https://github.com/gradio-app/gradio/commit/d3c70fa5cb3e714175953bc43a23e0773adb8259) - workflow: various UX improvements, including opening the write-access link in a browser tab automatically when a `gr.Workflow` is launched locally, and calling vision-language models through chat completions so `image-text-to-text` model nodes work. Thanks @abidlabs! - [#13590](https://github.com/gradio-app/gradio/pull/13590) [`d5ef897`](https://github.com/gradio-app/gradio/commit/d5ef8972dfaa1d4e051f0bb31dc16807a63398d5) - workflow: fix error banner and textarea visibility. Thanks @hannahblair! - [#13616](https://github.com/gradio-app/gradio/pull/13616) [`a2ddecf`](https://github.com/gradio-app/gradio/commit/a2ddecfb29a9a8489a5489ab54d9c5141a536727) - workflow: ensure we handle trailing null values. Thanks @hannahblair! ### Fixes - [#13627](https://github.com/gradio-app/gradio/pull/13627) [`3b12faa`](https://github.com/gradio-app/gradio/commit/3b12faa404660cd68ff4b3f20fbf6af3f3906670) - Keep in-flight events and generators working when an app is hot-reloaded (`gradio app.py`). Thanks @abidlabs! - [#13622](https://github.com/gradio-app/gradio/pull/13622) [`95369a3`](https://github.com/gradio-app/gradio/commit/95369a3ddaf69665adfbed092fca88fb432ee80a) - Fix Windows filename/path handling (reserved names, node probe, file URLs). Thanks @abidlabs! - [#13613](https://github.com/gradio-app/gradio/pull/13613) [`195593e`](https://github.com/gradio-app/gradio/commit/195593ed271795ce21ea8f94b7ec9e441ffd5227) - Rerun HTML mount behavior when `gr.render` replaces an unkeyed component. Thanks @abidlabs! - [#13626](https://github.com/gradio-app/gradio/pull/13626) [`7d71469`](https://github.com/gradio-app/gradio/commit/7d714699ae9c47daabbd48a55f61e990c5bba1d7) - Reset audio playback position when the file is cleared or a new one is uploaded. Thanks @hysts! - [#13662](https://github.com/gradio-app/gradio/pull/13662) [`3aa5d5b`](https://github.com/gradio-app/gradio/commit/3aa5d5b2afaa4b7c9853f91511b020270a85ede3) - Strip `