Skip to content

refactor(codegen): use canonical compiler-owned types - #4048

Merged
hellovai merged 4 commits into
canaryfrom
codex/canonical-codegen-ty
Jul 16, 2026
Merged

refactor(codegen): use canonical compiler-owned types#4048
hellovai merged 4 commits into
canaryfrom
codex/canonical-codegen-ty

Conversation

@hellovai

@hellovai hellovai commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Builds the generator-independent codegen type foundation on top of the unified declaration namespace landed in #4047.

  • adds CodegenTy to the compiler-owned baml_type family instead of maintaining a parallel codegen enum
  • preserves declared alias identity at public use sites and stores each alias's canonical resolved target on its declaration
  • preserves alias chains and terminates safely for recursive aliases
  • canonicalizes unions recursively through containers, including flattening nested unions and collapsing repeated null
  • reuses typed QualifiedTypeName values end to end
  • resolves aliases before validating map-key legality, so only aliases whose compiler-resolved target is a legal BAML string key are accepted
  • migrates the shared symbol pool plus the existing Python and TypeScript consumers without changing their generated type behavior

Design boundary

CodegenTy describes shared, semantically valid BAML types. It deliberately does not encode target languages or generator capability policy.

A BAML-wide rule such as legal map-key types is validated while building the shared symbol pool. Target-dependent representability (for example, whether a generator can emit recursive type aliases directly) should be checked separately using named features such as RecursiveTypeAliases, rather than adding language-specific variants or conditions to this IR. The alias symbol retains recursion metadata so that check can be added without reconstructing the type graph.

Tests

  • cargo fmt --all -- --check
  • cargo test -p baml_type
  • cargo test -p baml_codegen_types
  • cargo test -p baml_project client_codegen
  • cargo test -p sdkgen_typescript_node
  • cargo test -p sdkgen_python_pydantic2
  • cargo check -p sdkgen_go

Coverage includes primitive aliases, alias chains, recursive aliases, nullable aliases, aliases in containers, legal and illegal aliased map keys, repeated/nested null unions, and same alias names in different BAML namespaces.

Scope audit

No Go generator source, Go CLI/runtime/packaging, OutputType::Go, sdk_import_path, language-version, CFFI, ABI-header, or wire-fixture changes are included.

Summary by CodeRabbit

  • New Features

    • Added canonicalization for code-generation types via a new CodegenTy representation.
    • Introduced shared codegen type validation with alias-aware map-key rules.
    • Improved name utilities for stream types and enhanced TypeScript rendering (including map support and updated function/union formatting).
  • Bug Fixes

    • Updated Python and TypeScript SDK generation to match the new type shapes, improving emitted results for interfaces, aliases, void/never, and precedence.
  • Refactor / Tests

    • Centralized validation/traversal logic and refreshed internal/SDK tests and fixtures to align with the new representations.

@cursor

cursor Bot commented Jul 16, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview, Comment Jul 16, 2026 7:27am
promptfiddle Ready Ready Preview, Comment Jul 16, 2026 7:27am
promptfiddle2 Ready Ready Preview, Comment Jul 16, 2026 7:27am

Request Review

@github-actions

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@vercel
vercel Bot temporarily deployed to Preview – beps July 16, 2026 01:46 Inactive
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

No new commits to review since the last review.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f1c8f39e-4fff-4341-b1f8-c12aa1c0c0ac

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This change introduces CodegenTy as the canonical generator type representation, adds recursive canonicalization and alias-aware validation, rewrites TIR conversion, and updates Python and TypeScript SDK generators for attribute-bearing type variants and function types.

Changes

Codegen type boundary

