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.