Changelog
{/* Generated by git-cliff — do not edit by hand. */}
All notable changes are documented here. This project follows Conventional Commits.
2026.07.20 — 2026-07-20
Section titled “2026.07.20 — 2026-07-20”Features
Section titled “Features”- portal: Implement environments comparison (#565)
- portal: Add attributes to environments (table + overview) (#557)
- portal: Store pagination in session storage (#554)
- portal: Update default runs table cells (#555)
- portal: Unauthenticated users view public workspaces (#537)
- portal, charts: [MET-272] Improve chart highlighting for clarity when many series are rendered (#525)
- portal, runs: [MET-256] Refresh data only for active runs (#517)
- portal, run: [MET-257] Display run status indicator (#509)
- portal, user-preferences: [NO-TICKET] Add user preferences to set number&date format and customize timezone (#503)
- portal, chart: [MET-248] Snap cursor to nearest x-axis point (#498)
- portal, workspace-settings: [MET-240] Enable workspace settings for members (#471)
- portal, chart-settings: [MET-108] Move includeInherited to chart page settings (#468)
- portal, tree-view: [MET-212] Add toggle to root in tree view to toggle everything off (#467)
- portal, light-mode: [MET-232] Implement light mode (#466)
- portal, chart-settings: [MET-88] Implement x-axis mode (#448)
- portal, run-color: [MET-91] Support custom run color (#444)
- portal, chart-settings: [MET-90] Add smoothing to charts (#435)
- portal, auth: Add /join-workspace route (#425)
- portal, workspace: [MET-163] Add settings section to list workspace invitations (#417)
- portal, charts: [MET-93] Support log distribution for y-axis (#421)
- portal, auth: [MET-179][MET-173][MET-161][MET-207] (#401)
- portal, archive-run: [MET-92] Support run archiving (#412)
- portal, charts: [MET-192] Implement y-axis and bi-direction zoom (#384)
- portal, tooltip: [MET-198] Improve the way we display values (#385)
- portal, charts: [MET-142] Add option to download chart data as csv (#376)
- portal, runs-table: [MET-176] Remove eval/loss column from default columns (#374)
- portal, management-api: [MET-37][MET-151][MET-152][MET-150] Implement management api (#325)
- portal, table: [MET-157] Improve column resizing logic (#341)
- portal, charts: [MET-87] Refetch charts data every 15s (#330)
- portal, environments: [MET-132] Add input to scale slider (#332)
- portal, tree-view: [MET-141] Use virtualizer and infinite scroll in tree view to handle large data sets (#319)
- portal, charts: [MET-87] Refetch charts data every 30s (#320)
- portal, charts: [MET-147] Calculate y-axis size based on labels length (#321)
- portal, search: [MET-131] Add regex search (#304)
- portal, assistant: Move model and effor selector under ‘settings’ dropdown (#303)
- portal, charts: [MET-117] Add option to replay runs (#299)
- portal, charts: [MET-129] Do not limit max 4 charts per row, calculate based on screen width (#296)
- portal, metrics: Project and run share same metric storage (#295)
- portal, numbers-formatting: Use scientific formatting when displaying numbers (#294)
- portal, charts: [MET-124] Consolidate methods to transform chart data (#293)
- portal, error-boundaries: Catch route errors with error boundary (#292)
- portal, table-management: Attributes and metrics lists take remaining screen size (#285)
- portal, quickstart: Update quickstart (#280)
- portal, projects-table: Hide description table in project table cell if no description (#275)
- portal, UI: Implement metrana loading indicator (#272)
- portal, home page: Implement workspaces table on homepage (#270)
- portal, side-by-side: Add option to expand side by side to fullscreen (#268)
- portal, permissions: Display ‘Not found page’ (#265)
- portal, charts: [MET-114] Highlight isolated points and disconnect gaps in steps (#264)
- portal, environments: Implement environment detail (#248)
- portal, environments: Implement environments table view (#236)
- portal, error-boundaries: Add error boundaries to prevent whole… (#213)
- portal, shortcuts: Implement common keyboard shortcuts (#210)
- portal, dashboard: Implement dashboard with configurable charts (#179)
- portal, side-by-side: Implement side by side view & regex search (#178)
- portal: Various improvements (#175)
- portal, run-overview: Implement run overview (#171)
- portal, charts: Add toggle for run inheritance and other improvements (#168)
- portal, runs-comparison: Runs comparison works now (#162)
- portal, chart: Implement charts (#158)
- portal, tree view: Implement tree view (#155)
- portal, table filtering: Implement table filtering (#146)
- portal, table searching: Implement table search by name (#139)
- portal, table sorting: Address comments
- portal, table sorting: Implement Sorting management
- portal, table sorting: Prevent api call to list metrics and attributes unless manager is open
- portal, table management: Address comments
- portal, table management: Address comments
- portal, table management: Rename ColumnsPanel to ColumnsManagement
- portal, table management: Fixes
- portal, table management: Update columns manager ui
- portal, table management: Display metrics as dropdown
- portal, table management: Add ‘remove unpinned’ button
- portal, table management: Remove old route
- portal, table management: Implement columns manager
- portal, table management: Support sorting bymetric
- portal, table management: Update default columns
- portal, table management: Support seriesSummaries for column definitions
- portal, table management: Use custom cell renderers
- portal, table management: Support sorting from url search params
- portal, table management: Refactor columns management
- portal, mock data: Implement mocks based on real api (#121)
- portal, api types: Auto generate types for api endpoints (#80)
- portal, routing: Revamp routing (#79)
- portal, table: Implement generic virtualized table with pagination and mock example (#77)
- frontend: Web portal setup (#73)
Bug Fixes
Section titled “Bug Fixes”- portal: Ensure archive button is hidden from anonymous users (#551)
- portal, chart: Chart highlight used old color we updated run color when chart is rendered (#526)
- portal, chart: Axes.ticks.filter is not a function (#524)
- portal, chart: [MET-254] Assign average value as error bands to smoothed metrics (#502)
- portal, metrics: [MET-169] Correctly display and query metrics with(out) labels (#493)
- portal, charts: [no-ticket] Fix shared cursor highlight (#423)
- portal, chart-settings: [no-tocket] Fix chart settings in fullscreen (#424)
- portal, environment: [MET-203] Pass environment param to listRLEnvironmentMetricDefinitions api (#386)
- portal, csv-export: [MET-175] Correctly export stringSet values (#375)
- portal, charts: [MET-167][MET-168][MET-172] Prevent cursor/zoom lost when new data received (#369)
- portal, charts: [MET-130] Make sure charts highlight work cross-chart (#346)
- portal, environment: [MET-158] Make environment metrics tree view work same as in runs (#339)
- portal, run: [MET-159] Make run attributes tree view scoped only to this specific run (#340)
- portal, assistant: [MET-154] Close active conversation when project/workspace changes (#331)
- portal, tree-view: [MET-141] Fix regression when collapsing root folder (#323)
- portal, metrics: Use regex to search metrics (#305)
- portal, dashboard: Metrics list in dashboard modal couln’t be scrolled (#284)
- portal, charts-container: Fix scrollbar position on charts containers (#283)
- portal, infinite-scroll: VirtualizedInfiniteList does not jump to top after loading (#282)
- portal, number-formatter: Fix number formatter rounding decimals (#281)
- portal, charts: Find bucket count based on all buckets, not just first (#263)
- portal, charts: Make sure even metrics with no data are in chart (#256)
- portal, metrics: Fetch metrics until there is a result to display or nothing else to fetch (#250)
- portal, metrics: Filter metrics by run on run level (#249)
- portal, chart: Fix y-axis spacing to fit negative values (#244)
- portal, metrics: Try to filter metrics in BE if possible (#245)
- portal, build: Fix build after api change (#225)
- portal, side by side: Fix side by side run names spacing (#223)
- portal, local storage: Fix reading from local storage crashing app (#220)
- portal: Fix build (#214)
- portal, config: Update vite.config (#145)
Performance
Section titled “Performance”- portal: Pass maxBucketsAcrossSeries to guarantee max data points size (#553)
- portal: Rewrite charts for better performance and architecture (#542)