Layer / File(s) Summary
Canonical type representation
baml_language/crates/baml_type/src/{codegen_ty.rs,family.rs,lib.rs,names.rs}
Adds CodegenTy, recursive canonicalization, union normalization, display formatting, conversion tests, and stream-name accessors.
Shared validation contracts
baml_language/crates/baml_codegen_types/{Cargo.toml,src/errors.rs,src/ty.rs,src/symbols.rs}
Re-exports canonical types, adds structural validation, boxes comparable errors, and validates map keys through alias chains and symbol pools.
TIR-to-codegen conversion
baml_language/crates/baml_project/src/client_codegen.rs
Converts TIR types into canonical attribute-aware types, preserves interfaces, futures, aliases, and functions, and defaults absent returns to Void.
SDK generator migration
baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/*, baml_language/sdks/typescript/sdkgen_typescript_shared/src/*
Updates name accessors, Ty pattern matching, function translation, routing, imports, map handling, and typed test fixtures.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CompilerTIR
  participant ClientCodegen
  participant CodegenTy
  participant SDKGenerator
  CompilerTIR->>ClientCodegen: provide compiler types
  ClientCodegen->>CodegenTy: convert and canonicalize
  CodegenTy-->>ClientCodegen: return canonical Ty
  ClientCodegen->>SDKGenerator: provide typed symbol pool
  SDKGenerator-->>SDKGenerator: translate Ty to target-language types
Loading

Possibly related PRs

Poem

A rabbit hops through types so bright,
Canonical unions line up right.
Aliases safely cross the way,
Python and TypeScript bloom today.
Functions compile—hooray!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: migrating codegen to compiler-owned canonical types.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/canonical-codegen-ty

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 16, 2026 01:53 Inactive
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown

Binary size checks passed

7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
baml-cli Linux 🔒 22.8 MB 9.7 MB file 22.8 MB +66.0 KB (+0.3%) OK
packed-program Linux 🔒 16.3 MB 6.8 MB file 16.3 MB +24.6 KB (+0.2%) OK
baml-cli macOS 🔒 17.6 MB 8.5 MB file 17.5 MB +49.7 KB (+0.3%) OK
packed-program macOS 🔒 12.6 MB 6.0 MB file 12.6 MB +32 B (+0.0%) OK
baml-cli Windows 🔒 19.2 MB 8.7 MB file 18.7 MB +425.5 KB (+2.3%) OK
packed-program Windows 🔒 13.5 MB 6.1 MB file 13.5 MB +5.6 KB (+0.0%) OK
bridge_wasm WASM 15.2 MB 🔒 4.3 MB gzip 4.3 MB +4.6 KB (+0.1%) OK

🔒 = the size this artifact is GATED on (ceiling + delta). Binaries gate on file size (installed binary); WASM gates on gzip (download size). The other size is shown for information only.


Generated by cargo size-gate · workflow run

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 16, 2026 02:06 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
baml_language/sdks/nodejs/sdkgen_typescript_node/src/translate_ty.rs (1)

82-95: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Parenthesize callback types inside lists and unions.
Ty::List only wraps unions today, so a callback element renders as () => boolean[] instead of (() => boolean)[]. Ty::Union has the same issue for nullable callbacks, producing () => boolean | null instead of (() => boolean) | null. Add matrix cases for a list of callbacks and a nullable callback.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@baml_language/sdks/nodejs/sdkgen_typescript_node/src/translate_ty.rs` around
lines 82 - 95, The type translation logic must parenthesize callback/function
types when they appear as list elements or union members, not only unions
containing “ | ”. Update the relevant handling in translate_ty, including
Ty::List and Ty::Union, so callback precedence renders as (() => boolean)[] and
(() => boolean) | null; add matrix coverage for both nullable callback unions
and callback lists.
🧹 Nitpick comments (1)
baml_language/crates/baml_type/src/family.rs (1)

445-468: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a widening/narrowing test for CodegenTy.

conversion_matrix_round_trips (Lines 399-431) exercises widening/narrowing for RuntimeTy, RealizedTy, ConcreteTy, ConcreteRealizedTy, but the new CodegenTy member (which per the updated lib.rs diagram now sits between RuntimeTy and RealizedTy) has no equivalent round-trip coverage against deep_concrete()/with_typevar(). Given this crate's macro-generated TryFrom/From impls are the load-bearing invariant the whole PR stack depends on, locking in RuntimeTy::from(CodegenTy) and CodegenTy::try_from(&RuntimeTy) here would catch regressions early.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@baml_language/crates/baml_type/src/family.rs` around lines 445 - 468, Add a
CodegenTy widening/narrowing round-trip case to conversion_matrix_round_trips,
using deep_concrete() and with_typevar() to verify RuntimeTy::from(CodegenTy)
and CodegenTy::try_from(&RuntimeTy) both preserve the expected values. Keep the
existing RuntimeTy, RealizedTy, ConcreteTy, and ConcreteRealizedTy coverage
unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@baml_language/crates/baml_codegen_types/src/symbols.rs`:
- Around line 247-315: Update WalkAllUnions::walk_all_unions for the Ty::Union
arm to recurse through each union member and extend the result with that
member’s walk_all_unions output, while still retaining the current union itself.
Follow the existing Ty::Union(members, _) traversal used by validate_map_keys_ty
and preserve leaf behavior for the other non-container variants.

In `@baml_language/crates/baml_project/src/client_codegen.rs`:
- Around line 546-628: Update convert_tir_leaf to copy the source TyAttr from
each TirTy variant instead of constructing TyAttr::default(), preserving
non-default SAP and streaming annotations through lowering. Ensure recursive
conversions retain their own source attributes, and add a regression test
covering a TIR type with non-empty attributes through SDK generation.

---

Outside diff comments:
In `@baml_language/sdks/nodejs/sdkgen_typescript_node/src/translate_ty.rs`:
- Around line 82-95: The type translation logic must parenthesize
callback/function types when they appear as list elements or union members, not
only unions containing “ | ”. Update the relevant handling in translate_ty,
including Ty::List and Ty::Union, so callback precedence renders as (() =>
boolean)[] and (() => boolean) | null; add matrix coverage for both nullable
callback unions and callback lists.

---

Nitpick comments:
In `@baml_language/crates/baml_type/src/family.rs`:
- Around line 445-468: Add a CodegenTy widening/narrowing round-trip case to
conversion_matrix_round_trips, using deep_concrete() and with_typevar() to
verify RuntimeTy::from(CodegenTy) and CodegenTy::try_from(&RuntimeTy) both
preserve the expected values. Keep the existing RuntimeTy, RealizedTy,
ConcreteTy, and ConcreteRealizedTy coverage unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 95eeedc9-2c5c-4658-b8a6-7a2a9475b99a

📥 Commits

Reviewing files that changed from the base of the PR and between 11e75dc and adcdc38.

⛔ Files ignored due to path filters (1)
  • baml_language/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (19)
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/crates/baml_codegen_types/src/errors.rs
  • baml_language/crates/baml_codegen_types/src/symbols.rs
  • baml_language/crates/baml_codegen_types/src/ty.rs
  • baml_language/crates/baml_project/src/client_codegen.rs
  • baml_language/crates/baml_type/src/codegen_ty.rs
  • baml_language/crates/baml_type/src/family.rs
  • baml_language/crates/baml_type/src/lib.rs
  • baml_language/crates/baml_type/src/names.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/mod.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/leaf.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/lib.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/routing.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/translate_ty.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/mod.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/leaf.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/routing.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/translate_ty.rs

Comment thread baml_language/crates/baml_codegen_types/src/symbols.rs
Comment thread baml_language/crates/baml_project/src/client_codegen.rs
@hellovai
hellovai force-pushed the codex/canonical-codegen-ty branch from adcdc38 to ebe7610 Compare July 16, 2026 06:45
@hellovai

hellovai commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Addressed all four review findings in ebe76103a:

  • nested-union traversal now recurses defensively and is regression-tested
  • TIR TyAttr values survive recursively; canonicalization preserves/distributes SAP attributes
  • TypeScript parenthesizes callbacks in lists and union members, with matrix cases
  • CodegenTy widening/narrowing now has concrete and type-variable round-trip coverage

The branch is also rebased onto current canary (including the TypeScript shared-SDK move). Focused tests and workspace Clippy pass.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@hellovai Thanks for the update — I'll take a fresh look at the rebased branch and verify the four fixes (nested-union recursion with regression tests, TIR value survival through canonicalization, TypeScript callback parenthesization in lists/unions, and widening/narrowing round-trip coverage).

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@hellovai Understood — thanks for the detailed rundown. I'll verify each of the four fixes in ebe76103a as part of the review:

  • Defensive recursion in nested-union traversal, backed by regression tests
  • TyAttr propagation surviving recursively through TIR→codegen conversion, with SAP attribute preservation/distribution in canonicalization
  • TypeScript callback parenthesization in lists and union members, matrix-tested
  • CodegenTy widening/narrowing round-trip coverage for both concrete types and type variables

I'll also confirm the rebase onto canary (including the TypeScript shared-SDK move) hasn't introduced any conflicts with these changes.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@vercel
vercel Bot temporarily deployed to Preview – beps July 16, 2026 06:47 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 16, 2026 06:54 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
baml_language/crates/baml_type/src/family.rs (1)

32-36: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Include CodegenTy in every family-invariant test.

The new member is absent from borsh_round_trips, in-memory discriminant, borrowed-upcast, and downcast tests. Add it to guard the serialization and unsafe transmute contracts.

As per coding guidelines, “Prefer writing Rust unit tests over integration tests where possible.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@baml_language/crates/baml_type/src/family.rs` around lines 32 - 36, Update
every family-invariant test to include CodegenTy, specifically
borsh_round_trips, the in-memory discriminant test, borrowed-upcast tests, and
downcast tests. Add the new family member to each relevant test case so
serialization and transmute contracts are covered consistently with the existing
family variants.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@baml_language/sdks/typescript/sdkgen_typescript_shared/src/translate_ty.rs`:
- Line 151: Update the Ty::EnumVariant branch in the type-rendering match to
preserve the variant’s member name instead of rendering only the enclosing enum,
while leaving Ty::Enum rendering unchanged. Emit the qualified TypeScript member
form for variants and add the corresponding cross-leaf variant case required by
the renderer.
- Line 59: Update the Ty-to-TypeScript translation match in the relevant
translator so Ty::Void continues mapping to null while Ty::Never maps to the
TypeScript never type. Split the combined Ty::Void | Ty::Never arm and add a
dedicated Ty::Never matrix case.

---

Nitpick comments:
In `@baml_language/crates/baml_type/src/family.rs`:
- Around line 32-36: Update every family-invariant test to include CodegenTy,
specifically borsh_round_trips, the in-memory discriminant test, borrowed-upcast
tests, and downcast tests. Add the new family member to each relevant test case
so serialization and transmute contracts are covered consistently with the
existing family variants.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 3509a98f-3722-4779-bd16-76adaa37a2f4

📥 Commits

Reviewing files that changed from the base of the PR and between adcdc38 and ebe7610.

⛔ Files ignored due to path filters (1)
  • baml_language/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (19)
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/crates/baml_codegen_types/src/errors.rs
  • baml_language/crates/baml_codegen_types/src/symbols.rs
  • baml_language/crates/baml_codegen_types/src/ty.rs
  • baml_language/crates/baml_project/src/client_codegen.rs
  • baml_language/crates/baml_type/src/codegen_ty.rs
  • baml_language/crates/baml_type/src/family.rs
  • baml_language/crates/baml_type/src/lib.rs
  • baml_language/crates/baml_type/src/names.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/mod.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/leaf.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/routing.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/translate_ty.rs
  • baml_language/sdks/typescript/sdkgen_typescript_shared/src/emit/mod.rs
  • baml_language/sdks/typescript/sdkgen_typescript_shared/src/leaf.rs
  • baml_language/sdks/typescript/sdkgen_typescript_shared/src/lib.rs
  • baml_language/sdks/typescript/sdkgen_typescript_shared/src/routing.rs
  • baml_language/sdks/typescript/sdkgen_typescript_shared/src/translate_ty.rs
🚧 Files skipped from review as they are similar to previous changes (11)
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/mod.rs
  • baml_language/crates/baml_type/src/lib.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/routing.rs
  • baml_language/crates/baml_type/src/names.rs
  • baml_language/crates/baml_codegen_types/src/ty.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/translate_ty.rs
  • baml_language/crates/baml_codegen_types/src/symbols.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/leaf.rs
  • baml_language/crates/baml_project/src/client_codegen.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs

Comment thread baml_language/sdks/typescript/sdkgen_typescript_shared/src/translate_ty.rs Outdated
Comment thread baml_language/sdks/typescript/sdkgen_typescript_shared/src/translate_ty.rs Outdated
@hellovai

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Addressed the complete follow-up review in ea309f2f8: TypeScript now preserves Never and enum-variant singleton types, with matrix coverage, and CodegenTy is included in Borsh round-trips, in-memory discriminant checks, borrowed upcast checks, and owned/borrowed downcast checks. Repository commit hooks and focused tests pass.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@hellovai Thanks for the update — I'll verify the fixes in ea309f2f8:

  • TypeScript preserving Never and enum-variant singleton types, with matrix coverage
  • CodegenTy inclusion in Borsh round-trips, in-memory discriminant checks, and borrowed/owned upcast/downcast checks

I'll also make sure nothing regressed from the earlier fixes (nested-union recursion, TIR TyAttr survival, TypeScript callback parenthesization, and widening/narrowing round-trip coverage) as part of this fresh pass.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@vercel
vercel Bot temporarily deployed to Preview – beps July 16, 2026 07:06 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 16, 2026 07:14 Inactive
@hellovai
hellovai added this pull request to the merge queue Jul 16, 2026
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 16, 2026 07:27 Inactive
Merged via the queue into canary with commit 79aa0f4 Jul 16, 2026
52 checks passed
@hellovai
hellovai deleted the codex/canonical-codegen-ty branch July 16, 2026 07:44
codeshaunted added a commit that referenced this pull request Jul 16, 2026
- baml_cffi.h/cbindgen.toml/bridge_cffi tests: canary's generated-header
  machinery is authoritative (supersedes our header_is_current.rs);
  header regenerated to include BAML_BRIDGE_LANGUAGE_CPP = 6
- bridge_cpp headers ported to the renamed ABI (Buffer -> BamlBuffer,
  uintptr_t -> size_t, language id via the enum constant)
- sdkgen_cpp ported to QualifiedTypeName accessors and the CodegenTy
  struct-variant shapes; Ty::EnumVariant widens to its enum
- alias identity is now preserved at use sites (#4048), so generated
  signatures spell the using-alias name
- cbindgen pinned =0.29.0 (canary), typescript sdk crate renames taken
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant