Skip to content

[pull] main from fern-api:main#637

Merged
pull[bot] merged 16 commits into
code:mainfrom
fern-api:main
Apr 8, 2026
Merged

[pull] main from fern-api:main#637
pull[bot] merged 16 commits into
code:mainfrom
fern-api:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 7, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

jsklan and others added 16 commits April 7, 2026 18:48
… sdk generators (#14709)

* fix csharp

* fix go

* fix java

* fix php

* fix swift

* fix ruby and swift

* fix python
…ck auth matching (#14411)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
fix(docs): remove hard restart of docs server on page changes in fern docs dev

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…th fern-replay (#14722)

* fix(cli): add .gitattributes creation and sync .fernignore entries with fern-replay

generator-cli's REPLAY_FERNIGNORE_ENTRIES was out of sync with fern-replay,
only containing .fern/replay.lock instead of the full set. This caused
`fern replay init` PRs to miss .gitattributes (linguist-generated markers)
and .fern/replay.yml protection. Both replay-init and replay-run paths now
create .gitattributes alongside .fernignore updates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(cli): revert catalog pin to 0.9.2 — 0.9.3 not yet published

The catalog pin resolves from npm, so it must reference a published
version. 0.9.3 will be published by CI when versions.yml lands on main.
A follow-up commit will bump the catalog after publish completes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(cli): update pnpm-lock.yaml for catalog pin 0.9.2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(cli): fix biome formatting in replay-init.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…#14723)

fix(go-sdk): add nil guard for optional file fields in multipart requests

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: bot_apk <apk@cognition.ai>
Picks up .gitattributes creation and synced .fernignore entries for
replay in all generator Docker images on next rebuild.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: jsklan <100491078+jsklan@users.noreply.github.com>
…nfigured in IR (#14412)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…tdown (#14728)

* fix: clean up Next.js cache on fern docs dev startup and shutdown

On startup, remove the Next.js cache directory from previous runs before
starting the server. On shutdown, clean the cache as part of the cleanup
function. This ensures a clean state each time the dev server is used,
preventing stale cache issues.

Refs: FER-9541
Co-Authored-By: unknown <>

* fix: use AbsoluteFilePath.of() for doesPathExist call

The doesPathExist function expects an AbsoluteFilePath branded type,
not a plain string. Wrap the cache path with AbsoluteFilePath.of().

Co-Authored-By: unknown <>

* fix: use synchronous fs operations for shutdown cache cleanup

The cleanup() function runs in signal handlers where async operations
cannot be awaited. Replace void cleanNextCache() with a synchronous
cleanNextCacheSync() that uses fs.existsSync and fs.rmSync to ensure
the cache is actually deleted before the process exits.

Co-Authored-By: unknown <>

* fix: rename Next.js cache to Fern Docs cache in logs and comments

Co-Authored-By: unknown <>

* fix: prevent duplicate cleanup and retry cache removal on ENOTEMPTY

- Add cleanedUp guard to prevent cleanup running multiple times
  (e.g. SIGINT handler + exit handler)
- Add maxRetries/retryDelay to rmSync to handle ENOTEMPTY when the
  server process is still writing to cache during shutdown

Co-Authored-By: unknown <>

* fix: bump version to 4.62.6 for Fern Docs cache cleanup

Co-Authored-By: unknown <>

* fix: update changelog and comments to reflect disk space motivation

Co-Authored-By: unknown <>

* fix: remove reason from changelog summary and code comment

Co-Authored-By: unknown <>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Fern Support <126544928+fern-support@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
Co-authored-by: Swimburger <3382717+Swimburger@users.noreply.github.com>
…#14737)

* feat(cli): add progress bar for removing old docs bundle

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>

* feat(cli): add versions.yml entry for 4.63.0

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>

* feat(cli): replace progress bar with async mv+delete for old bundle

Co-Authored-By: Sandeep Dinesh <sandeep@buildwithfern.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Apr 7, 2026
@pull pull Bot added the ⤵️ pull label Apr 7, 2026
@pull pull Bot merged commit 31484df into code:main Apr 8, 2026
30 of 35 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants