> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 2.23.12

**`(chore):`** Parallelize endpoint snippet generation in `populateSnippetsCache()`. All
endpoints are now processed concurrently via `Promise.all` instead of
sequentially, reducing snippet generation time for large APIs.

## 2.23.11

**`(chore):`** Remove unnecessary NuGet package restore from the generator Dockerfile.
NuGet packages are not needed at generation time since the generator only
writes files and runs csharpier; no dotnet restore occurs during generation.

## 2.23.10

**`(chore):`** Optimize context construction performance: replace expensive O(n) string
split/filter/join in ModelNavigator's tree indexing with O(1) incremental
path building, skip recursion into name-casing variant branches that only
contain primitive values, and lazily initialize the CsharpFormatter so
the csharpier tool path is only resolved when formatting is actually needed.

## 2.23.9

**`(chore):`** Sync and cache NuGet dependencies across all C# Dockerfiles. Updates test
framework packages to match generated SDK versions and adds NuGet restore
caching to the generator Dockerfiles.

## 2.23.8

**`(chore):`** Reduce dotnet CLI process spawns during project setup by generating
the `.slnx` solution file and test project reference directly as
templates instead of invoking 5 separate `dotnet` CLI commands
(`dotnet new sln`, `dotnet sln add` ×2, `dotnet remove reference`,
`dotnet add reference`). This eliminates \~5-10s of cold .NET CLI
startup overhead per generation run.

## 2.23.7

**`(chore):`** Parallelize file writes during project persistence using batched concurrency
(100 files per batch via `Promise.all`), significantly reducing generation time
for large projects with thousands of files.