Skip to content

chore: rename sdk generation crates from codegen_* to sdkgen_* - #3657

Merged
sxlijin merged 2 commits into
canaryfrom
push-qyksnqurnxoq
Jun 3, 2026
Merged

sxlijin merged 2 commits into
canaryfrom
push-qyksnqurnxoq

Conversation

@sxlijin

@sxlijin sxlijin commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Refactor

    • Reorganized SDK code generators with updated internal naming conventions for better clarity and maintainability.
  • Bug Fixes

    • Fixed Python SDK generation to properly include required client parameter in generated function bindings.

@vercel

vercel Bot commented Jun 3, 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 Jun 3, 2026 7:58am
promptfiddle Ready Ready Preview, Comment Jun 3, 2026 7:58am
promptfiddle2 Ready Ready Preview, Comment Jun 3, 2026 7:58am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR renames SDK code-generator crates from codegen_* to sdkgen_* names across workspace manifests, crate packages, CLI generator dispatch, test harness implementations, and emitter modules. It also extends the namespace validator to support per-namespace approved_suffixes for flexible crate-naming rules, and adds a Python unit test for LLM client parameter rendering in generated code.

Changes

SDK Generator Crate Renaming and Naming Validation

Layer / File(s) Summary
Workspace and crate manifest renaming
baml_language/Cargo.toml, baml_language/crates/baml_cli/Cargo.toml, baml_language/sdk_tests/harness_setup/Cargo.toml, baml_language/sdks/python/rust/sdkgen_python_pydantic2/Cargo.toml, baml_language/sdks/nodejs/sdkgen_typescript_node/Cargo.toml, baml_language/sdks/go/sdkgen_go/Cargo.toml
Root workspace members and dependency paths updated from codegen_* to sdkgen_*. Individual crate name fields renamed in their Cargo.toml manifests.
Stow configuration and naming validator updates
baml_language/stow.toml, baml_language/crates/tools_stow/src/main.rs
Added approved_suffixes: Vec<String> field to Namespace struct to allow suffix-based crate-name validation. Updated stow.toml to remove codegen from baml namespace prefixes and add new sdkgen namespace with approved suffix list (python_pydantic2, typescript_node). Validator logic checks suffixes before falling back to structural checks.
CLI generator dispatch wiring
baml_language/crates/baml_cli/src/generate.rs
Imports and generator dispatch updated to call sdkgen_python_pydantic2::to_source_code_with_bytecode(...) for Python output targets.
Python codegen harness, emitter, and LLM client test
baml_language/sdk_tests/harness_setup/src/python_pydantic2.rs, baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs, baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/utils.rs, baml_language/crates/baml_project/src/client_codegen.rs
Python harness imports and calls switched to sdkgen_python_pydantic2. Error messages and module docs updated. New unit test validates LLM client default parameter appears in generated .py bindings and .pyi stubs for both function and companion function signatures.
TypeScript codegen harness, emitter modules, and docs
baml_language/sdk_tests/harness_setup/src/typescript_node.rs, baml_language/sdks/nodejs/sdkgen_typescript_node/src/lib.rs, baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/mod.rs, baml_language/sdks/nodejs/sdkgen_typescript_node/src/routing.rs, baml_language/sdks/nodejs/sdkgen_typescript_node/src/translate_ty.rs
TypeScript harness imports and calls switched to sdkgen_typescript_node. Module documentation updated to reference sdkgen_python_pydantic2 as the Python prior-art source instead of codegen_python. Assertion error messages reference the new crate name.
Go codegen module docs
baml_language/sdks/go/sdkgen_go/src/lib.rs
Module documentation and stub panic message updated to reference sdkgen_go and align with sdkgen_python_pydantic2 as API reference.
Test infrastructure and documentation
baml_language/sdk_tests/README.md, baml_language/sdk_tests/harness_runner/Cargo.toml, baml_language/sdk_tests/harness_runner/src/lib.rs, baml_language/sdk_tests/crates/python_pydantic2/function_calls/customizable/test_raises.py, baml_language/sdk_tests/crates/typescript_node/build.rs, baml_language/sdks/python/src/baml_core/typemap.py
README, harness macro examples, test docstrings, and build script comments throughout test infrastructure updated to reference renamed sdkgen_* crates.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • BoundaryML/baml#3490: Both PRs modify baml_language/crates/baml_cli/src/generate.rs to use typed NamingConvention/OutputType and route Python generation through the new generator API.
  • BoundaryML/baml#3632: Both PRs update the Python codegen pipeline call sites in baml_cli/src/generate.rs and sdk_tests/harness_setup/src/python_pydantic2.rs around to_source_code_with_bytecode.
  • BoundaryML/baml#3421: Both PRs modify baml_language/crates/baml_cli/src/generate.rs to change the Python codegen generation path and output handling.

🐰 Renaming crates from old to new,
sdkgen paths now shine through,
Validators bloom with suffixes bright,
Python tests add client delight,
The generator zoo gets a name refresh! ✨

🚥 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 and concisely summarizes the main change: renaming SDK generation crates from codegen_* to sdkgen_*, which is precisely what the changeset implements across all affected files and modules.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch push-qyksnqurnxoq

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 and usage tips.

@github-actions

github-actions Bot commented Jun 3, 2026 •

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 – promptfiddle2 June 3, 2026 04:59 Inactive

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f95c6c9c2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +540 to +550
params.push(Param {
name: Name::new("client"),
type_expr: Some(SpannedTypeExpr {
expr: TypeExpr::Path {
segments: vec![Name::new("baml"), Name::new("llm"), Name::new("Client")],
generic_args: vec![],
attrs: vec![],
},
span,
}),
default: Some(crate::ast::DefaultExprId::new(default_expr)),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Make injected client optional in TypeScript SDK

For every LLM function with a client declaration, this appends a defaulted client parameter that flows into codegen. I checked baml_language/sdks/nodejs/sdkgen_typescript_node/src/leaf.rs around render_function_ts: the TypeScript emitter builds the cast signature from all f.param_names/arg_tys and does not inspect FunctionArgumentDefault, so generated TS signatures become e.g. (input: string, client: baml.llm.Client) => ... and callers of the normal default-client form Ask("hi") get a type error. Python has a positional-count/default handling path, but the TS SDK currently does not, so this injection should either be omitted from TS signatures or rendered as optional there.

Useful? React with 👍 / 👎.

@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.

Caution

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

⚠️ Outside diff range comments (1)
baml_language/crates/baml_compiler2_ast/src/lower_cst.rs (1)

275-287: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Reserve client before lowering defaults.

Line 275 lowers defaults against the original signature, then Line 317 deletes/reinserts client. That means a case like function F(client: string, alias: string = client) will rebind alias's default to the synthesized baml.llm.Client param instead of the rejected user param, and defaults/env refs from the removed param still survive in defaults. Please filter the reserved LLM client parameter out before calling lower_params_with_defaults, or re-lower defaults after rewriting the parameter list. A regression test for a surviving default that references client would catch this.

Also applies to: 317-320

🤖 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_compiler2_ast/src/lower_cst.rs` around lines 275 -
287, The lowering currently calls lower_params_with_defaults on the original
param_list() before reserving/removing the synthesized LLM "client" parameter,
which lets defaults (and env var refs) bind to the user "client" param that will
later be deleted; modify the code so you filter out the reserved/synthesized
"client" parameter from the param_list() (or otherwise remove it from the
iterator) before calling lower_params_with_defaults (the call site using
name.as_str(), &parameter_context, diags, true, env_var_refs), ensuring
FunctionDefaults returned do not contain references to the removed param;
alternatively, perform the reservation/rewrite of the client param first and
then re-run lower_params_with_defaults against the rewritten parameter list so
defaults are lowered against the final signature.
🧹 Nitpick comments (1)
baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs (1)

1921-1988: ⚡ Quick win

Consider verifying async variants in .pyi for completeness.

The test thoroughly verifies that the client parameter renders correctly in both function and companion signatures. However, it only checks the sync variants in the .pyi file (lines 1983-1987). Following the pattern established by similar parameter tests (e.g., function_defaults_render_keyword_only_signature_and_positional_limit at lines 1914-1918), consider adding assertions for the async variants to ensure complete coverage:

assert!(pyi.contains(
    "async def extract_resume_async(resume: str, *, client: baml.llm.Client = ...) -> str: ...\n"
));
assert!(pyi.contains(
    "async def extract_resume__build_request_async(resume: str, *, client: baml.llm.Client = ...) -> baml.http.Request: ...\n"
));
🤖 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/python/rust/sdkgen_python_pydantic2/src/lib.rs` around
lines 1921 - 1988, The test
llm_default_client_argument_renders_in_function_and_companion_signatures only
asserts the sync .pyi signatures for extract_resume and
extract_resume$build_request; add assertions for the async variants to mirror
coverage. Inside that test (referencing the symbols extract_resume and
extract_resume$build_request and the pyi variable), add checks asserting
pyi.contains for "async def extract_resume_async(resume: str, *, client:
baml.llm.Client = ...) -> str: ..." and for "async def
extract_resume__build_request_async(resume: str, *, client: baml.llm.Client =
...) -> baml.http.Request: ...".
🤖 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.

Outside diff comments:
In `@baml_language/crates/baml_compiler2_ast/src/lower_cst.rs`:
- Around line 275-287: The lowering currently calls lower_params_with_defaults
on the original param_list() before reserving/removing the synthesized LLM
"client" parameter, which lets defaults (and env var refs) bind to the user
"client" param that will later be deleted; modify the code so you filter out the
reserved/synthesized "client" parameter from the param_list() (or otherwise
remove it from the iterator) before calling lower_params_with_defaults (the call
site using name.as_str(), &parameter_context, diags, true, env_var_refs),
ensuring FunctionDefaults returned do not contain references to the removed
param; alternatively, perform the reservation/rewrite of the client param first
and then re-run lower_params_with_defaults against the rewritten parameter list
so defaults are lowered against the final signature.

---

Nitpick comments:
In `@baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/lib.rs`:
- Around line 1921-1988: The test
llm_default_client_argument_renders_in_function_and_companion_signatures only
asserts the sync .pyi signatures for extract_resume and
extract_resume$build_request; add assertions for the async variants to mirror
coverage. Inside that test (referencing the symbols extract_resume and
extract_resume$build_request and the pyi variable), add checks asserting
pyi.contains for "async def extract_resume_async(resume: str, *, client:
baml.llm.Client = ...) -> str: ..." and for "async def
extract_resume__build_request_async(resume: str, *, client: baml.llm.Client =
...) -> baml.http.Request: ...".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: bbafee14-043c-4d36-8d95-7a42f360c599

