> This page is for Fern CLI.

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

## 3.40.0

**`(feat):`** Add support for OpenAPI min/max validation keywords in the IR. This includes `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum`, and `multipleOf` for numeric types (float, long, uint, uint64), as well as `minItems`/`maxItems` for list and set containers, and `minProperties`/`maxProperties` for map containers and objects.

## 3.39.3

**`(fix):`** Fix protobuf air-gapped support to properly catch execa exceptions when `buf dep update` fails. The `execa` library throws exceptions on non-zero exit codes rather than returning a result object, so the network error detection logic was never being reached. Both `ProtobufOpenAPIGenerator` and `ProtobufIRGenerator` now wrap `buf dep update` in a try-catch block to properly handle network errors in air-gapped environments.

## 3.39.2

**`(chore):`** Add debug logging to protobuf air-gapped support to help diagnose buf.lock detection issues. The CLI now logs the buf.lock path being checked, whether it was found, and detailed error information when buf dep update fails.

## 3.39.1

**`(fix):`** Fix protobuf air-gapped support to properly populate buf cache at build time. Both `ProtobufOpenAPIGenerator` and `ProtobufIRGenerator` now always attempt `buf dep update` first to populate the cache, and only continue on network errors if a pre-cached `buf.lock` file exists. This ensures dependencies are cached at build time while still supporting air-gapped runtime environments.

## 3.38.1

**`(fix):`** Fix protobuf OpenAPI generation to support air-gapped environments. The CLI now checks for a pre-cached `buf.lock` file in the proto directory before calling `buf dep update`. This enables self-hosted deployments with `from-openapi: true` proto specs to work in air-gapped environments by pre-caching dependencies.