Skip to content

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

Merged
pull[bot] merged 14 commits into
code:mainfrom
fern-api:main
Jun 10, 2026
Merged

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

Conversation

@pull

@pull pull Bot commented Jun 10, 2026

Copy link
Copy Markdown

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 : )

iamnamananand996 and others added 14 commits June 10, 2026 23:38
…s fix (#16451)

Co-authored-by: cade <info@buildwithfern.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* fix(ci): remove `ref: main` from publish-generator workflows to fix re-run

When a publish-generator workflow is re-run after the initial attempt fails,
`ref: main` causes `actions/checkout` to check out the current HEAD of main
rather than the original triggering commit. Combined with `fetch-depth: 10`,
the release commit falls outside the shallow window, so the version-diff logic
finds no new versions and silently skips the Docker push—despite reporting
success.

Without an explicit `ref`, `actions/checkout` defaults to `github.sha` (the
triggering commit), which remains stable across re-runs. The shallow boundary
commit then provides the "before" state of versions.yml, allowing the diff
to correctly identify the new version.

This is what caused `fernapi/fern-typescript-sdk:3.71.5` to never appear on
Docker Hub even though the re-run reported success.

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

* fix(ci): use Go cross-compilation instead of QEMU for tsgolint arm64 build

The tsgolint-rebuild stage was using QEMU emulation for the arm64
build, which is orders of magnitude slower than native Go
cross-compilation. With CGO_ENABLED=0, Go can cross-compile natively
using GOOS/GOARCH without QEMU, dramatically speeding up the
multi-arch Docker build.

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

* perf: upgrade tsgolint to 0.23.0 and drop rebuild-from-source stage

tsgolint 0.23.0 is already built with go1.26.3, which clears the
go/stdlib CVEs that required rebuilding 0.22.1 from source. This
removes the entire golang build stage (~5 min cold build) and uses
the prebuilt npm binary directly.

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

* chore: add changelog entry for tsgolint upgrade

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

* chore: bump oxlint to 1.69.0 and oxfmt to 0.54.0 across repo

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

* chore: update seed test snapshots for oxc version bumps

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>
…6449)

* fix(cli): emit --api-key flag for header API-key auth [FER-11188]

API-key (`header`) auth schemes bound to an env var only, with no way to
pass the key inline — a regression vs the existing (Stainless) CLI, which
accepted `--api-key`.

Emit a credential-source chain so the `--api-key` flag is tried first,
falling back to the env var:

    .auth(ApiKeyAuth::new("<key>").source(AuthCredentialSource::any(vec![
        AuthCredentialSource::cli("api-key"),
        AuthCredentialSource::from_env("<env>"),
    ])))

`.cli()`/`.env()` on the builder overwrite each other, so the chain has
to go through `.source(Chain([...]))`. No cli-sdk change needed — the
runtime already collects cli args recursively through `Chain` and
registers a global `--api-key` clap flag.

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

* fix(cli): disambiguate --api-key flag across multiple header schemes

Addresses Devin review: a single hardcoded `--api-key` flag would
collapse onto one clap arg when a spec declares multiple `header`
API-key schemes, so both would resolve from the same value. Keep the
conventional `--api-key` for the common single-scheme case; derive a
distinct, camelCase-aware kebab flag from each key when there are more.

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

---------

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

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

* revert: keep catalog pin at current published version

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

* fix: biome formatting for long line

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

* fix: apply biome formatting

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

* fix: address review - remove unnecessary async, add error logging to catch block

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>
…#16463)

The multi-URL environments code path in EnvironmentGenerator relied on
`use crate::prelude::*;` to bring the Serialize/Deserialize derive
macros into scope. That works in a standalone rust-sdk crate (the stock
prelude re-exports serde), but the CLI generator embeds the SDK and
replaces src/prelude.rs with a bare types-crate re-export, dropping the
serde macros and breaking compilation with:

    error: cannot find derive macro `Serialize` in this scope
     --> sarvam-sdk/src/environment.rs:3:24

Import serde::{Deserialize, Serialize} directly instead, matching the
single-URL environment path and WebSocketChannelGenerator.

Co-authored-by: Cade Sarkin <cade@buildwithfern.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jun 10, 2026
@pull pull Bot added the ⤵️ pull label Jun 10, 2026
@pull pull Bot merged commit 6ef41bc into code:main Jun 10, 2026
10 of 12 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