📥 Commits

Reviewing files that changed from the base of the PR and between e9a9fa5 and 3f95c6c.

⛔ Files ignored due to path filters (44)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/architecture/architecture.svg is excluded by !**/*.svg
  • baml_language/crates/baml_tests/snapshots/baml_src/type_reflection.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/comment_in_type/baml_tests__compiles__comment_in_type__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/comment_in_type/baml_tests__compiles__comment_in_type__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/comment_in_type/baml_tests__compiles__comment_in_type__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/comment_in_type/baml_tests__compiles__comment_in_type__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/json_llm_return_type/baml_tests__compiles__json_llm_return_type__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/json_llm_return_type/baml_tests__compiles__json_llm_return_type__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/json_llm_return_type/baml_tests__compiles__json_llm_return_type__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/json_llm_return_type/baml_tests__compiles__json_llm_return_type__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/llm_image_outputs/baml_tests__compiles__llm_image_outputs__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/llm_image_outputs/baml_tests__compiles__llm_image_outputs__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/llm_image_outputs/baml_tests__compiles__llm_image_outputs__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/llm_image_outputs/baml_tests__compiles__llm_image_outputs__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/optional_function_parameters/baml_tests__compiles__optional_function_parameters__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/optional_function_parameters/baml_tests__compiles__optional_function_parameters__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/optional_function_parameters/baml_tests__compiles__optional_function_parameters__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/optional_function_parameters/baml_tests__compiles__optional_function_parameters__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/stream_llm_inferred_typeargs/baml_tests__compiles__stream_llm_inferred_typeargs__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/stream_llm_inferred_typeargs/baml_tests__compiles__stream_llm_inferred_typeargs__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/stream_llm_inferred_typeargs/baml_tests__compiles__stream_llm_inferred_typeargs__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/stream_llm_inferred_typeargs/baml_tests__compiles__stream_llm_inferred_typeargs__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/testset_vibes_nested/baml_tests__compiles__testset_vibes_nested__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/testset_vibes_nested/baml_tests__compiles__testset_vibes_nested__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/testset_vibes_nested/baml_tests__compiles__testset_vibes_nested__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/testset_vibes_nested/baml_tests__compiles__testset_vibes_nested__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_errors/baml_tests__compiles__type_builder_errors__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_errors/baml_tests__compiles__type_builder_errors__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_errors/baml_tests__compiles__type_builder_errors__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_errors/baml_tests__compiles__type_builder_errors__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_test/baml_tests__compiles__type_builder_test__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_test/baml_tests__compiles__type_builder_test__04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_test/baml_tests__compiles__type_builder_test__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/type_builder_test/baml_tests__compiles__type_builder_test__06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/basic_types/baml_tests__diagnostic_errors__basic_types__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/basic_types/baml_tests__diagnostic_errors__basic_types__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/control_flow/baml_tests__diagnostic_errors__control_flow__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/control_flow/baml_tests__diagnostic_errors__control_flow__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/simple_function/baml_tests__diagnostic_errors__simple_function__03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/simple_function/baml_tests__diagnostic_errors__simple_function__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/src/compiler2_tir/snapshots/baml_tests__compiler2_tir__stream_expansion__stream_companion_preserves_generic_args_for_llm_return_type.snap is excluded by !**/*.snap
📒 Files selected for processing (48)
  • baml_language/Cargo.toml
  • baml_language/crates/baml_cli/Cargo.toml
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_compiler2_ast/src/companions.rs
  • baml_language/crates/baml_compiler2_ast/src/lib.rs
  • baml_language/crates/baml_compiler2_ast/src/lower_cst.rs
  • baml_language/crates/baml_compiler2_ast/src/lowering_diagnostic.rs
  • baml_language/crates/baml_compiler2_ppir/src/lib.rs
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/duplicate_names.baml
  • baml_language/crates/baml_project/src/client_codegen.rs
  • baml_language/crates/baml_tests/src/compiler2_hir.rs
  • baml_language/crates/baml_tests/src/compiler2_tir/phase3a.rs
  • baml_language/crates/bex_engine/src/lib.rs
  • baml_language/sdk_tests/README.md
  • baml_language/sdk_tests/crates/python_pydantic2/function_calls/customizable/test_raises.py
  • baml_language/sdk_tests/crates/typescript_node/build.rs
  • baml_language/sdk_tests/harness_runner/Cargo.toml
  • baml_language/sdk_tests/harness_runner/src/lib.rs
  • baml_language/sdk_tests/harness_setup/Cargo.toml
  • baml_language/sdk_tests/harness_setup/src/python_pydantic2.rs
  • baml_language/sdk_tests/harness_setup/src/typescript_node.rs
  • baml_language/sdks/go/codegen_go/src/lib.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/Cargo.toml
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/class.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/enum_.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/function.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/method.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/mod.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/type_alias.rs
  • baml_language/sdks/nodejs/sdkgen_typescript_node/src/emit/typemap_file.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/Cargo.toml
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/class.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/enum_.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/function.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/method.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/mod.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/type_alias.rs
  • baml_language/sdks/python/rust/sdkgen_python_pydantic2/src/emit/typemap_file.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/python/rust/sdkgen_python_pydantic2/src/utils.rs
  • baml_language/sdks/python/src/baml_core/typemap.py
💤 Files with no reviewable changes (1)
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/duplicate_names.baml

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 3, 2026 05:11 Inactive
@github-actions

github-actions Bot commented Jun 3, 2026 •

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 17.4 MB 7.4 MB file 24.1 MB -6.7 MB (-27.9%) OK
✅ packed-program Linux 🔒 12.7 MB 5.4 MB file 15.1 MB -2.4 MB (-16.1%) OK
✅ baml-cli macOS 🔒 13.2 MB 6.4 MB file 18.2 MB -5.0 MB (-27.3%) OK
✅ packed-program macOS 🔒 9.7 MB 4.7 MB file 11.5 MB -1.8 MB (-16.0%) OK
✅ baml-cli Windows 🔒 14.2 MB 6.5 MB file 19.6 MB -5.4 MB (-27.5%) OK
✅ packed-program Windows 🔒 10.2 MB 4.7 MB file 12.2 MB -2.0 MB (-16.7%) OK
✅ bridge_wasm WASM 11.6 MB 🔒 3.3 MB gzip 3.9 MB -581.1 KB (-15.0%) 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

@sxlijin
sxlijin force-pushed the push-qyksnqurnxoq branch from 3f95c6c to 2e96240 Compare June 3, 2026 07:27
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 07:28 Inactive
@sxlijin
sxlijin force-pushed the push-qyksnqurnxoq branch from 2e96240 to 0acf14e Compare June 3, 2026 07:29
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 07:30 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 07:36 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 07:41 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 07:46 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.

🧹 Nitpick comments (1)
baml_language/crates/tools_stow/src/main.rs (1)

13-17: 💤 Low value

Optional: Consider documenting the approved_suffixes feature in the top-level rules comment.

The top-level doc comment describes the naming rules but doesn't mention the new approved_suffixes configuration. While the field-level documentation (lines 70-73) is clear, adding a brief mention here would improve discoverability for users reading the rules overview.

Example addition after line 17:

 //!    - Auto-allowed suffixes: `_types`, `_test`, `_tests` (no prefix needed)
+//!    - Per-namespace `approved_suffixes` accept entire tails verbatim (e.g., "python_pydantic2")
🤖 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/tools_stow/src/main.rs` around lines 13 - 17, Add a
brief mention of the approved_suffixes configuration to the top-level rules doc
comment so readers see it in the overview: update the header comment block (the
file-level doc comments at the top of main.rs) to include a short line like
"Optional: `approved_suffixes` can be configured to allow additional crate name
suffixes" and a one-sentence note about its purpose and that this field is
documented in the `approved_suffixes` field-level docs; reference the
`approved_suffixes` identifier so users can quickly find the detailed docs
later.
🤖 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.

Nitpick comments:
In `@baml_language/crates/tools_stow/src/main.rs`:
- Around line 13-17: Add a brief mention of the approved_suffixes configuration
to the top-level rules doc comment so readers see it in the overview: update the
header comment block (the file-level doc comments at the top of main.rs) to
include a short line like "Optional: `approved_suffixes` can be configured to
allow additional crate name suffixes" and a one-sentence note about its purpose
and that this field is documented in the `approved_suffixes` field-level docs;
reference the `approved_suffixes` identifier so users can quickly find the
detailed docs later.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 89a26ee9-62d8-43bd-9f1a-8c7b4aaa0015

📥 Commits

Reviewing files that changed from the base of the PR and between 0acf14e and ec302fb.

⛔ Files ignored due to path filters (1)
  • baml_language/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • baml_language/Cargo.toml
  • baml_language/crates/tools_stow/src/main.rs
  • baml_language/sdks/go/sdkgen_go/Cargo.toml
  • baml_language/sdks/go/sdkgen_go/src/lib.rs
  • baml_language/stow.toml
✅ Files skipped from review due to trivial changes (1)
  • baml_language/sdks/go/sdkgen_go/Cargo.toml
🚧 Files skipped from review as they are similar to previous changes (1)
  • baml_language/stow.toml

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 3, 2026 07:58 Inactive
@sxlijin
sxlijin added this pull request to the merge queue Jun 3, 2026
Merged via the queue into canary with commit cda34dc Jun 3, 2026
51 checks passed
@sxlijin
sxlijin deleted the push-qyksnqurnxoq branch June 3, 2026 08:34

This branch was previously deployed

3 inactive deployments
Preview – promptfiddle — ec302fb6 Deployed Jun 3, 2026 by vercel[bot]
Preview – promptfiddle2 — ec302fb6 Deployed Jun 3, 2026 by vercel[bot]
Preview – beps — ec302fb6 Deployed Jun 3, 2026 by vercel[bot]
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