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

## 4.26.1

**`(fix):`** Fix `fern diff` running out of memory on very large IR files (>2 GB).
The command now uses streaming JSON parsing and automatically re-spawns
Node with an increased heap limit (8 GB) when running `fern diff`,
allowing the full IR to be parsed and validated in memory. This removes
both the V8 string-size limit and the heap allocation limit.

## 4.26.0

**`(feat):`** Add chunked diff analysis for oversized diffs during AUTO versioning.
Large SDK diffs (e.g. Java with 700+ generated files) that exceed 40 KB
are now split into semantically ranked chunks, each analyzed by the AI
separately. Version bumps are merged (takes the maximum) and all changelog
entries are aggregated into a markdown list. Analysis is capped at 40
chunks to bound latency and cost. Diffs exceeding 10 MB are rejected
before chunking to prevent resource exhaustion. Both the local generation
path and the CLI `sdk-diff` command now support chunked analysis.

## 4.25.0

**`(feat):`** Handle 409 Conflict responses from FDR during `fern generate --docs`.
When another docs publish is already in progress for the same domain,
the CLI now fails fast with a clear error message. The CLI version is
sent to FDR so that the server can gate the concurrent-publish check
on CLI versions that support 409 handling.

## 4.24.1

**`(fix):`** Redesign `respect-readonly-schemas` to use a post-parse graph-based
reachability analysis instead of the previous side-effect-based marking
mechanism. When `respect-readonly-schemas` is enabled, the new approach
performs a DFS from all endpoint request/response roots to classify
schemas as request-only, response-only, or shared, then generates
Read/Write variants accordingly. This fixes several structural bugs
with the previous design. No behavior change when the option is off.

**`(fix):`** Fix `respect-readonly-schemas` generating required readOnly fields as
optional in Read types. When a property is both `readOnly` and in the
`required` array, it is now correctly marked required in the generated
type.

**`(fix):`** Fix `respect-readonly-schemas` inlining request body `$ref` schemas
instead of preserving them as type aliases. Schemas like
`UpdateOrganizationDetailsRequestContent` that reference another schema
via `$ref` are now kept as `type Foo = Bar` instead of being
dereferenced into a standalone interface.

**`(fix):`** Fix `respect-readonly-schemas` generating unnecessary Read/Write
variants for schemas only used in responses. Response-only schemas
with readOnly properties now generate a single type with all
properties instead of splitting into Read and Write variants.

**`(fix):`** Fix `respect-readonly-schemas` resolving response type aliases to the
Write variant instead of the Read variant. Schema references in
response contexts now correctly resolve to Read variant names.

**`(fix):`** Fix `respect-readonly-schemas` leaking readOnly properties into
`allOf`-composed request types. Request types that inherit from schemas
with readOnly properties via `allOf` no longer include those properties
in Write variants.

**`(fix):`** Fix `allOf` with top-level `required` array not propagating to
properties inherited from inline `allOf` members. Properties marked
optional by an inline member's own (missing) `required` array are now
correctly promoted to required when the outer schema's `required`
array includes them.

**`(fix):`** Fix `readOnly` not being detected on `$ref` properties whose
referenced schema has `readOnly: true`. The parser now checks both
the property-level and resolved schema-level `readOnly` flag.