Skip to content

More stdlib matrix fixes - #4361

Merged
2kai2kai2 merged 4 commits into
canaryfrom
kai/stdlib-similarity-matrix
Aug 11, 2026
Merged

2kai2kai2 merged 4 commits into
canaryfrom
kai/stdlib-similarity-matrix

Conversation

@2kai2kai2

@2kai2kai2 2kai2kai2 commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor
  • Various hardening passes
  • Use an openai key since the anthropic one is dead
  • Don't break on old client/retry policy syntax
  • Identify impls as owners for interface methods instead of classes

Summary by CodeRabbit

  • New Features

    • Added report format versioning with clear handling for unsupported versions.
    • Improved symbol search with whole-word matching, Unicode and camelCase support, filtering, and deterministic results.
    • Added safer navigation for malformed report links and fragments.
  • Bug Fixes

    • Prevented duplicate or incorrectly promoted TypeScript declarations in generated reports.
    • Improved validation and recovery when loading skills and processing matrix findings.
    • Updated matrix analysis to use OpenAI with retry support.
  • Documentation

    • Updated setup and usage guidance for OpenAI API key configuration.

@vercel

vercel Bot commented Aug 11, 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 Aug 11, 2026 10:37pm
promptfiddle2 Ready Ready Preview Aug 11, 2026 10:37pm

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.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The changes revise symbol identity, CLI search, stdlib-matrix alignment and extraction, workflow credentials, and report loading. They add impl-qualified symbol resolution, stronger finding validation, safer extraction, deterministic search, and report format and URL guards.

Changes

Symbol identity

Layer / File(s) Summary
Owner model and parsing
baml_language/crates/baml_surface/src/ids.rs
SymbolId now uses structured path and impl owners with parsing, formatting, validation, and resolution.
ID generation and export
baml_language/crates/baml_surface/src/export.rs
Impl methods use canonical owner identities without declaration-order suffixes.
Impl identity regression coverage
baml_language/crates/baml_surface/src/ids_tests.rs, baml_language/crates/baml_surface/src/export_tests.rs
Tests cover impl instantiations, parsing, resolution, and conflicting exported IDs.

CLI search

Layer / File(s) Summary
Search options and tokenization
baml_language/crates/baml_cli/src/describe_command.rs, baml_language/crates/baml_cli/src/describe_search.rs
Search documents whole-word matching and validates positive u16 limits. Tokenization uses Unicode folding, stop-word removal, and short-token filtering.
Candidate filtering and ordering
baml_language/crates/baml_cli/src/describe_search.rs
Search resolves root-package paths, excludes inherited defaults, scores candidates, and removes duplicate results. Tests cover the revised matching rules.

Stdlib matrix alignment

Layer / File(s) Summary
Alignment client and session validation
tools/stdlib-matrix/baml_src/align.baml, tools/stdlib-matrix/baml_src/report.baml, tools/stdlib-matrix/baml_src/render.baml, tools/stdlib-matrix/baml_src/references.baml
The pipeline uses OpenAI with retries, validates findings against BAML names, salvages usable results, and handles impl entry paths.
Revision keys and judgement carrying
tools/stdlib-matrix/baml_src/revision.baml
Comparison keys use a shared separator. Judgement carrying checks absence claims and recursively referenced symbols.
Surface extraction and skill loading
tools/stdlib-matrix/baml_src/symbols.baml, tools/stdlib-matrix/baml_src/ts_symbols.baml, tools/stdlib-matrix/extractors/ts-surface.mjs, tools/stdlib-matrix/baml_src/toolbox.baml, tools/stdlib-matrix/baml_src/models.baml
Surface extraction preserves nested scopes and avoids duplicate containers. Skill responses are validated before caching.
Workflow and provider integration
.github/workflows/stdlib-matrix.yml, tools/stdlib-matrix/run, tools/stdlib-matrix/README.md, tools/stdlib-matrix/baml_src/entry.baml, tools/stdlib-matrix/baml_src/ratchet.baml
The workflow uses OPENAI_API_KEY, tracks extraction state, separates previous-report and skip-extraction arguments, and removes obsolete entry behavior.
Alignment and extraction tests
tools/stdlib-matrix/baml_src/tests.baml
Tests cover finding validation, revision invalidation, separator safety, skill filtering, prompt rendering, and report consistency.

Report loading validation

Layer / File(s) Summary
Report source and navigation guards
typescript2/app-stdlib-matrix/src/components/matrix-app.ts
The app validates report format versions and same-origin URLs. Malformed hash fragments no longer throw during navigation.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Poem

A rabbit checks each symbol path,
Impl owners avoid the hash.
OpenAI guides the matrix run,
Safe report links face the sun.
Search finds names with careful math.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title identifies the stdlib matrix area but uses the vague phrase "More ... fixes" and does not state the main changes. Replace it with a specific summary, such as switching the matrix workflow to OpenAI and fixing implementation-owned symbol IDs.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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 kai/stdlib-similarity-matrix

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 August 11, 2026 21:34 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)
tools/stdlib-matrix/baml_src/toolbox.baml (1)

364-369: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Validate the cached skill before returning it.

The fallback returns cached content without calling looks_like_skill. A cache written by an older version, or otherwise corrupted, can still be HTML or unrelated text. The pipeline then sends that content to every alignment session.

Read the cache, validate it, and throw the existing missing-skill error when it is invalid. Add a test for an invalid cached body.

🤖 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 `@tools/stdlib-matrix/baml_src/toolbox.baml` around lines 364 - 369, Update the
cached fallback in the skill-loading flow to read the cache, pass its contents
through looks_like_skill, and return it only when validation succeeds; otherwise
throw the existing missing-skill error. Add a test covering an invalid cached
body and confirming the error path.
🧹 Nitpick comments (4)
baml_language/crates/baml_surface/src/ids.rs (2)

317-330: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Consider rejecting non-method kinds in the impl-owned form.

The match accepts T:(int as baml.ops.Add<bigint>) and V:(int as baml.ops.Add<bigint>) as valid ids with member: None. No producer emits that form: of_symbol returns None for Symbol::Impl, and export_impl uses the X:{pkg}.impl[...] form instead. resolve also returns None for an impl owner without a member. The parser therefore accepts ids that can never be generated and never resolve.

Restrict the impl-owned form to IdKind::Method so parsing and generation agree.

♻️ Proposed tightening
-        let member = match (kind, tail) {
-            (IdKind::Method, _) if !tail.is_empty() => {
-                let name = tail.strip_prefix('.').ok_or_else(invalid)?;
-                if name.is_empty() || name.contains('.') {
-                    return Err(invalid());
-                }
-                Some(name.to_string())
-            }
-            (_, "") => None,
-            _ => return Err(invalid()),
-        };
-        if kind.is_member() && member.is_none() {
-            return Err(invalid());
-        }
+        // An impl block owns methods and nothing else: no fields, no
+        // variants, no associated types, and no item-kind id of its own —
+        // the export layer writes blocks in the `X:` form.
+        if kind != IdKind::Method {
+            return Err(invalid());
+        }
+        let name = tail.strip_prefix('.').ok_or_else(invalid)?;
+        if name.is_empty() || name.contains('.') {
+            return Err(invalid());
+        }
+        let member = Some(name.to_string());
🤖 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_surface/src/ids.rs` around lines 317 - 330, Update
the match constructing member in the ID parser to reject impl-owned forms for
non-method IdKind values, allowing only IdKind::Method with a valid member name
while preserving the existing no-member handling for other owner forms. Ensure
parsed IDs remain consistent with of_symbol, export_impl, and resolve behavior.

475-477: 🚀 Performance & Scalability | 🔵 Trivial

Impl resolution renders every project impl per lookup.

The scan calls impl_owner for each project impl and compares rendered strings. Each call runs impl_data and canonical type rendering. A caller that resolves many ids in a loop pays O(ids × impls) rendering work. If impl-owned resolution becomes a hot path, add a salsa-tracked map from rendered Owner::Impl to Impl and look up by key.

🤖 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_surface/src/ids.rs` around lines 475 - 477,
Optimize impl resolution in the lookup containing Self::impl_owner by adding a
Salsa-tracked map from rendered Owner::Impl keys to their Impl handles, then
resolve self.owner through that map instead of scanning project_impls and
rendering every owner per lookup. Preserve the existing unresolved-result
behavior when no matching key exists.
baml_language/crates/baml_surface/src/ids_tests.rs (1)

101-123: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add negative parse cases for the impl-owned form.

