Skip to content

feat(cli): add syntax highlighting to diagnostics - #4159

Merged
codeshaunted merged 12 commits into
canaryfrom
avery/syntax-highlight-diagnostics
Jul 24, 2026
Merged

feat(cli): add syntax highlighting to diagnostics#4159
codeshaunted merged 12 commits into
canaryfrom
avery/syntax-highlight-diagnostics

Conversation

@codeshaunted

@codeshaunted codeshaunted commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace Ariadne human diagnostics with Miette
  • reuse the baml describe semantic highlighter for diagnostic source snippets
  • preserve agent and concise output, full-line span alignment, and UTF-8/CRLF locations
  • render primary diagnostic spans in red

Testing

  • cargo test -p baml_compiler_diagnostics
  • cargo test -p baml_tests --lib
  • cargo clippy -p baml_compiler_diagnostics -p baml_cli --all-targets -- -D warnings
  • cargo fmt --all --check

Summary by CodeRabbit

  • New Features

    • Human-mode CLI diagnostics now render via a Miette-based pipeline with richer code/span highlighting, accurate UTF-8/CRLF positioning, and inline message substring highlighting.
    • Semantic-token terminal styling now follows the same diagnostics highlight palette.
    • LSP diagnostics now use improved primary-label wording.
  • Bug Fixes

    • Project/pack/check error output is rendered consistently as full highlighted diagnostic blocks.
    • Cached diagnostics now preserve message-level highlight ranges for correct rehydration.
  • Chores / Tests

    • Switched CLI “Human” default formatting away from the previous renderer and normalized many user-facing messages (lowercase/backticks).
    • Updated diagnostic snapshots/fixtures and tests accordingly.

@vercel

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

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 23, 2026 20:28 Inactive
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2d6a7e0e-9f00-4949-b7ff-7a5dcd6aed53

📥 Commits

Reviewing files that changed from the base of the PR and between 1c0e299 and b1d82d1.

📒 Files selected for processing (5)
  • baml_language/crates/baml_compiler_diagnostics/src/message.rs
  • baml_language/crates/baml_tests/tests/fs.rs
  • baml_language/crates/baml_tests/tests/interfaces_associated_types.rs
  • baml_language/crates/baml_tests/tests/tagged_template_lowering.rs
  • baml_language/crates/baml_tests/tests/type_error_repro.rs
💤 Files with no reviewable changes (1)
  • baml_language/crates/baml_compiler_diagnostics/src/message.rs
🚧 Files skipped from review as they are similar to previous changes (2)
  • baml_language/crates/baml_tests/tests/tagged_template_lowering.rs
  • baml_language/crates/baml_tests/tests/interfaces_associated_types.rs

📝 Walkthrough

Walkthrough

The PR replaces Ariadne-based human diagnostics with Miette, adds structured diagnostic message highlights, applies semantic token highlights in CLI output, preserves highlight metadata in caches, updates compiler and TIR diagnostic construction, and refreshes LSP and diagnostic-rendering fixtures.

Changes

Diagnostic rendering migration

Layer / File(s) Summary
Rendering contracts and structured messages
baml_language/Cargo.toml, baml_language/crates/baml_compiler_diagnostics/src/{message,highlight,diagnostic,lib}.rs
Ariadne dependencies are replaced with Miette and owo-colors; structured diagnostic text, message highlights, and shared source-highlight types are added and exported.
Miette human renderer
baml_language/crates/baml_compiler_diagnostics/src/render.rs
Human diagnostics use Miette adapters, custom source extraction, message styling, source highlights, severity colors, and updated rendering tests.
Structured compiler and TIR diagnostics
baml_language/crates/baml_compiler_diagnostics/src/to_diagnostic.rs, baml_language/crates/baml_lsp2_actions/src/check.rs
Compiler and TIR diagnostics construct structured messages with typed identifiers, richer primary labels, and updated annotation handling.
Semantic highlight generation
baml_language/crates/baml_cli/src/paint.rs, baml_language/crates/baml_lsp2_actions/src/tokens.rs
Semantic tokens and diagnostic fragments are converted into shared highlight styles and spans with modifier attributes and palette validation.
CLI, cache, and consumer integration
baml_language/crates/baml_cli/..., baml_language/crates/baml_lsp2_actions_tests/..., baml_language/crates/bex_project/...
CLI paths select Human rendering, reuse highlighted project diagnostics, cache message highlights, update LSP messages, and refresh structured diagnostic fixtures.

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

Sequence Diagram(s)

sequenceDiagram
  participant CLI
  participant ProjectDatabase
  participant Highlighter
  participant DiagnosticRenderer
  participant Miette
  CLI->>ProjectDatabase: collect diagnostics and source files
  CLI->>Highlighter: generate HighlightSpan values
  CLI->>DiagnosticRenderer: render diagnostics with highlights
  DiagnosticRenderer->>Miette: render Human output
  Miette-->>CLI: formatted diagnostic block
Loading

Possibly related PRs

Suggested reviewers: 2kai2kai2, aaronvg

Poem

I’m a rabbit with highlights bright,
Miette guides errors through the night.
Spans glow gold and labels stay,
Ariadne hops away.
The CLI prints each path just right!

🚥 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 is concise and accurately summarizes the main change: adding syntax highlighting to CLI diagnostics.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch avery/syntax-highlight-diagnostics

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 23, 2026 20:35 Inactive
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown

Binary size checks passed

7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
baml-cli Linux 🔒 27.1 MB 11.5 MB file 27.1 MB -768 B (-0.0%) OK
packed-program Linux 🔒 17.4 MB 7.2 MB file 17.4 MB +0 B (+0.0%) OK
baml-cli macOS 🔒 21.0 MB 10.0 MB file 21.0 MB +0 B (+0.0%) OK
packed-program macOS 🔒 13.6 MB 6.3 MB file 13.6 MB +0 B (+0.0%) OK
baml-cli Windows 🔒 22.7 MB 10.3 MB file 22.7 MB -512 B (-0.0%) OK
packed-program Windows 🔒 14.5 MB 6.4 MB file 14.5 MB -1.0 KB (-0.0%) OK
bridge_wasm WASM 16.4 MB 🔒 4.5 MB gzip 4.5 MB -198 B (-0.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

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 23, 2026 20:49 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 23, 2026 21:49 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 23, 2026 21:57 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: 1

🧹 Nitpick comments (1)
baml_language/crates/baml_cli/src/diagnostics_cache.rs (1)

57-65: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Test non-empty message_highlights round trips.

The current fixtures use empty vectors, so they cannot detect omitted or reordered highlight data. Populate diagnostic, annotation, and related-info highlights and assert that the restored diagnostic preserves them.

Also applies to: 75-75

🤖 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_cli/src/diagnostics_cache.rs` around lines 57 - 65,
Update the diagnostics cache round-trip tests around the diagnostic, annotation,
and CachedRelatedInfo fixtures to use non-empty message_highlights with
distinguishable entries, then assert the deserialized diagnostic preserves each
vector’s contents and ordering.
🤖 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_cli/src/diagnostics_cache.rs`:
- Around line 57-65: Update the diagnostics cache verification flow around
rehydrate_file_blob() to invalidate legacy blobs on the first BAML_CACHE_VERIFY
run using an external cache/version marker. Add a regression fixture containing
a pre-additions Borsh blob that rehydrates an annotation into
message_highlights, and assert that verification rejects it rather than
accepting the decoded data.

---

Nitpick comments:
In `@baml_language/crates/baml_cli/src/diagnostics_cache.rs`:
- Around line 57-65: Update the diagnostics cache round-trip tests around the
diagnostic, annotation, and CachedRelatedInfo fixtures to use non-empty
message_highlights with distinguishable entries, then assert the deserialized
diagnostic preserves each vector’s contents and ordering.
🪄 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 Plus

Run ID: 1bb63e6d-446c-46dd-91ea-fd5c73324355

📥 Commits

Reviewing files that changed from the base of the PR and between 17a5b98 and 96e0fe5.

⛔ Files ignored due to path filters (89)
  • baml_language/crates/baml_tests/snapshots/broken_syntax/banned_expressions/baml_tests__broken_syntax__banned_expressions__02_parser__banned_expressions.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/banned_expressions/baml_tests__broken_syntax__banned_expressions__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/braceless_lambda/baml_tests__broken_syntax__braceless_lambda__02_parser__braceless_lambda.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/braceless_lambda/baml_tests__broken_syntax__braceless_lambda__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/error_cases/baml_tests__broken_syntax__error_cases__02_parser__syntax_errors.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/error_cases/baml_tests__broken_syntax__error_cases__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/header_in_llm_function/baml_tests__broken_syntax__header_in_llm_function__02_parser__test.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/header_in_llm_function/baml_tests__broken_syntax__header_in_llm_function__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/is_in_type_position/baml_tests__broken_syntax__is_in_type_position__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/is_in_type_position/baml_tests__broken_syntax__is_in_type_position__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/mismatched_brackets/baml_tests__broken_syntax__mismatched_brackets__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/mismatched_brackets/baml_tests__broken_syntax__mismatched_brackets__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/namespaces_same_name/baml_tests__broken_syntax__namespaces_same_name__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/namespaces_same_name/baml_tests__broken_syntax__namespaces_same_name__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/optional_parameter_defaults/baml_tests__broken_syntax__optional_parameter_defaults__02_parser__callback_param_defaults.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/optional_parameter_defaults/baml_tests__broken_syntax__optional_parameter_defaults__02_parser__function_type_defaults.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/optional_parameter_defaults/baml_tests__broken_syntax__optional_parameter_defaults__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__02_parser__invalid_syntax.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__02_parser__missing_braces.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__02_parser__partial_input.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__02_parser__unclosed_string.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_speculative/baml_tests__broken_syntax__parser_speculative__02_parser__ambiguous_function.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_speculative/baml_tests__broken_syntax__parser_speculative__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_strings/baml_tests__broken_syntax__parser_strings__02_parser__nested_quotes.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_strings/baml_tests__broken_syntax__parser_strings__02_parser__unicode_strings.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_strings/baml_tests__broken_syntax__parser_strings__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/patterns_array_rest_parser_recovery/baml_tests__broken_syntax__patterns_array_rest_parser_recovery__02_parser__patterns_array_rest_parser_recovery.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/patterns_array_rest_parser_recovery/baml_tests__broken_syntax__patterns_array_rest_parser_recovery__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/pending_greaters_fix/baml_tests__broken_syntax__pending_greaters_fix__02_parser__extra_greater.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/pending_greaters_fix/baml_tests__broken_syntax__pending_greaters_fix__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/postfix_non_null_assertion/baml_tests__broken_syntax__postfix_non_null_assertion__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/postfix_non_null_assertion/baml_tests__broken_syntax__postfix_non_null_assertion__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/stream_annotations/baml_tests__broken_syntax__stream_annotations__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/stream_annotations/baml_tests__broken_syntax__stream_annotations__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/test_invalid_contexts/baml_tests__broken_syntax__test_invalid_contexts__02_parser__main.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/test_invalid_contexts/baml_tests__broken_syntax__test_invalid_contexts__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/type_annotation_errors/baml_tests__broken_syntax__type_annotation_errors__02_parser__type_malformed.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/type_annotation_errors/baml_tests__broken_syntax__type_annotation_errors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/catch_throw/baml_tests__compiles__catch_throw__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/anyfunction/baml_tests__diagnostic_errors__anyfunction__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/assignment_expr_position/baml_tests__diagnostic_errors__assignment_expr_position__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/attr_disambiguation/baml_tests__diagnostic_errors__attr_disambiguation__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/backtick_interp_type_errors/baml_tests__diagnostic_errors__backtick_interp_type_errors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/backtick_strict_types/baml_tests__diagnostic_errors__backtick_strict_types__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/basic_types/baml_tests__diagnostic_errors__basic_types__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/builtin_io/baml_tests__diagnostic_errors__builtin_io__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/captured_field_chain/baml_tests__diagnostic_errors__captured_field_chain__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/catch_arm_braceless_return/baml_tests__diagnostic_errors__catch_arm_braceless_return__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/catch_return_type_mismatch/baml_tests__diagnostic_errors__catch_return_type_mismatch__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/catch_throw_regressions/baml_tests__diagnostic_errors__catch_throw_regressions__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/closure_errors/baml_tests__diagnostic_errors__closure_errors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/control_flow/baml_tests__diagnostic_errors__control_flow__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/function_type_missing_throws/baml_tests__diagnostic_errors__function_type_missing_throws__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/function_type_throws/baml_tests__diagnostic_errors__function_type_throws__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/function_types/baml_tests__diagnostic_errors__function_types__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/generic_call_ambiguity/baml_tests__diagnostic_errors__generic_call_ambiguity__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/generic_class_destructure_no_type_args/baml_tests__diagnostic_errors__generic_class_destructure_no_type_args__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/generic_error_arg_no_cascade/baml_tests__diagnostic_errors__generic_error_arg_no_cascade__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/generics/baml_tests__diagnostic_errors__generics__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/headers_edge_cases/baml_tests__diagnostic_errors__headers_edge_cases__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/invalid_numeric_literals/baml_tests__diagnostic_errors__invalid_numeric_literals__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/is_pattern_negative/baml_tests__diagnostic_errors__is_pattern_negative__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/json_alias/baml_tests__diagnostic_errors__json_alias__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/json_static_method_arity/baml_tests__diagnostic_errors__json_static_method_arity__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/lambda_errors/baml_tests__diagnostic_errors__lambda_errors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/lexical_scoping_errors/baml_tests__diagnostic_errors__lexical_scoping_errors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/match_exhaustiveness/baml_tests__diagnostic_errors__match_exhaustiveness__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/namespaces_bare_name_rejected/baml_tests__diagnostic_errors__namespaces_bare_name_rejected__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/namespaces_stream_direct_ref/baml_tests__diagnostic_errors__namespaces_stream_direct_ref__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/null_handling/baml_tests__diagnostic_errors__null_handling__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/numeric_invariance/baml_tests__diagnostic_errors__numeric_invariance__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/optional_parameter_defaults/baml_tests__diagnostic_errors__optional_parameter_defaults__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_array_rest_binding/baml_tests__diagnostic_errors__patterns_array_rest_binding__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_class_destructure/baml_tests__diagnostic_errors__patterns_class_destructure__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_class_destructure_namespaces/baml_tests__diagnostic_errors__patterns_class_destructure_namespaces__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_new/baml_tests__diagnostic_errors__patterns_new__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/runtime_id_misuse/baml_tests__diagnostic_errors__runtime_id_misuse__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/self_in_body/baml_tests__diagnostic_errors__self_in_body__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/simple_function/baml_tests__diagnostic_errors__simple_function__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/simple_type_error/baml_tests__diagnostic_errors__simple_type_error__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/test_expr_name_type_error/baml_tests__diagnostic_errors__test_expr_name_type_error__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/test_expr_wrong_runner/baml_tests__diagnostic_errors__test_expr_wrong_runner__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/test_with_runner_ambiguity/baml_tests__diagnostic_errors__test_with_runner_ambiguity__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/type_aliases/baml_tests__diagnostic_errors__type_aliases__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/type_reflection_strict/baml_tests__diagnostic_errors__type_reflection_strict__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/unknown_type_error/baml_tests__diagnostic_errors__unknown_type_error__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/void_return_type/baml_tests__diagnostic_errors__void_return_type__05_diagnostics.snap is excluded by !**/*.snap
📒 Files selected for processing (11)
  • baml_language/crates/baml_cli/src/diagnostics_cache.rs
  • baml_language/crates/baml_compiler_diagnostics/src/diagnostic.rs
  • baml_language/crates/baml_compiler_diagnostics/src/lib.rs
  • baml_language/crates/baml_compiler_diagnostics/src/message.rs
  • baml_language/crates/baml_compiler_diagnostics/src/render.rs
  • baml_language/crates/baml_compiler_diagnostics/src/to_diagnostic.rs
  • baml_language/crates/baml_lsp2_actions/src/check.rs
  • baml_language/crates/baml_tests/src/compiler2_tir/inference.rs
  • baml_language/crates/baml_tests/src/compiler2_tir/phase3a.rs
  • baml_language/crates/bex_cache/src/lib.rs
  • baml_language/crates/bex_project/src/bex_lsp/multi_project/diagnostics.rs
🚧 Files skipped from review as they are similar to previous changes (2)
  • baml_language/crates/baml_compiler_diagnostics/src/lib.rs
  • baml_language/crates/baml_compiler_diagnostics/src/render.rs

Comment thread baml_language/crates/baml_cli/src/diagnostics_cache.rs
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 23, 2026 22:10 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 23, 2026 22:45 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 23, 2026 22:53 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 23, 2026 23:12 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 23, 2026 23:42 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 23, 2026 23:49 Inactive
…ght-diagnostics

# Conflicts:
#	baml_language/crates/baml_tests/snapshots/diagnostic_errors/lambda_errors/baml_tests__diagnostic_errors__lambda_errors__05_diagnostics.snap
@vercel
vercel Bot temporarily deployed to Preview – beps July 23, 2026 23:56 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: 7

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_compiler_parser/src/parser.rs (1)

6082-6087: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove redundant quotes around punctuation in the diagnostic.

Because punct already contains '.' or '$', the rendered message becomes field name after \'.'`instead offield name after `.``.

Suggested fix
-                    let punct = if op == TokenKind::Dollar {
-                        "'$'"
-                    } else {
-                        "'.'"
-                    };
+                    let punct = if op == TokenKind::Dollar { "$" } else { "." };
🤖 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_compiler_parser/src/parser.rs` around lines 6082 -
6087, Update the diagnostic construction in the unexpected-token handling block
to keep punct as the raw punctuation character and retain the existing backtick
formatting, so the message renders field name after `.` or field name after `$`
without redundant inner quotes.
🧹 Nitpick comments (1)
baml_language/crates/baml_compiler_diagnostics/src/to_diagnostic.rs (1)

626-632: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Assert the complete parse diagnostic label.

The test only checks "expected", so it would pass if the found fragment disappeared. Assert both expected and found values to cover the structured-label migration.

🤖 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_compiler_diagnostics/src/to_diagnostic.rs` around
lines 626 - 632, Strengthen the diagnostic assertion in the relevant test by
checking the complete annotation label, including both the expected and found
token fragments. Replace the partial contains("expected") check with an
assertion that verifies the exact structured label produced by the parser
diagnostic.
🤖 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_compiler_parser/src/parser.rs`:
- Around line 3938-3940: Update the unmatched-greater diagnostic at both
declaration parameter-list and expression generic-argument branches to use
context-specific wording instead of “type expression.” Ensure the first message
identifies unmatched closers in declaration parameters and the second identifies
unmatched closers in expression generic arguments, while preserving the
pending_greaters count.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/complex_headers_test.baml`:
- Around line 69-76: Update the expected diagnostic for the mismatched-types
error so its location points to line 44, where final_result appears, and its
rendered source excerpt also shows the line 44 source text. Keep the error
message and surrounding diagnostic formatting unchanged.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/hover/catch_rethrow_caller.baml`:
- Around line 29-35: Update the E0063 expectation for the unreachable arm in
catch_rethrow_caller.baml so its reported location and underline cover the same
source bytes; align the span to the `{ throw e }` region at column 26 or
restrict it to `throw e` beginning at column 28, preserving the diagnostic’s
intended location.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/compound_ops.baml`:
- Around line 38-65: Add the missing E0004 expected diagnostic in the compound
assignment test for the fifth invalid case, `g += "add"` at line 31, covering
the float-plus-string operator mismatch. Preserve the existing expectations for
the four earlier invalid assignments and match the established diagnostic
formatting.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/for.baml`:
- Around line 63-77: Restore the omitted diagnostics in both golden snapshots:
in baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/for.baml
lines 63-77, append the E0001 type-mismatch diagnostic for b = x at source line
31; in
baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/type_aliases_jinja.baml
lines 67-94, append the structured diagnostic for the I -> J type-alias
dependency cycle. Preserve all existing diagnostics and update only the expected
rendering.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_basic_syntax.baml`:
- Around line 30-36: The E0097 diagnostic for the extraneous throws declaration
in the basic throw syntax test currently spans the entire union. Update the
diagnostic range calculation to target only the invalid int member in the throws
union, while leaving the valid string member unhighlighted before rendering.

In
`@baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_exact_match.baml`:
- Around line 19-32: Align the expected diagnostics for ThrowsEnumExact with the
test’s exact enum throws-match contract: remove or restore the E0096 and E0097
expectation blocks so the fixture remains silent when no diagnostic is intended;
only retain updated commentary if those errors are intentionally expected.

---

Outside diff comments:
In `@baml_language/crates/baml_compiler_parser/src/parser.rs`:
- Around line 6082-6087: Update the diagnostic construction in the
unexpected-token handling block to keep punct as the raw punctuation character
and retain the existing backtick formatting, so the message renders field name
after `.` or field name after `$` without redundant inner quotes.

---

Nitpick comments:
In `@baml_language/crates/baml_compiler_diagnostics/src/to_diagnostic.rs`:
- Around line 626-632: Strengthen the diagnostic assertion in the relevant test
by checking the complete annotation label, including both the expected and found
token fragments. Replace the partial contains("expected") check with an
assertion that verifies the exact structured label produced by the parser
diagnostic.
🪄 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 Plus

Run ID: a4a046e9-e15f-4729-8285-789e8b41da4b

📥 Commits

Reviewing files that changed from the base of the PR and between 4cae2ac and 13ca6b2.

⛔ Files ignored due to path filters (26)
  • baml_language/crates/baml_cli/src/snapshots/baml_cli__describe_command_tests__render_keyword_ts_instanceof.snap is excluded by !**/*.snap
  • baml_language/crates/baml_cli/src/snapshots/baml_cli__describe_command_tests__render_keyword_ts_new.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/header_in_llm_function/baml_tests__broken_syntax__header_in_llm_function__02_parser__test.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/header_in_llm_function/baml_tests__broken_syntax__header_in_llm_function__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__02_parser__partial_input.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/parser_error_recovery/baml_tests__broken_syntax__parser_error_recovery__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/pending_greaters_fix/baml_tests__broken_syntax__pending_greaters_fix__02_parser__extra_greater.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/pending_greaters_fix/baml_tests__broken_syntax__pending_greaters_fix__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/broken_syntax/stream_annotations/baml_tests__broken_syntax__stream_annotations__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/namespaces_shadow/baml_tests__compiles__namespaces_shadow__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/attribute_validation/baml_tests__diagnostic_errors__attribute_validation__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/basic_types/baml_tests__diagnostic_errors__basic_types__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_attribute/baml_tests__diagnostic_errors__duplicate_attribute__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_class_span/baml_tests__diagnostic_errors__duplicate_class_span__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_field_alias/baml_tests__diagnostic_errors__duplicate_field_alias__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_field_no_cascade/baml_tests__diagnostic_errors__duplicate_field_no_cascade__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_method_no_cascade/baml_tests__diagnostic_errors__duplicate_method_no_cascade__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_parameter_no_cascade/baml_tests__diagnostic_errors__duplicate_parameter_no_cascade__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/duplicate_variant_alias/baml_tests__diagnostic_errors__duplicate_variant_alias__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/field_method_conflict_no_cascade/baml_tests__diagnostic_errors__field_method_conflict_no_cascade__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/namespaces_conflict/baml_tests__diagnostic_errors__namespaces_conflict__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/parser_constructors/baml_tests__diagnostic_errors__parser_constructors__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_class_destructure/baml_tests__diagnostic_errors__patterns_class_destructure__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/patterns_new/baml_tests__diagnostic_errors__patterns_new__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/stream_types/baml_tests__diagnostic_errors__stream_types__05_diagnostics.snap is excluded by !**/*.snap
📒 Files selected for processing (203)
  • baml_language/crates/baml_cli/src/agent_command.rs
  • baml_language/crates/baml_cli/src/describe_command.rs
  • baml_language/crates/baml_cli/src/describe_command_tests.rs
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_cli/src/grep_command.rs
  • baml_language/crates/baml_cli/src/init_command.rs
  • baml_language/crates/baml_cli/src/pack_command.rs
  • baml_language/crates/baml_cli/src/pack_elf.rs
  • baml_language/crates/baml_cli/src/playground_command.rs
  • baml_language/crates/baml_cli/src/project_load.rs
  • baml_language/crates/baml_cli/src/run_command.rs
  • baml_language/crates/baml_cli/src/test_command.rs
  • baml_language/crates/baml_compiler2_ast/src/lowering_diagnostic.rs
  • baml_language/crates/baml_compiler2_hir/src/diagnostic.rs
  • baml_language/crates/baml_compiler2_hir/src/namespace.rs
  • baml_language/crates/baml_compiler2_hir/src/package.rs
  • baml_language/crates/baml_compiler_diagnostics/src/to_diagnostic.rs
  • baml_language/crates/baml_compiler_parser/src/parser.rs
  • baml_language/crates/baml_exec/src/auto_cli.rs
  • baml_language/crates/baml_exec/src/diag_print.rs
  • baml_language/crates/baml_exec/src/dispatch.rs
  • baml_language/crates/baml_exec/src/json_coerce.rs
  • baml_language/crates/baml_lsp2_actions/src/check.rs
  • baml_language/crates/baml_lsp2_actions_tests/src/parser.rs
  • baml_language/crates/baml_lsp2_actions_tests/test_files/completion/baml_namespace.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/completion/block_attribute.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/completion/field_attribute.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/completion/type_position.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/inlay_hints/for_loops.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/on_hover/unknown_variable.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/block_attributes.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/class.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/const_binding.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/const_let_else_defer.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/generators.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/if_let_chain.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/map_literal_keys.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/throws_clause.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/semantic_tokens/type_aliases_jinja.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_all_exhaustive.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_bare_type_sugar.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_binding_narrowing.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_on_non_call.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_throw_set_reachability.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/catch_wildcard_only.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/chained_catch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/exhaustiveness_checks.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/invalid_arm_syntax.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/missing_binding_pattern.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/catch/nested_catch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/attributes.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/extra_greater_in_generic.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/generator_keywords1.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/incomplete_class.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/invalid_attrs_on_type_alias.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/invalid_keyword_in_type_def.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/invalid_type_aliases.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/map_enums_and_literals.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/map_types.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/map_types2.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/misspeled_boolean_literals.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/partial_class.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/secure_types.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/spelling_error.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/type_aliases_jinja.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/unknown_type.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/class/unsupported_literal_types.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/client/remap_role_invalid_type.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/client/remap_role_non_string_allowed_roles.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/client/remap_role_non_string_values.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/enum/duplicate_value.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/enum/enum_unquoted_description.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/enum/invalid_value_expr.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/const_binding.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/const_reserved_binding_names.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/constructors_invalid.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/early_return_narrowing.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/expr_full.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/extra_dot.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/fn_arg_type_error.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/instanceof_narrowing.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/let_annotations.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/missing_return_value.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/missing_semicolons.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/unknown_field_access.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/unknown_name.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/unresolved_builtin_namespace.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/expr/var_keyword_let_await.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/duplicate_names.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/invalid.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/invalid2.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/invalid_no_return.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/match.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/prompt_errors/prompt1.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/shorthand_clients.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/ai_content_pipeline.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/basic_if.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/complex_headers_test.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/duplicate_function_calls.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/header_in_llm_function.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/if_then_else.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/if_then_only_header.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/invalid.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/headers/nested_if_statements.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/hover/catch_rethrow.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/hover/catch_rethrow_caller.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/hover/function_throws.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_binding_scope.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_chained.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_destructure.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_irrefutable_warns.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_no_else_in_value_position.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_or_pattern.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/if_let/if_let_throws.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/duplicate_implements.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_ambiguous_interface_field_access.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_ambiguous_method_call.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_as_downcast_interface_to_child.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_concrete_field_through_interface_type.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_default_method_non_exhaustive.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_default_on_required_method.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_default_outside_implements.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_duplicate_interface_field_link.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_field_declared_in_implements_block.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_field_rule_invariant_union.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_generic_bound_alias_not_supported.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_generic_bound_violation.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_generic_requires_cycle_changes_args.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_invariant_generic_assignment.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_match_without_wildcard.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_missing_field_in_implements_block.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_missing_required_interface.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_multi_self_call_on_interface_receiver.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_old_qualified_projection.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_out_of_body_field_interface.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_qualified_call_non_implementor.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_qualified_call_unknown_interface.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_self_outside_type.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_unknown_class_field_link.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/error_unknown_interface_field_link.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/extends_cycle.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/field_type_mismatch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/method_signature_mismatch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/missing_required_method.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/unknown_interface.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/interface/unknown_interface_member.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/arrays.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/class_arrays.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/classes.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/compound_ops.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/maps.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/nested_arrays.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/nominal_typing.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/optionals.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/invalid_assignment/primitives.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/iterator/stdlib_iterator_errors.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_destructure.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_diverges_loop.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_else_no_bindings.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_irrefutable_warns.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_must_diverge.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_no_else_if.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_or_pattern.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_throws.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/let_else/let_else_wildcard_irrefutable.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/break.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/c_for.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/const_for_loops.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/continue.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/for.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/header_requires_let_negative.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/loops/header_requires_let_positive.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/maps/inconsistent_style.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/maps/key_and_value_typecheck.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/match/match_non_exhaustive.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/match/match_unreachable_arms.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/match/match_with_guards.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/misc/bad_syntax.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/misc/dynamic_types_parser_errors.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/misc/dynamic_types_validation_errors.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/misc/return.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/parens.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/streaming/streaming_ok.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/strings/unquoted_strings.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/template_string/bad_calls.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throw_basic.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throw_expression.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throw_in_catch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throw_with_catch.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_basic_syntax.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_caller_sees_contract.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_caller_variant_contract.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_contract_violation.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_exact_match.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_extraneous.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_variant_precise.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_variant_violation.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_mixed.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_never_unreachable_rethrow.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_never_violation.baml
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_type_alias_repro.baml
  • baml_language/crates/baml_release/src/lib.rs
  • baml_language/crates/baml_release/src/skills.rs
🚧 Files skipped from review as they are similar to previous changes (4)
  • baml_language/crates/baml_cli/src/test_command.rs
  • baml_language/crates/baml_lsp2_actions/src/check.rs
  • baml_language/crates/baml_cli/src/pack_command.rs
  • baml_language/crates/baml_cli/src/generate.rs

Comment thread baml_language/crates/baml_compiler_parser/src/parser.rs Outdated
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 00:03 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 24, 2026 00:21 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 01:12 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 01:19 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 24, 2026 01:39 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 01:48 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 01:55 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 24, 2026 02:09 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.

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_cli/src/describe_command_tests.rs (1)

1066-1075: 📐 Maintainability & Code Quality | 🟠 Major | ⚖️ Poor tradeoff

Run cargo test --lib in a proper build environment.

The repository build cannot run here (aws-lc-sys/ring fail to compile from missing standard C headers), so this manual step must be completed elsewhere before merge.

🤖 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_cli/src/describe_command_tests.rs` around lines
1066 - 1075, Run cargo test --lib in a properly configured build environment and
resolve any failures before merging, including validating the
render_keyword_test and render_keyword_testset snapshot tests.

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.

Outside diff comments:
In `@baml_language/crates/baml_cli/src/describe_command_tests.rs`:
- Around line 1066-1075: Run cargo test --lib in a properly configured build
environment and resolve any failures before merging, including validating the
render_keyword_test and render_keyword_testset snapshot tests.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1dabd5fb-2dcb-4df9-9944-45f2a2c934da

📥 Commits

Reviewing files that changed from the base of the PR and between 13ca6b2 and b51a52d.

⛔ Files ignored due to path filters (2)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/lambda_errors/baml_tests__diagnostic_errors__lambda_errors__05_diagnostics.snap is excluded by !**/*.snap
📒 Files selected for processing (5)
  • baml_language/crates/baml_cli/src/describe_command_tests.rs
  • baml_language/crates/baml_cli/src/test_command.rs
  • baml_language/crates/baml_compiler_parser/src/parser.rs
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_exact_match.baml
  • baml_language/crates/bex_cache/src/lib.rs
🚧 Files skipped from review as they are similar to previous changes (4)
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/throw/throws_enum_exact_match.baml
  • baml_language/crates/baml_cli/src/test_command.rs
  • baml_language/crates/bex_cache/src/lib.rs
  • baml_language/crates/baml_compiler_parser/src/parser.rs

@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 02:29 Inactive
…ght-diagnostics

# Conflicts:
#	baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/match.baml
#	baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__05_diagnostics.snap
#	baml_language/crates/baml_tests/snapshots/diagnostic_errors/match_exhaustiveness/baml_tests__diagnostic_errors__match_exhaustiveness__05_diagnostics.snap
@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 02:34 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 02:41 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: 1

🤖 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/.ci/size-gate/aarch64-apple-darwin.toml`:
- Around line 5-9: Regenerate the macOS size snapshot for the artifacts.baml-cli
entry using the same artifact and local build measurement path, then update
file_bytes, stripped_bytes, and gzip_bytes with the resulting self-consistent
values.
🪄 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 Plus

Run ID: 769bdd0f-0e5a-4f53-8a50-8418522f5b65

📥 Commits

Reviewing files that changed from the base of the PR and between b51a52d and 1c0e299.

⛔ Files ignored due to path filters (3)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/format_checks/baml_tests__diagnostic_errors__format_checks__05_diagnostics.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/diagnostic_errors/match_exhaustiveness/baml_tests__diagnostic_errors__match_exhaustiveness__05_diagnostics.snap is excluded by !**/*.snap
📒 Files selected for processing (20)
  • baml_language/.cargo/size-gate.toml
  • baml_language/.ci/size-gate/aarch64-apple-darwin.toml
  • baml_language/.ci/size-gate/wasm32-unknown-unknown.toml
  • baml_language/.ci/size-gate/x86_64-pc-windows-msvc.toml
  • baml_language/.ci/size-gate/x86_64-unknown-linux-gnu.toml
  • baml_language/crates/baml_cli/tests/agent_install_e2e.rs
  • baml_language/crates/baml_cli/tests/exit_code_e2e.rs
  • baml_language/crates/baml_cli/tests/skill_warning_e2e.rs
  • baml_language/crates/baml_compiler_diagnostics/src/render.rs
  • baml_language/crates/baml_lsp2_actions_tests/test_files/syntax/functions_v2/match.baml
  • baml_language/crates/baml_project/src/testing.rs
  • baml_language/crates/baml_tests/tests/comparable_sort.rs
  • baml_language/crates/baml_tests/tests/from_json_interface.rs
  • baml_language/crates/baml_tests/tests/interfaces.rs
  • baml_language/crates/baml_tests/tests/interfaces_associated_types.rs
  • baml_language/crates/baml_tests/tests/interfaces_class_generics.rs
  • baml_language/crates/baml_tests/tests/tagged_template_lowering.rs
  • baml_language/crates/baml_tests/tests/to_json_interface.rs
  • baml_language/crates/baml_tests/tests/to_string_interface.rs
  • baml_language/crates/baml_tests/tests/tostring_sugar.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • baml_language/crates/baml_compiler_diagnostics/src/render.rs

Comment thread baml_language/.ci/size-gate/aarch64-apple-darwin.toml
@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 02:50 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 02:57 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 24, 2026 03:02 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 24, 2026 03:10 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 24, 2026 03:23 Inactive
@codeshaunted
codeshaunted added this pull request to the merge queue Jul 24, 2026
Merged via the queue into canary with commit dd8918d Jul 24, 2026
70 checks passed
@codeshaunted
codeshaunted deleted the avery/syntax-highlight-diagnostics branch July 24, 2026 03:33
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