Modal 1.2.2
- modal.Image.run_commands now supports modal.Volume mounts. This can be helpful for accelerating builds by keeping a package manager cache on the Volume: python cache_vol = modal.Volume.from_name("cache-mount") cmd_using_cache = "..." image = modal.Image.debian_slim().run_commands(cmd_using_cache, volumes={"/cache": cache_vol}) All Modal objects now accept...
Also shipped Nov 10, 2025Modal in November 2025 →
NeMo NVIDIA Neural Modules 2.5.3
Highlights This release addresses known security issues. For the latest NVIDIA Vulnerability Disclosure Information visit https://www.nvidia.com/en-us/security/ , for acknowledgement please reach out to the NVIDIA PSIRT team at PSIRT@nvidia.com Update nv-one-logger Update ctc-segmentation Detailed Changelogs: Text Normalization / Inverse Text Normalization...
Entity Detection Now Available for Streaming Speech-to-Text
We're excited to announce that Entity Detection is now available for streaming (real-time) speech-to-text with Nova 3, Nova 2, Nova, and Enhanced models. detect_entities=true Previously available only for pre-recorded audio, you can now identify and extract over 50 unique entity types in real-time streaming transcriptions, including email addresses, names...
AI Crawl Control - Crawler drilldowns with extended actions menu
AI Crawl Control now supports per-crawler drilldowns with an extended actions menu and status code analytics. Drill down into Metrics, Cloudflare Radar, and Security Analytics, or export crawler data for use in WAF custom rules , Redirect Rules , and robots.txt files.
WAF Release - 2025-11-10
This week’s release introduces new detections for Prototype Pollution across three common vectors: URI, Body, and Header/Form. Key Findings These attacks can affect both API and web applications by altering normal behavior or bypassing security controls.
React Router 7 apps can now be deployed to Edge Functions
React Router 7 apps on Netlify are deployed to Serverless Functions by default. Now, you can choose to deploy your app to Edge Functions instead, bringing your page renders, data loaders, and actions closer to your users while lowering cold start times.
More from ModalEvery Modal release →
Modal 1.2.3
- CPU Functions can now be configured to run on non-preemptible capacity by setting nonpreemptible=True in the @app.function() or @app.cls() decorator. This feature is not currently available when requesting a GPU. Note that non-preemptibility incurs a 3x multiplier on CPU and memory pricing. See the Guide for more information on preemptions.
Modal 1.2.4
- Fixed a bug in modal.Sandbox.exec when using stderr=StreamType.STDOUT (introduced in v1.2.3). Added a new h2_enabled option in modal.forward, which enables HTTP/2 advertisement in TLS establishment.
Modal 1.2.1
- It's now possible to override the default -dev suffix applied to the autogenerated URLs for ephemeral Apps (i.e., when using modal serve) via a new dev_suffix field in the .modal.toml config file, or equivalently with the MODAL_DEV_SUFFIX environment variable.
Modal 1.2.5
- It is now possible to set a custom name= for a Function without using serialized=True. This can be useful when decorating a function multiple times, e.g. applying multiple Modal configurations to the same implementation. It is now possible to start modal shell with a Modal Image ID (modal shell im-abc123).
Modal 1.2.0
In this release, we're introducing the concept of "App tags", which are simple key-value metadata that can be included to provide additional organizational context.
Modal 1.2.6
- Fixed bug where iterating on a modal.Sandbox.exec output stream could raise unauthenticated errors.
Modal 1.3.0
Modal now supports Python 3.14. Python 3.14t (the free-threading build) support is currently a work in progress, because we are waiting for dependencies to be updated with free-threaded support. Additionally, Modal no longer supports Python 3.9, which has reached end-of-life.
Modal 1.3.1
- We've improved our experimental support for Python 3.14t (free-threaded Python) inside Modal containers. The container environment will now use the Python implementation of the Protobuf runtime rather than the incompatible upb implementation.