Skip to content

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

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

[pull] main from fern-api:main#636
pull[bot] merged 21 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 : )

davidkonigsberg and others added 21 commits April 7, 2026 12:21
…rom update-seed workflow (#14694)

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

* [Dependabot Alert #1411] Scaffold PR for vite

* fix: update vite to 7.3.2 to address path traversal vulnerability (GHSA-4w7w-66w2-5vf9)

Co-Authored-By: unknown <>

* fix(deps): update vite to 7.3.2 to address path traversal vulnerability

Co-Authored-By: unknown <>

* chore(deps): remove lodash from minimumReleaseAgeExclude and dedupe lockfile

Co-Authored-By: unknown <>

* fix(deps): use ^7.3.2 range for vite override instead of exact pin

Co-Authored-By: unknown <>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
Co-authored-by: davidkonigsberg <72822263+davidkonigsberg@users.noreply.github.com>
…) (#14693)

* [Dependabot Alert #1408] Scaffold PR for defu

* chore(deps): fix defu prototype pollution vulnerability (CVE-2026-35209)

- Add pnpm override for defu>=6.1.5 to resolve HIGH severity prototype pollution
- defu updated from 6.1.4 to 6.1.6 (transitive dep of tsdown)
- Remove dependabot alert scaffold file

Co-Authored-By: unknown <>

* chore(deps): minimize lockfile diff - surgical defu 6.1.4 -> 6.1.6 update

Co-Authored-By: unknown <>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: David Konigsberg <72822263+davidkonigsberg@users.noreply.github.com>
* chore(ci): add Docker Hub auth and layer caching to mitigate rate limits

- Add docker/login-action@v3 with DOCKERHUB_USERNAME/DOCKERHUB_TOKEN secrets
- Add actions/cache@v4 for Docker layer caching keyed on runner.os and Dockerfiles
- Apply to test-ete job in ci.yml
- Apply to all 19 seed test jobs in seed.yml via cached-seed composite action
- Apply to benchmark job in seed.yml
- Apply to all 19 seed update jobs in update-seed.yml via auto-update-seed composite action
- Thread Docker credentials through run-seed-process and auto-update-seed composite actions

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ci): use DOCKER_USERNAME_PUBLIC_READONLY and DOCKER_PASSWORD_PUBLIC_READONLY secrets

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ci): harden Docker cache against poisoning on self-hosted runners

- Clear /tmp/docker-cache before restoring to prevent stale files
- Gate docker load on cache-hit output to skip on cache misses
- Record pre-existing images and only save newly-pulled images
- Add conditional guard on Docker login for missing secrets

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ci): guard cache save against missing docker-images-before.txt

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ci): use sort -u to deduplicate image IDs and per-generator cache keys

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* chore(ci): move image recording after cache load to avoid re-saving cached images

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: remove cache-hit guard so restore-keys partial matches load Docker images

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The secrets context cannot be used directly in step-level if expressions.
GitHub Actions rejects this with 'Unrecognized named-value: secrets'.
Use env vars to pass the secret value and check the env var instead.

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

* fix(python-sdk): fix enum representation in snippets and missing OAuth params in docstrings

- Fix DynamicTypeLiteralMapper.convertEnum() to render enum references
  (e.g., Operand.GREATER_THAN) instead of string literals when using
  python_enums or forward_compatible_python_enums pydantic config
- Fix build_default_snippet_kwargs() to include client_id and
  client_secret in OAuth client credentials docstring examples
- Also fix synthesizeDefaultNamed() for consistent enum rendering

Co-Authored-By: adi <aditya.arolkar@berkeley.edu>

* fix: pass raw customConfig to DynamicSnippetsGenerator to preserve pydantic_config

Co-Authored-By: adi <aditya.arolkar@berkeley.edu>

* fix(python): render objects and discriminated unions as Pydantic constructors in snippets

Since v4.62.0, reference.md and README snippets rendered objects as dict
literals when use_typeddict_requests was enabled, and discriminated unions
as dicts unconditionally. This regressed from the v1 generator which
always used Pydantic model constructors (e.g. OrderType_Market() instead
of {"type": "MARKET"}).

- Always use Pydantic constructors for objects in convertObject() and
  synthesizeDefaultNamed(), removing the useTypedDictRequests() gate
- Add Pydantic constructor path for discriminated unions in
  convertDiscriminatedUnion() with variant class resolution
- Add getDiscriminatedUnionVariantClassReference() to construct variant
  class names (e.g. OrderType_Market from OrderType + Market)

Made-with: Cursor

* fix(python): update 5.3.2 changelog with Pydantic constructor fix

Made-with: Cursor

* update python dynamic snippet snapshots

---------

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

- Remove save-baseline-cache job from benchmark-baseline.yml (cache was
  being evicted due to 10 GB repo limit from turbo build caches)
- Replace cache restore in seed.yml benchmark-report with GitHub REST API
  to download artifacts from latest successful nightly baseline run
- Add flat e2e/ directory support to format-benchmark-report.sh
- Increase artifact retention from 7 to 30 days for reliability
- Add actions:read permission for artifact download

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: barry.zou <barry.zou@buildwithfern.com>
Co-authored-by: aditya-arolkar-swe <13171215+aditya-arolkar-swe@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 ef58cdc into code:main Apr 7, 2026
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.

4 participants