Skip to content

fix(cli): preserve transitive audience-filtered type references#16078

Open
kafkas wants to merge 3 commits into
mainfrom
anar/fer-10708-nested-object-type-references-are-not-resolved-in-docs-ui
Open

fix(cli): preserve transitive audience-filtered type references#16078
kafkas wants to merge 3 commits into
mainfrom
anar/fer-10708-nested-object-type-references-are-not-resolved-in-docs-ui

Conversation

@kafkas
Copy link
Copy Markdown
Member

@kafkas kafkas commented May 22, 2026

Description

Linear ticket: Closes FER-10708

Fixes an audience-filtering issue where nested object types could render as any in docs when an OpenAPI schema reached nested inline object types through $ref chains.

The audience-filtered IR graph was only including one level of referenced type descendants. This meant direct $ref targets survived filtering, but their own nested inline child types could be dropped from the filtered IR.

Changes Made

  • Updated IrGraph.addReferencedTypes to walk the full transitive type-dependency graph instead of adding only direct descendants.
  • Added a V3 OpenAPI regression fixture covering nested object types reached through $ref chains and arrays.
  • Added regression coverage that verifies audience-filtered FDR output preserves all non-internal transitive type definitions.
  • Added a CLI changelog entry.

Testing

  • Unit tests added/updated
  • Manual testing completed

@kafkas kafkas requested a review from amckinney as a code owner May 22, 2026 23:05
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.

@kafkas kafkas force-pushed the anar/fer-10708-nested-object-type-references-are-not-resolved-in-docs-ui branch from d740f54 to 1060ce5 Compare May 22, 2026 23:13
@github-actions
Copy link
Copy Markdown
Contributor

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) 201.4s (35 versions) -10.0s (-4.7%)

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 23:32 UTC

@github-actions
Copy link
Copy Markdown
Contributor

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) 58s -15s (-20.5%)
go-sdk square 136s (n=5) 294s (n=5) 132s -4s (-2.9%)
java-sdk square 209s (n=5) 286s (n=5) 182s -27s (-12.9%)
php-sdk square 62s (n=5) 80s (n=5) 51s -11s (-17.7%)
python-sdk square 128s (n=5) 229s (n=5) 125s -3s (-2.3%)
ruby-sdk-v2 square 92s (n=5) 118s (n=5) 83s -9s (-9.8%)
rust-sdk square 170s (n=5) 164s (n=5) 164s -6s (-3.5%)
swift-sdk square 63s (n=5) 746s (n=5) 49s -14s (-22.2%)
ts-sdk square 234s (n=5) 240s (n=5) 219s -15s (-6.4%)

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 23:35 UTC

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.

1 participant