The two cases cover successful parsing only. parse_impl_owned adds several rejection paths that no test exercises: an unbalanced (, a missing as, an empty for-type or interface, a member containing ., and a member kind other than Method. Add a table-driven test so a future change to matching_paren or split_as cannot silently widen the accepted set.

🧪 Proposed test
/// The rejection paths, so a looser parser cannot pass unnoticed.
#[test]
fn malformed_impl_owned_ids_are_rejected() {
    for id in [
        "M:(int as baml.ops.Add<bigint>",   // unbalanced
        "M:(int baml.ops.Add<bigint>).add", // no ` as `
        "M:( as baml.ops.Add<bigint>).add", // empty for-type
        "M:(int as ).add",                  // empty interface
        "M:(int as baml.ops.Add<bigint>).a.b", // dotted member
        "M:(int as baml.ops.Add<bigint>)",  // member kind, no member
        "F:(int as baml.ops.Add<bigint>).x", // a block owns no fields
    ] {
        assert!(
            SymbolId::from_str(id).is_err(),
            "{id} must not parse"
        );
    }
}
🤖 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_surface/src/ids_tests.rs` around lines 101 - 123,
Add a table-driven test alongside impl_owned_ids_parse_around_nested_projections
named malformed_impl_owned_ids_are_rejected, covering unbalanced parentheses,
missing ` as `, empty for-type or interface, dotted members, missing member, and
a non-Method kind such as `F`. Assert SymbolId::from_str returns an error for
every case.
baml_language/crates/baml_surface/src/export.rs (1)

532-534: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove or rewrite the stale doc comment on export_impl.

Lines 532-533 describe an interface rendering, not this function, and the block ends with an empty /// line. The text is a leftover from a removed helper. Replace it with a description of export_impl.

♻️ Proposed doc fix
-/// The interface an impl names, with its arguments: `baml.ops.Add<bigint>`.
-///
+/// Export one impl block, keyed by its canonical owner rendering:
+/// `X:{pkg}.impl[{interface}<args> for {for_ty}]`.
 fn export_impl(db: &dyn Db, imp: Impl<'_>) -> Option<ImplExport> {
🤖 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_surface/src/export.rs` around lines 532 - 534,
Replace the stale doc comment immediately above export_impl with documentation
describing what export_impl does, and remove the empty documentation line. Do
not retain the unrelated interface-rendering text.
🤖 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/describe_search.rs`:
- Around line 39-60: Update query handling around query_tokens so relevance
filtering does not eliminate exact-name searches for short tokens or STOP_WORDS
such as get, set, and id. Preserve the filtered tokens for scoring, but retain
the original normalized query tokens separately and use them for exact
symbol-name matching in search; add regression tests covering these exact names.
- Line 17: Update the final module documentation sentence in describe_search.rs
to clearly state that concept-based lookup requires a semantic index, which this
search does not provide.
- Around line 275-279: Update the candidate path prefix in the logic around
names.push to use the resolver’s root prefix so user-package symbols produce
resolvable paths. Add a unit test covering search for a user symbol and
verifying that the returned path resolves successfully.

In `@baml_language/crates/baml_surface/src/ids.rs`:
- Around line 346-354: Update the doc comment for `of_symbol` to remove the
stale claim that free-impl methods return `None`; document that every
impl-contributed method, including free-impl methods, receives an impl-qualified
ID via `impl_member_id`, while preserving the existing behavior description for
other symbols.
- Around line 473-486: Filter the methods used by the Owner::Impl resolution
branch before matching member_name so inherited interface default methods from
imp.all_methods(db) are excluded. Reuse the existing ownership/contributing-impl
distinction, ensuring only methods belonging directly to the matched
implementation resolve through the impl path and generation remains the inverse
of resolution.

In `@tools/stdlib-matrix/baml_src/align.baml`:
- Around line 556-588: Update finding_fault to reject pairing verdicts whose
finding.baml list is empty before the existing validation and compilation
checks. Require match or divergent findings to name at least one counterpart,
return a clear validation error, and preserve the current handling for
non-pairing findings.

In `@tools/stdlib-matrix/baml_src/revision.baml`:
- Around line 309-320: The carrying check in the judgement loop must recursively
validate every reachable BAML reference, not only each direct reference. Replace
the direct is_fresh call around judgement.baml and references.get with a
cycle-safe traversal that tracks visited IDs and sets carries false when any
reachable symbol is missing or stale; preserve successful results for
already-visited cycles.

---

Outside diff comments:
In `@tools/stdlib-matrix/baml_src/toolbox.baml`:
- Around line 364-369: Update the cached fallback in the skill-loading flow to
read the cache, pass its contents through looks_like_skill, and return it only
when validation succeeds; otherwise throw the existing missing-skill error. Add
a test covering an invalid cached body and confirming the error path.

---

Nitpick comments:
In `@baml_language/crates/baml_surface/src/export.rs`:
- Around line 532-534: Replace the stale doc comment immediately above
export_impl with documentation describing what export_impl does, and remove the
empty documentation line. Do not retain the unrelated interface-rendering text.

In `@baml_language/crates/baml_surface/src/ids_tests.rs`:
- Around line 101-123: Add a table-driven test alongside
impl_owned_ids_parse_around_nested_projections named
malformed_impl_owned_ids_are_rejected, covering unbalanced parentheses, missing
` as `, empty for-type or interface, dotted members, missing member, and a
non-Method kind such as `F`. Assert SymbolId::from_str returns an error for
every case.

In `@baml_language/crates/baml_surface/src/ids.rs`:
- Around line 317-330: Update the match constructing member in the ID parser to
reject impl-owned forms for non-method IdKind values, allowing only
IdKind::Method with a valid member name while preserving the existing no-member
handling for other owner forms. Ensure parsed IDs remain consistent with
of_symbol, export_impl, and resolve behavior.
- Around line 475-477: Optimize impl resolution in the lookup containing
Self::impl_owner by adding a Salsa-tracked map from rendered Owner::Impl keys to
their Impl handles, then resolve self.owner through that map instead of scanning
project_impls and rendering every owner per lookup. Preserve the existing
unresolved-result behavior when no matching key exists.
🪄 Autofix

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: 94d7158d-9e00-4e0f-b081-1874efa672af

📥 Commits

Reviewing files that changed from the base of the PR and between 4cac89b and bd2a0d4.

⛔ Files ignored due to path filters (1)
  • baml_language/crates/baml_cli/src/snapshots/baml_cli__help_command__tests__describe_detailed_help.snap is excluded by !**/*.snap
📒 Files selected for processing (21)
  • .github/workflows/stdlib-matrix.yml
  • baml_language/crates/baml_cli/src/describe_command.rs
  • baml_language/crates/baml_cli/src/describe_search.rs
  • baml_language/crates/baml_surface/src/export.rs
  • baml_language/crates/baml_surface/src/ids.rs
  • baml_language/crates/baml_surface/src/ids_tests.rs
  • tools/stdlib-matrix/README.md
  • tools/stdlib-matrix/baml_src/align.baml
  • tools/stdlib-matrix/baml_src/entry.baml
  • tools/stdlib-matrix/baml_src/models.baml
  • tools/stdlib-matrix/baml_src/ratchet.baml
  • tools/stdlib-matrix/baml_src/render.baml
  • tools/stdlib-matrix/baml_src/report.baml
  • tools/stdlib-matrix/baml_src/revision.baml
  • tools/stdlib-matrix/baml_src/symbols.baml
  • tools/stdlib-matrix/baml_src/tests.baml
  • tools/stdlib-matrix/baml_src/toolbox.baml
  • tools/stdlib-matrix/baml_src/ts_symbols.baml
  • tools/stdlib-matrix/extractors/ts-surface.mjs
  • tools/stdlib-matrix/run
  • typescript2/app-stdlib-matrix/src/components/matrix-app.ts
💤 Files with no reviewable changes (1)
  • tools/stdlib-matrix/baml_src/models.baml

Comment thread tools/stdlib-matrix/baml_src/align.baml Resolved
@github-actions

github-actions Bot commented Aug 11, 2026 •

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 26.4 MB 11.2 MB file 27.4 MB -946.1 KB (-3.5%) OK
✅ packed-program Linux 🔒 17.0 MB 6.9 MB file 18.6 MB -1.6 MB (-8.6%) OK
✅ baml-cli macOS 🔒 20.6 MB 9.8 MB file 21.3 MB -681.9 KB (-3.2%) OK
✅ packed-program macOS 🔒 13.4 MB 6.1 MB file 14.5 MB -1.1 MB (-7.7%) OK
✅ baml-cli Windows 🔒 22.1 MB 10.0 MB file 23.0 MB -836.7 KB (-3.6%) OK
✅ packed-program Windows 🔒 14.1 MB 6.1 MB file 15.5 MB -1.4 MB (-8.8%) OK
✅ bridge_wasm WASM 15.8 MB 🔒 4.3 MB gzip 4.6 MB -348.9 KB (-7.6%) 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 – beps August 11, 2026 22:28 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_surface/src/ids_tests.rs (1)

66-114: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Complete the inherited-default ID checks. an_inherited_default_is_reachable_through_the_block_and_declared_once does not assert string round-trips. Its greet check only tests is_some(). Assert the exact method and re-derived ID for greet, and round-trip both IDs.

🤖 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_surface/src/ids_tests.rs` around lines 66 - 114,
Update an_inherited_default_is_reachable_through_the_block_and_declared_once to
round-trip both emitted IDs through SymbolId::from_str and compare their
canonical strings. Strengthen the greet assertion to verify the resolved method
is exactly greet and that SymbolId::of_symbol re-derives the same ID, matching
the existing checks for the other inherited method.
🧹 Nitpick comments (1)
baml_language/crates/baml_cli/src/describe_search.rs (1)

530-536: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Test the complete user-package path contract.

This test validates addressable_package only. It does not verify that candidates() emits root. paths or that describe can resolve a returned user-symbol path. Add a Rust unit test that constructs a user-package export, searches it, and resolves the returned path.

As per coding guidelines: **/*.rs: Prefer writing Rust unit tests over integration tests where possible.

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

In `@baml_language/crates/baml_cli/src/describe_search.rs` around lines 530 - 536,
Extend the Rust unit test near
`a_user_symbol_is_printed_as_a_path_describe_accepts` to construct a
user-package export, invoke the search flow’s `candidates()`, and pass the
returned user-symbol path through `describe` resolution. Assert that candidates
emit the `root.`-prefixed path and that resolving it succeeds, covering the
complete user-package path contract rather than only `addressable_package`.

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_surface/src/ids_tests.rs`:
- Around line 66-114: Update
an_inherited_default_is_reachable_through_the_block_and_declared_once to
round-trip both emitted IDs through SymbolId::from_str and compare their
canonical strings. Strengthen the greet assertion to verify the resolved method
is exactly greet and that SymbolId::of_symbol re-derives the same ID, matching
the existing checks for the other inherited method.

---

Nitpick comments:
In `@baml_language/crates/baml_cli/src/describe_search.rs`:
- Around line 530-536: Extend the Rust unit test near
`a_user_symbol_is_printed_as_a_path_describe_accepts` to construct a
user-package export, invoke the search flow’s `candidates()`, and pass the
returned user-symbol path through `describe` resolution. Assert that candidates
emit the `root.`-prefixed path and that resolving it succeeds, covering the
complete user-package path contract rather than only `addressable_package`.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fcbae0e1-a651-4bc8-b385-267b9b4ac1d0

📥 Commits

Reviewing files that changed from the base of the PR and between bd2a0d4 and dc19e7c.

📒 Files selected for processing (9)
  • baml_language/crates/baml_cli/src/describe_search.rs
  • baml_language/crates/baml_surface/src/export.rs
  • baml_language/crates/baml_surface/src/export_tests.rs
  • baml_language/crates/baml_surface/src/ids.rs
  • baml_language/crates/baml_surface/src/ids_tests.rs
  • tools/stdlib-matrix/baml_src/align.baml
  • tools/stdlib-matrix/baml_src/references.baml
  • tools/stdlib-matrix/baml_src/revision.baml
  • tools/stdlib-matrix/baml_src/tests.baml
🚧 Files skipped from review as they are similar to previous changes (4)
  • tools/stdlib-matrix/baml_src/revision.baml
  • tools/stdlib-matrix/baml_src/tests.baml
  • baml_language/crates/baml_surface/src/ids.rs
  • tools/stdlib-matrix/baml_src/align.baml

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 August 11, 2026 22:37 Inactive
@2kai2kai2
2kai2kai2 enabled auto-merge August 11, 2026 22:41
@2kai2kai2
2kai2kai2 temporarily deployed to boundary-tools-prod August 11, 2026 22:41 — with GitHub Actions Inactive
@2kai2kai2
2kai2kai2 added this pull request to the merge queue Aug 11, 2026
Merged via the queue into canary with commit d784f12 Aug 11, 2026
85 checks passed
@2kai2kai2
2kai2kai2 deleted the kai/stdlib-similarity-matrix branch August 11, 2026 23:03

This branch was previously deployed

4 inactive deployments
github-pages — dc19e7c1 Deployed Aug 11, 2026 by 2kai2kai2 via Deploy to Pages #6
boundary-tools-prod — dc19e7c1 Deployed Aug 11, 2026 by 2kai2kai2 via Build the matrix and the site #6
Preview – promptfiddle2 — dc19e7c1 Deployed Aug 11, 2026 by vercel[bot]
Preview – beps — dc19e7c1 Deployed Aug 11, 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