> 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.