## NVIDIA-NeMo/Curator — v1.2.0…v1.3.0

_162+ commits._

### Features
- **Port FFmpeg video codec support updates to main (#2217) (#2222)** (614c93b)
- **feat(deps): make opencv optional to strip ffmpeg CVEs from [all] (#2216) (#2221)** (780aca6)
- **Add support for Slurm arrays (#2059)** (6f52f2f)
- **Add benchmark max timeout guard (#2116)** (40987a3)
- **Add note about `InferenceServer` hang in `ndd_data_generation_example` tutorial (#2114)** (97a7172)
- **feat: support stage config overrides via with_ (#2086)** (990cc3d)
- **feat(nemotron-parse): richer inference metrics, engine_kwargs passthrough, fanout stage spec (#2054)** (851995a)
- **feat(benchmarking): config-driven CI timeouts (default/cleanup/min) (#2068)** (730dd87)
- **Add long-form audio cutting pipeline for ALM pretraining (#1898)** (e3d1987)
- **Add ray data option for video benchmarks (#2002)** (f0416b4)
- **[benchmarking] Add ping_users_on_failure toggle, disable in nightly config (#2039)** (ab12ea1)
- **[benchmarking] Add configurable GPU memory warning threshold (#1966)** (e4af8d8)
- **Add filtration and PnCWithLLM stages for audio tagging pipeline (#1863)** (0f76273)
- **Add Skill to Nemo Curator for "Getting Started" (#1746)** (3b3e07f)
- **Add `fit_data_fraction` and `cache_path` to `KMeansStage` (#1927)** (34c2c71)
- **Add translation (#1844)** (a9e8b97)
- **Adds support for new paths section to define common container mount points. (#1879)** (98245df)
- **benchmark: add ndd_dynamo_dp4 entry; cache weights to drop ray-serve startup time (#1896)** (da737cb)
- **Add Nemotron Omni Model for Video caption pipeline (#1883)** (cc9139e)
- **Add generic audio processing pipeline for ASR and TTS data preparation (#1679)** (2420065)
- **feat: (experimental) Dynamo Disaggregated serving + validators + router polish - inference (5/5) (#1861)** (378e169)
- **feat(tutorials/readspeech): add interactive notebook tutorial (#1870)** (6cdd923)
- **Add ReadSpeech audio curation benchmark (#1851)** (ab9b7ec)
- **Tutorials: Add interleaved getting-started tutorial (#1774)** (de8cdad)
- **[benchmarking] Adds support for fine-grained config overrides and global ray config (#1840)** (2e598c5)
- **feat: Dynamo aggregated backend - inference (4/5) (#1834)** (250114a)
- **feat: Placement Group based subprocess manager - inference (3/5) (#1833)** (3d3c399)
- **Add qwen3 (#1827)** (c236f2a)
- **feat!: Typed Serve Config + Dyamo config stub - inference (2/5) (#1820)** (f3e8676)
- **Add 60 second timeout to ArXiv check (#1776)** (314a57f)
- **Add GLiNER instruction (#1772)** (04caeda)

### Fixes
- **fix(math): restore libmagic runtime and GPU coverage (#2227) (#2228)** (e9468c8)
- **fix(benchmarks): bump video timeout_s for ffmpeg source-build overhead (#2214) (#2215)** (bc7fdd2)
- **fix(deps): remove system ffmpeg from container image (part 2/2) (#2203) (#2211)** (d33ebd9)
- **cp: `fix(deps): bump etcd 3.5.21->3.5.30 to clear grpc-go auth-bypass CVE (2201)` into `r1.3.0` (#2210)** (9daee92)
- **fix(deps): clear wheel-bundled ffmpeg CVEs from the all image (part 1/2) (#2192) (#2196)** (09b7c1a)
- **fix: default workflow input extensions by filetype (#2045)** (c8379f3)
- **fix(deps): bump wandb, sqlfluff, libunbound8 for CVEs (#2108)** (fae1ec3)
- **Fix NDD tutorial worker override (#2104)** (531fe2e)
- **fix(dynamo): multimodal chat processor, hybrid KV cache compat, subprocess env passthrough (#2053)** (389d404)
- **fix: extract arxiv archives outside download dir (#2055)** (352ead7)
- **fix: exclude eval/ from check-manifest sdist validation (#2081)** (ffc103c)
- **Fix EmptyTask references in benchmark and tutorials (#2070)** (d5fecfb)
- **fix(audio): lazy-load audio stages and fix tutorial notebook paths (#1835)** (2d982f8)
- **fix(audio): download FLEURS via hf_hub_download to avoid HTTP 429 (#2057)** (94e36c0)
- **fix: gate nemo_text_processing to x86_64 to unblock aarch64 build (#2049)** (2308037)
- **fix(utils): include port 65535 in get_free_port() scan range (#2024)** (bf1d5dd)
- **fix(docs): correct version label to v1.2.0 (#1983)** (53ea57d)
- **fix(filters): escape `-` in regex_url character class (#1601) (#1880)** (e91acfd)
- **Fix checkpoint crash when ALMManifestWriterStage returns FileGroupTask (#1884)** (aa590c2)
- **fix: Support aarch64 torch install (#1891)** (459fde2)
- **Fix Sortformer tutorial issues and add InferenceSortformerStage benchmark (#1764)** (4b4b584)
- **Fix waveform tensor leak in audio pipeline and redesign AudioDataFilterStage for all VAD/Speaker combinations (#1765)** (a86a728)
- **fix(image): addressing nvbug6075086 (when --images-per-tar exceed --batch-size) (#1828)** (a7d0cb7)
- **[ci] fix: retry apt-get installs to handle mirror sync failures (#1814)** (42d08b5)

### Backend
- **Minor updates to Slurm tutorial (#2242) (#2250)** (6b956ce)
- **Remove task id references (Stale) from fuzzy dedup notebook (#2204) (#2205)** (e7ca255)
- **Expose `vllm_init_kwargs` in semantic dedupe tutorials (#2193) (#2200)** (6c1d0d6)
- **Update Wikipedia URL generation and download (#2183) (#2191)** (790effe)
- **Remove lingering `task_id` from interleaved quickstart (#2185) (#2188)** (472aac1)
- **Pipeline resumability via source-level counter checkpointing (#2063)** (0488afc)
- **[Curator Video] Enable Ray Data stage fusion via cpus=1.0 in CPU video stages  (#2110)** (1dc5479)
- **benchmarking: generate stable nightly session names (#2115)** (13c19fb)
- **[video] Remove model_does_preprocess (#2109)** (e551238)
- **Remove FlashAttn Deps (#2107)** (27ec44f)
- **benchmarking: detect parent schedule for nightly sessions (#2105)** (abc035f)
- **Use reason flag for benchmark runs (#2103)** (535d4d0)
- **Update Ray Data Backend to use `compute` strategy + Allow min/max/initial workers to be specified (#2077)** (6c174bf)
- **Minor updates to CLIMB tutorial (#2072)** (2c20d63)
- **caption quality evaluation (#1980)** (553cefd)
- **Nemotron OCR SDG Pipeline (#1899)** (618a9bd)
- **Refactor empty/sentinel tasks: EmptyTask is the class + SentinelTask base (#2062)** (28bf29c)
- **Strip user-set task_id from tutorials & getting-started script (#2058)** (8457b78)
- **Unify task identity: collapse _uuid into deterministic task_id (#2036)** (631fb3d)
- **[benchmarking] Multiple fixes to stabilize the nightly benchmark suite (#2035)** (d6a63e6)
- **Expose translation control knobs (#2038)** (b823cde)
- **[benchmarking] Migrate test-paths.yaml to paths section, drop duplicates (#2026)** (e7bb08b)
- **Nemotron-CLIMB data curation recipe (#1727)** (df61be6)
- **Include translation prompt templates in package (#1972)** (ef9d460)
- **Don't show uv sync progress when installing extras to clean up CI logs (#1971)** (6d803c8)
- **[benchmarking] Adds `--use-host-curator-benchmarking` and `--skip-curator-image-build*` options (#1910)** (ac5abfb)
- **Lazy init for openai client (#1890)** (bfffc06)
- **Lazy import for text module (#1888)** (536747a)
- **Bump Ray 2.55.1 / CUDA 12.9.1 / torch 2.10 / vllm 0.18; HAProxy ingress (#1895)** (f6e8cf3)
- **Bump python requirements to 3.11 min and 3.13 max (#1855)** (7dad934)
- **Regenerate uv.lock from prev version from main (#1875)** (a223f92)
- **26.04 staging (#1655)** (27f063d)
- **Readspeech tutorial: README, tests, and lower audio data filter GPU defaults (#1841)** (0406f1c)
- **Improve math tutorial README documentation (#1766)** (4c3af97)
- **[Tutorial] Merge multiple file prefixes generated by `MegatronTokenizerWriter` (#1427)** (416d313)
- **More CVE fixes (#1843)** (cc73f7c)
- **Enhance VideoReader initialization with path validation (#1845)** (7b90edc)
- **Update NDD (nemo data-designer) version (#1755)** (c4b52c8)
- **[benchmarking] Updates timeouts based on analysis of prior CI runs (#1831)** (5010c04)
- **[benchmarking] Increases timeout for `math_preprocess_llm_cleanup` benchmark (#1819)** (bf924a0)
- **[benchmarking] Adds gpustat data for processes running on each GPU (#1823)** (aaaf23d)

### Tests
- **test: add image reader sample data (#2032)** (a937989)

### Docs
- **docs: clarify fuzzy dedup input blocksize (#2096)** (903e6d0)
- **docs: add Related Topics section to Quality Assessment & Filtering (#2071)** (ca51112)
- **docs: retire docs/ Sphinx tree, replace with pointer to fern/ (#1961)** (c0a02ad)
- **docs: fix broken links in v25.09 reference, migration guide, and audio tutorial (#1991)** (7fb5a75)
- **docs: show how to resume Common Crawl downloads (#2029)** (54b022d)
- **docs: rewrite README and expand CONTRIBUTING per PM review and OSS audit (#2030)** (9bd9023)
- **docs(fern): switch to NVIDIA global theme as source of truth (#2000)** (a2b1c52)
- **docs(26.04): port SME video encoder docs (VP9 + BYO H.264) (#1926)** (123ad43)
- **docs: add rolling main version, remove translation from v26.04 (#1969)** (6fd3e5c)
- **docs: fix broken links — redirects, GitHub source links, drift (#1938)** (e8849a7)
- **docs(26.04): close release-note gaps and add missing feature pages (#1893)** (155681a)
- **docs: move install into Get Started, refresh Setup & Deployment index (#1878)** (f678373)
- **docs: cross-link Nemotron-CC recipe as a production NeMo Curator example (#1767)** (06b8388)
- **docs: add OTEL_SDK_DISABLED workaround for NVBUG 6078008 SIGSEGV (#1842)** (72b20ba)
- **docs: add nemo-curator-docs Claude Code skill (#1825)** (ed2e18f)

### Chore
- **build(deps): bump pillow from 12.2.0 to 12.3.0 (#2230) (#2234)** (4ad90ff)
- **build(deps): bump mcp from 1.26.0 to 1.28.1 (#2231)** (a6a03c6)
- **build(deps): promote datasets to a core dependency (#2164) (#2165)** (913458b)
- **build(deps): bump python-dotenv from 1.2.1 to 1.2.2 (#2117)** (5831045)
- **chore: Bump to 1.3.0 (#2140)** (f2d914e)
- **build(deps): bump pydantic-settings from 2.12.0 to 2.14.2 (#2100)** (2615a74)
- **build(deps): bump jupyterlab from 4.5.7 to 4.5.9 (#2099)** (80ad784)
- **build(deps): bump jupyter-server from 2.18.0 to 2.20.0 (#2091)** (4809a0b)
- **build(deps): bump aiohttp from 3.14.0 to 3.14.1 (#2088)** (8167aec)
- **build(deps): bump cryptography from 46.0.7 to 48.0.1 (#2087)** (0a525f9)
- **build(deps): bump bleach from 6.3.0 to 6.4.0 (#2085)** (a713c2c)
- **build(deps): bump starlette from 1.0.1 to 1.3.1 (#2084)** (df6a952)
- **build(deps): bump python-multipart from 0.0.27 to 0.0.31 (#2083)** (fa8bdee)
- **build(deps): bump pyjwt from 2.12.1 to 2.13.0 (#2079)** (95e8eb6)
- **build(deps): bump tornado from 6.5.5 to 6.5.7 (#2082)** (9336c4f)
- **build(deps): bump starlette from 0.50.0 to 1.0.1 (#2048)** (2a77da0)
- **build(deps): bump aiohttp from 3.13.4 to 3.14.0 (#2047)** (ec6f3ac)
- **ci: bump _release_library.yml to v1.4.3 (#2046)** (ac283c3)
- **ci: disable uv cache for cpu tests (#2043)** (bdb0e29)
- **ci: Remove sync skills workflow (#2041)** (bf694c9)
- **ci: validate release branch-rules (#2009)** (a80a9c6)
- **build(deps): bump idna from 3.11 to 3.15 (#2001)** (e62bd3e)
- **ci: Major refactor of release-workflows (#1911)** (ad58743)
- **build(deps): batch Dependabot lockfile updates (#1974)** (e9cf2ee)
- **build(deps): bump urllib3 from 2.6.3 to 2.7.0 (#1970)** (9a2e8b3)
- **chore: Update dynamo to 1.1.0 (#1957)** (8d2ef4f)
- **build(deps): bump python-multipart from 0.0.22 to 0.0.27 (#1942)** (d3da29e)
- **build(deps): bump mako from 1.3.10 to 1.3.12 (#1941)** (02dfb3f)
- **build(deps): bump jupyter-server from 2.17.0 to 2.18.0 (#1928)** (6eb27b8)
- **build(deps): bump mistune from 3.1.4 to 3.2.1 (#1939)** (9613acf)
- **build(deps): bump lxml from 6.0.2 to 6.1.0 (#1848)** (b34d58d)
- **build(deps-dev): bump gitpython from 3.1.45 to 3.1.50 (#1962)** (d10cd6f)
- **build(deps): bump notebook from 7.5.1 to 7.5.6 (#1944)** (ca453f5)
- **ci: Update runner name (#1958)** (84f2ed1)
- **ci: Update container registry (#1934)** (dc30814)
- **ci: add base_sha to codecov/codecov-action upload step (#1864)** (f70af1f)
- **refactor: extract Ray Serve backend boundary - inference (1/5) (#1813)** (1b9a9d4)
- **ci: add sync-skills workflow (#1806)** (96450e8)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/NVIDIA-NeMo/Curator?utm_source=github-action)._