4.94.3

(chore): Polish the fern automations generate step-summary heading and the generators.yml deep-link lookup.

  • The failure heading now excludes skipped generators from the denominator. A run of 4 succeeded, 2 failed, 4 skipped previously read ❌ SDK generation failed (4/10 succeeded) — implying 6 failures. It now reads ❌ SDK generation failed (4/6 succeeded, 4 skipped).
  • Added a distinct ⏭️ SDK generation skipped heading for runs where every generator was skipped. Previously these printed the cheerful ✅ SDK generation succeeded heading despite nothing having run.
  • Tightened the generators.yml line-number regex to only match - name: <slug> list-item entries. Nested name: keys (e.g. inside publishInfo) and free-form values (e.g. a reviewer’s full name) no longer collide with generator lookups. Trailing YAML comments on the name: line are tolerated.
  • Added an assertNever exhaustiveness check on the generator-status switch so a future status variant fails at compile time instead of silently miscounting.

(chore): Re-publish CLI after the 4.94.2 production publish failed in CI. The dev version had already been published in an earlier job, so the prod job’s dev re-publish step errored out and prevented the prod publish from running.

4.94.2

(fix): Fix Python dynamic snippet generation to respect the use_typeddict_requests configuration option. When enabled, dynamic snippets now generate dict literals instead of Pydantic model constructors for object and discriminated union types.

4.94.1

(fix): Fix global theme asset downloads preserving original filenames and extensions. Previously, assets downloaded from S3 CAS URLs (whose pathname is a raw content hash) were saved without a file extension, breaking downstream MIME type detection. The CLI now reads the filename from the presigned URL’s response-content-disposition query parameter, falling back to the Content-Disposition response header, then Content-Type, so files land on disk with their correct names (e.g. logo.svg).

4.94.0

(feat): Add consumer-side support for the global-theme key in docs.yml. When a docs site declares global-theme: <name>, the CLI fetches the named theme from Fern’s cloud registry and merges it into the docs configuration before building (theme values win for branding fields). Works with fern generate --docs, fern generate --docs --preview, and fern docs dev (dev mode requires FERN_TOKEN to be set).

4.93.0

(feat): Expose claude-code under page-actions in docs.yml so docs sites can toggle the “Connect to Claude Code” button (e.g. page-actions.options.claude-code: false or page-actions.default: claude-code).

4.92.0

(feat): fern automations generate now writes a richer GitHub Actions step summary. The summary is an HTML table grouped by API and generator group (with rowspan cells), a heading that shows the succeeded/total count on failure, a duration column, and a links column with the PR, SDK repo, and generators.yml entry (the latter deep-linked to the exact line when running under GitHub Actions). Generators excluded from automation now surface as explicit skipped rows with reasons (Skipped - local output, Skipped - opted out), replacing the silent drop.