Release Notes -- 2026-03-19¶
Databricks Forge v0.39.0 → v0.39.3
v0.39.0 -- Migrate Genie Benchmarks to Official Eval API¶
New Features¶
Genie Eval API Integration¶
Replaced the entire custom Genie benchmark system (SQL similarity, result-set comparison, LLM judge) with the official Databricks Genie Eval API (Beta). The five new endpoints (createEvalRun, getEvalRun, listEvalRuns, listEvalResults, getEvalResultDetails) handle execution, comparison, and scoring server-side. All benchmark runs now produce GOOD/BAD/NEEDS_REVIEW assessments with 25+ ScoreReason categories from Databricks LLM judge + result-set comparison.
Improvements¶
Simplified Benchmark Architecture¶
Removed ~430 lines of custom comparison logic from the benchmark API route, replacing it with a thin proxy to the Eval API (~160 lines). Deleted all client-side SQL similarity, result-set matching, and LLM judge code. The Genie API is now the single source of truth for run state -- no more in-memory job trackers.
Richer Failure Categorization¶
The old FailureCategory enum (10 values) is replaced by ScoreReason (25+ values) from the Eval API, providing much more precise failure diagnoses. Each ScoreReason maps to specific health check fix strategies for targeted improvement.
Enhanced Benchmark UI¶
The benchmarks page now displays GOOD/BAD/NEEDS_REVIEW assessment badges, ScoreReason chips with human-readable labels, side-by-side SQL comparison (expected vs actual), and execution result tables. History tab fetches directly from the Eval API with Lakebase enrichments.
Eval-Aware Auto-Improve Loop¶
The auto-improve loop now uses runEval() instead of the old runBenchmarks(), polling the Eval API for completion. Three-space architecture, stagnation detection, and sequential fix evaluation all work with the new async eval flow.
Other Changes¶
- New
lib/genie/eval-types.tswith all Genie Eval API types (1:1 with REST API) - Updated
ForgeSpaceBenchmarkRunPrisma model: addedevalRunId,status,numCorrect,numNeedsReview,accuracy; removedtotalQuestions,passedCount,failedCount,errorCount - Updated
AGENTS.mdanddocs/GENIE_HEALTHCHECK_ENGINE.mdto document new eval API architecture - Rewrote all benchmark-feedback tests for ScoreReason-based mapping (30 tests)
v0.39.1 -- Fix synthetic question IDs sent to Genie Eval API¶
Bug Fixes¶
- Benchmark eval run fails with "Curated question with ID 'q-0' not found" -- The benchmarks API route was not returning the real
idfield from serialized space questions. The UI generated synthetic fallback IDs (q-0,q-1, ...) which the Genie Eval API rejected. Now the API passes through real question IDs, and the UI disables individual selection for questions without IDs while still allowing "Run All" (which omitsquestionIds, letting the API evaluate every benchmark question).
v0.39.2 -- Expose full eval result details (execution results, column types, error states)¶
Bug Fixes¶
- Benchmark execution results not rendering -- The
sql_execution_resultfrom the Genie Eval API has a nested structure (manifest.schema.columns,result.data_array) but the UI was looking for flat top-level fields. Added proper typed interfaces (SqlExecutionResult,SqlExecutionResultManifest,SqlExecutionResultColumn, etc.) and rewroteExecutionResultTableto correctly navigate the nested structure.
Improvements¶
- Execution result tables now show column types, total row counts, truncation indicators, error states, and pending/running execution status.
- Increased visible row limit from 10 to 20, with overflow indicator.
- NULL values now render with distinct italic styling.
v0.39.3 -- Benchmark detail UI overhaul matching Databricks native eval experience¶
Improvements¶
Side-by-side "Model output" / "Ground truth" panels¶
Restructured benchmark result cards to use a two-column layout matching the Databricks native eval UI. Each column is a self-contained ResponsePanel with SQL + execution result table paired together, replacing the old vertically-stacked layout.
SQL syntax highlighting via CodeMirror¶
Replaced plain <pre> SQL blocks with the existing SqlEditor component (CodeMirror, read-only mode) providing syntax highlighting, line numbers, and proper monospace rendering.
Collapsible SQL¶
Long SQL statements (>8 lines) are collapsed by default with a "... N more lines" toggle, matching the Databricks UI pattern.
Copy-to-clipboard buttons¶
Each response panel now has a copy button for the SQL/text content with visual feedback.
Response type badges and row numbers¶
Each panel shows an "SQL" or "TEXT" badge. Execution result tables now include a # row number column and use Databricks-style labeling ("Model output" / "Ground truth SQL answer").
All Commits¶
| Hash | Summary |
|---|---|
9db17cc |
feat: benchmark detail UI overhaul matching Databricks native eval experience |
b5fb30a |
fix: expose full eval result details with proper SqlExecutionResult types |
853b4ce |
fix: pass real benchmark question IDs to Genie Eval API instead of synthetic fallbacks |
d671224 |
feat: migrate Genie benchmarks to official Databricks Eval API |