You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Give profiler rows their process's times and revision; list labels - #5609
Local profiler rows carry their process's process_start_time, process_end_time and baml_source_code_content_id, the same on every row of a process. A query can bound code paths by time, or pick one source revision's, without joining processes. An unrecorded revision reads as NULL, never as the empty string.
baml query --schema lists the labels to show people for stored values and columns ("Labels for people"): user_error is Failed, a future is a Task, context_distinct_id is User. --format json carries the labels on each column. Results keep the stored spellings, which SQL filters on.
Low Risk
Changes are limited to query catalog views, CLI schema output, and documentation, with new tests covering profiler denormalization and label consistency.
Overview Profiler rows now include each process's process_start_time, process_end_time, and baml_source_code_content_id, so SQL can filter code paths by time or source revision without joining processes. Missing source revisions render as NULL (not empty strings) in both processes and profiler.
baml query --schema now surfaces human-facing metadata: value labels (e.g. user_error → Failed, future → Task), column headings (e.g. context_distinct_id → User), a "Showing results to people" section from PRESENTING, and clearer BAML value navigation help. --format json includes labels and heading on columns when set.
Keyword docs and the BAML skill text describe the new profiler columns and how to use schema labels in reports and dashboards.
Reviewed by Cursor Bugbot for commit 1e70260. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
New Features
Schema output now includes human-readable labels, descriptions, and presentation guidance for relation values.
Process profiler data includes start and end times and the associated source revision, making it easier to filter code paths by time or revision without joins.
Bug Fixes
Missing source revision IDs are now represented as null rather than empty strings.
Documentation
Added guidance for interpreting query schema labels and accessing media content.
Review was skipped as selected files did not have any reviewable changes.
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: a5561ee6-2d31-4f95-827e-db6048622768
Commits
Reviewing files that changed from the base of the PR and between 569744f and 1e70260.
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
Trigger review
No actionable comments were generated in the recent review.
Walkthrough
The query catalog adds presentation headings and value labels, and profiler rows now include process start time, end time, and source revision. The CLI schema output and query guidance describe these fields and labels.
Columns gain optional headings and value labels. Process, profiler, span, and span-announcement columns expose presentation metadata. Tests cover label definitions and serialization.
Profiler process metadata baml_language/crates/baml_query_btel/src/catalog.rs, baml_language/crates/baml_query_btel/tests/fresh_equivalence.rs
Profiler rows gain process start time, end time, and source revision. Tests cover timestamp selection, missing revisions, filtering, and fresh-versus-incremental index equivalence.
Schema output and guidance baml_language/crates/baml_cli/src/query_command.rs, baml_language/crates/baml_builtins2/keyword_docs/baml_keywords.yaml, skills/baml-core/SKILL.md
The CLI prints distinct labels, column headings, and presentation guidance. The query and debugging documentation describes profiler fields, labels, and media-value access.
BoundaryML/baml#5441 — This PR adds labels and headings to the schema description, but does not document column types or provide a DESCRIBE-style command.
Possibly related PRs
BoundaryML/baml#5583 — It relocates and rewrites the query schema command and related documentation, so the schema-label changes may need reconciliation with that command surface.
Suggested reviewers:antoniosarosi, hellovai
Merge Risk: Minimal · previous review 56974
This PR adds process times and a source revision to profiler rows, and adds labels to the schema output. No concrete merge-blocking defect was found in the reviewed changes.
Security architecture risk: Low · up to 56974
The changes reuse existing process data and keep display labels separate from SQL values. The main design risk is downstream compatibility with added fields and NULL revisions, rather than increased access or privileges.
Retained concerns
No architecture-level concerns identified.
Security review details
Security Blast Radius
inferred — For the inspected local query path, the added metadata remains within the selected project's existing index. Source revision and timing evidence come from recording rows already used by processes; the change does not add another data store or a new identity selector.
Trust Boundaries and Controls
observed — Caller-supplied local SQL still passes through the existing single-query translator and execution authorizer. Catalog lookup consumes column names, value types, and identity keys—not display labels. The authorizer denies non-read actions and specified sensitive functions, including extension loading and file reads or writes; these controls are unchanged by this PR.
Resilience and Maintainability Implications
observed — The existing local executor reads recording extents and query rows within one transaction, applies configured execution and output budgets, and clears query context and progress handling before propagating ordinary execution errors. The new profiler aggregation uses this unchanged containment path.
Pre-merge checks: 4
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title names two changes: profiler rows gain their process's start/end times and source revision, and schema output lists value labels. The raw summary and objectives confirm both. The title does n…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title names two changes: profiler rows gain their process's start/end times and source revision, and schema output lists value labels. The raw summary and objectives confirm both. The title does not cover the many other changes (catalog presentation headings, media-value docs, tests), which is acceptable. The title is specific and non-generic, and it matches the main changes.
Finishing Touches
Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
A rabbit checks the query’s guide, With labels neatly side by side. Start and end times join the view, A source revision comes through too. The CLI prints what columns mean, Then hops away, its schema clean.
Recent review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Repository UI
Review profile: CHILL
Plan: Advanced
Run ID: 11fc0eb3-e772-4288-a5bf-40f3c8532051
Commits
Reviewing files that changed from the base of the PR and between 65875ee and 569744f.
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 1 remain after this review.
⚠️ Please fix the size gate issues or acknowledge them by updating baselines.
Artifact
Platform
File
Gzip
Gated on
Baseline
Delta
Status
✅
baml-cli
Linux
🔒 65.0 MB
27.6 MB
file
73.1 MB
-8.0 MB (-11.0%)
OK
❌
packed-program
Linux
🔒 39.3 MB
16.2 MB
file
29.2 MB
+10.2 MB (+34.9%)
FAIL
❌
bridge_wasm
WASM
26.1 MB
🔒 7.7 MB
gzip
5.7 MB
+2.1 MB (+36.5%)
FAIL
🔒 = 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.
Details & how to fix
Violations:
packed-program (Linux) file_bytes: 39.3 MB exceeds limit of 30.1 MB (exceeded by +9.2 MB, policy: max_file_bytes)
packed-program (Linux) file_delta_pct: +34.9% exceeds limit of 3.0% (exceeded by +31.9pp, policy: max_delta_pct)
bridge_wasm (WASM) gzip_bytes: 7.7 MB exceeds limit of 5.9 MB (exceeded by +1.9 MB, policy: max_gzip_bytes)
bridge_wasm (WASM) gzip_delta_pct: +36.5% exceeds limit of 3.0% (exceeded by +33.5pp, policy: max_delta_pct)
Local `profiler` rows now carry their process's `process_start_time`,
`process_end_time` and `baml_source_code_content_id`, the same on every
row of a process. A query bounds code paths by time, or picks one source
revision's, without joining `processes`. An unrecorded revision reads as
NULL, never as the empty string.
`baml query --schema` now lists what to show a person for stored values
and columns ("Labels for people"): `user_error` is Failed, a `future` is a
Task, `context_distinct_id` is User. `--format json` carries the labels on
each column. Results keep the stored spellings, which SQL filters on.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
profilerrows carry their process'sprocess_start_time,process_end_timeandbaml_source_code_content_id, the same on every row of a process. A query can bound code paths by time, or pick one source revision's, without joiningprocesses. An unrecorded revision reads as NULL, never as the empty string.baml query --schemalists the labels to show people for stored values and columns ("Labels for people"):user_erroris Failed, afutureis a Task,context_distinct_idis User.--format jsoncarries the labels on each column. Results keep the stored spellings, which SQL filters on.Part of a stack; review the PRs in order.
🤖 Generated with Claude Code
Note
Low Risk
Changes are limited to query catalog views, CLI schema output, and documentation, with new tests covering profiler denormalization and label consistency.
Overview
Profiler rows now include each process's
process_start_time,process_end_time, andbaml_source_code_content_id, so SQL can filter code paths by time or source revision without joiningprocesses. Missing source revisions render as NULL (not empty strings) in bothprocessesandprofiler.baml query --schemanow surfaces human-facing metadata: value labels (e.g.user_error→ Failed,future→ Task), column headings (e.g.context_distinct_id→ User), a "Showing results to people" section fromPRESENTING, and clearer BAML value navigation help.--format jsonincludeslabelsandheadingon columns when set.Keyword docs and the BAML skill text describe the new profiler columns and how to use schema labels in reports and dashboards.
Reviewed by Cursor Bugbot for commit 1e70260. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit