Skip to content

Give profiler rows their process's times and revision; list labels - #5609

Open
aaronvg wants to merge 1 commit into
aaron/media-content-pathfrom
aaron/profiler-process-facts
Open

aaronvg wants to merge 1 commit into
aaron/media-content-pathfrom
aaron/profiler-process-facts

Conversation

@aaronvg

@aaronvg aaronvg commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor
  • 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.

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

@vercel

vercel Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
developer-docs Ready Ready Preview Nov 13, 2026 1:03am UTC

Request Review

@aaronvg
aaronvg added this pull request to stack #5611 November 12, 2026 03:28
@coderabbitai

coderabbitai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Important

Review skipped

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.

Changes: Query catalog and CLI

Layer / File(s) Summary
Catalog presentation metadata
baml_language/crates/baml_query_btel/src/catalog.rs
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.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Feature

Possibly related issues

  • 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: Passed 4

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed 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 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.
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.

Files selected for processing: 5

  • baml_language/crates/baml_builtins2/keyword_docs/baml_keywords.yaml
  • baml_language/crates/baml_cli/src/query_command.rs
  • baml_language/crates/baml_query_btel/src/catalog.rs
  • baml_language/crates/baml_query_btel/tests/fresh_equivalence.rs
  • skills/baml-core/SKILL.md

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 1 remain after this review.

@cursor

cursor Bot commented Nov 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: e78d0d39-0707-410f-a293-bcb4a3d7824f)

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

@github-actions

Copy link
Copy Markdown

Binary size checks failed

❌ 2 violations · ✅ 1 passed

⚠️ 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)

Add/update baselines:

.ci/size-gate/wasm32-unknown-unknown.toml:

[artifacts.bridge_wasm]
file_bytes = 26145305
gzip_bytes = 7727594

.ci/size-gate/x86_64-unknown-linux-gnu.toml:

[artifacts.packed-program]
file_bytes = 39318808
gzip_bytes = 16161063

Generated by cargo size-gate · workflow run

@aaronvg
aaronvg force-pushed the aaron/profiler-process-facts branch from 6bfc18a to 569744f Compare November 13, 2026 00:11
@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 0fd18ff5-008a-447f-bf73-7158d0ebb915)

@aaronvg
aaronvg deployed to boundary-tools-dev November 13, 2026 00:11 — with GitHub Actions Active
@aaronvg
aaronvg marked this pull request as ready for review November 13, 2026 00:11
@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 8ca7b56b-1491-4dd5-a241-8019da020d5a)

@github-actions

github-actions Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

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]>
@aaronvg
aaronvg force-pushed the aaron/profiler-process-facts branch from 569744f to 1e70260 Compare November 13, 2026 00:59
@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: f8327854-53b7-4d9b-b8e3-2bd0788a6a8f)

This branch was successfully deployed

2 active deployments
Preview – developer-docs — 1e702605 Deployed Nov 13, 2026 by vercel[bot]
boundary-tools-dev — 1e702605 Deployed Nov 13, 2026 by aaronvg via Docs / publish docs #14612
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