Skip to content

fix(cli): CLI-18 CLI-46 handle absolute OpenAPI paths#15953

Merged
FedeZara merged 10 commits into
mainfrom
fix/cli-sentry-triage/2026-05-16-cli-18-cli-46
May 22, 2026
Merged

fix(cli): CLI-18 CLI-46 handle absolute OpenAPI paths#15953
FedeZara merged 10 commits into
mainfrom
fix/cli-sentry-triage/2026-05-16-cli-18-cli-46

Conversation

@FedeZara
Copy link
Copy Markdown
Contributor

Description

Linear ticket: Refs CLI-18, CLI-46

Fixes Sentry triage group: RelativeFilePath.of absolute OpenAPI path during loadSingleNamespaceAPIWorkspace.

Changes Made

  • Resolve absolute OpenAPI spec paths directly at workspace load time instead of passing them through RelativeFilePath.of.
  • Preserve existing relative-path behavior and add focused coverage for absolute OpenAPI spec paths.
  • Mark CLI-18 and CLI-46 ledger rows as shipped for this boundary fix.
  • Updated README.md generator (if applicable)

Testing

  • Unit tests added/updated
  • Manual testing completed
  • pnpm turbo run test --filter @fern-api/workspace-loader

Sentry issues

  • CLI-18: Resolve absolute OpenAPI spec paths directly during workspace loading.
  • CLI-46: Resolve absolute OpenAPI spec paths directly during workspace loading.

Made with Cursor

Resolve absolute OpenAPI spec paths at the workspace loading boundary so user configuration does not trip relative path invariants.

Co-authored-by: Cursor <cursoragent@cursor.com>
@FedeZara FedeZara requested a review from amckinney as a code owner May 16, 2026 19:25
@FedeZara FedeZara self-assigned this May 16, 2026
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

Link the shipped Sentry triage ledger rows to their pull request.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 16, 2026

Docs Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-05-22T05:19:54Z).

Fixture main PR Delta
docs 211.4s (n=5) 211.0s (35 versions) -0.4s (-0.2%)

Docs generation runs fern generate --docs --preview end-to-end against the benchmark fixture with 35 API versions (each version: markdown processing + OpenAPI-to-IR + FDR upload).
Delta is computed against the nightly baseline on main.
Baseline from nightly run(s) on main (latest: 2026-05-22T05:19:54Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-05-22 13:13 UTC

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 16, 2026

SDK Generation Benchmark Results

Comparing PR branch against median of 5 nightly run(s) on main (latest: 2026-05-22T05:19:54Z).

Full benchmark table (click to expand)
Generator Spec main (generator) main (E2E) PR (generator) Delta
csharp-sdk square 73s (n=5) 109s (n=5) 60s -13s (-17.8%)
go-sdk square 136s (n=5) 294s (n=5) 127s -9s (-6.6%)
java-sdk square 209s (n=5) 286s (n=5) 180s -29s (-13.9%)
php-sdk square 62s (n=5) 80s (n=5) 53s -9s (-14.5%)
python-sdk square 128s (n=5) 229s (n=5) 128s +0s (+0.0%)
ruby-sdk-v2 square 92s (n=5) 118s (n=5) 83s -9s (-9.8%)
rust-sdk square 170s (n=5) 164s (n=5) 162s -8s (-4.7%)
swift-sdk square 63s (n=5) 746s (n=5) 51s -12s (-19.0%)
ts-sdk square 234s (n=5) 240s (n=5) 225s -9s (-3.8%)

main (generator): generator-only time via --skip-scripts (includes Docker image build, container startup, IR parsing, and code generation — this is the same Docker-based flow customers use via fern generate). main (E2E): full customer-observable time including build/test scripts (nightly baseline, informational). Delta is computed against generator-only baseline.
⚠️ = generation exited with a non-zero exit code (timing may not reflect a successful run).
Baseline from nightly runs on main (latest: 2026-05-22T05:19:54Z). Trigger benchmark-baseline to refresh.
Last updated: 2026-05-22 13:16 UTC

@FedeZara FedeZara enabled auto-merge (squash) May 18, 2026 11:32
Co-authored-by: Cursor <cursoragent@cursor.com>
@Swimburger
Copy link
Copy Markdown
Member

Should we support absolute paths instead?

FedeZara and others added 7 commits May 20, 2026 18:05
# Conflicts:
#	.devin/automation/sentry-triage/ledger/CLI-18.json
#	.devin/automation/sentry-triage/ledger/CLI-46.json
Resolve absolute paths at workspace load time and propagate them safely
through OpenAPI loading, IR parsing, and OSS validation instead of rejecting
them or tripping RelativeFilePath.of invariants.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use shared resolveConfiguredFilepath when writing fetched specs so absolute
OpenAPI paths in generators.yml work with fern api update.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve overrides and overlays with resolveConfiguredFilepaths so external
spec companion files work outside the Fern workspace, including specs
override flows in OSSWorkspace.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve graphql, openrpc, and protobuf schema paths with
resolveConfiguredFilepath so generators.yml can reference files outside
the Fern workspace consistently across spec types.

Co-authored-by: Cursor <cursoragent@cursor.com>
Revert the allow-absolute-paths approach from this PR. Surface absolute
OpenAPI spec paths as a user-facing workspace configuration error instead
of resolving them through the workspace loader.

Co-authored-by: Cursor <cursoragent@cursor.com>
@FedeZara
Copy link
Copy Markdown
Contributor Author

Should we support absolute paths instead?

It makes sense, I'm drafting another PR for it (Linear ticket).
Meanwhile I would still merge this to silence this type of error.

@FedeZara FedeZara merged commit a3dbae9 into main May 22, 2026
217 checks passed
@FedeZara FedeZara deleted the fix/cli-sentry-triage/2026-05-16-cli-18-cli-46 branch May 22, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants