Developer
Mayzner
mayzner@google.com
Performance
YoY:+1262%Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits from this developer.
| Hash | Message | Date | Files |
|---|
Commit activity distribution by hour and day of week. Shows when this developer is most active.
Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.
| Effort |
|---|
| 15ff5325 | This commit introduces a significant **feature enhancement** by moving **chart editing** within the **Data Explorer dashboard** from an inline popup to a **dedicated sidebar panel**. This **refactoring** of the chart configuration workflow, primarily implemented in `ui/src/plugins/dev.perfetto.DataExplorer/dashboard/dashboard.ts`, aims to provide a more spacious and consistent user experience. Supporting changes include updating `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/charts/chart_config_popup.ts` to allow hiding the chart type selector and enhancing `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/charts/chart_type_picker.ts` to visually highlight the currently selected chart type. The overall impact is a more streamlined and intuitive **chart configuration** process for users of the Data Explorer. | Mar 31 | 5 | grow |
| 3b7db405 | This commit introduces a significant **new capability** to the **Data Explorer** plugin, allowing users to **group and ungroup nodes** within the query builder graph. This feature enables encapsulating multiple selected nodes into a single `GroupNode`, which can be expanded, collapsed, and later ungrouped, greatly enhancing the **organization and readability of complex queries**. It involved extensive updates to the **graph visualization**, **node CRUD operations**, **serialization logic**, and the introduction of a new `GroupNode` type with its own UI actions and `InnerGraphPreview` component. This work improves the user experience by providing a powerful tool for managing large data exploration workflows, supported by comprehensive unit tests for robustness. | Mar 30 | 18 | grow |
| 3a8c1a95 | This commit introduces **per-table data availability checks** to the **stdlib**, providing a **new capability** for finer-grained control over table visibility and usability. This allows individual tables, like core tables from `prelude.after_eof.views`, to be disabled if their data is absent, rather than an entire module, improving the accuracy of data availability reporting. The **Perfetto UI's Data Explorer and SQL Modules plugins** are updated to integrate this new `isTableEffectivelyDisabled` logic, ensuring the UI accurately reflects table status. Additionally, it **promotes** `cpu_profile_stack_sample` and `pkvm_hypervisor_events` to high importance and adds new module-level checks for `android.freezer`, `pkvm.hypervisor`, and `android.memory.memory_breakdown`. | Mar 30 | 8 | grow |
| 1d6c76b9 | This commit **refactors** the **Dashboard UI** within the `dev.perfetto.DataExplorer` plugin, relocating the "add item" action from a floating button to a persistent side panel, thereby unifying it with existing data and linked-columns panels. Concurrently, it **enhances the visual consistency** of chart previews by replacing hard-coded colors with CSS variables in `chart_type_picker.ts`, which enables **dark mode adaptation** for chart thumbnails. This work significantly improves the dashboard's usability and visual adaptability across different themes. | Mar 30 | 4 | maint |
| bba888da | This commit **refactors** the `hsc_based_startup_times` table definition within the **Trace Processor's Android startup metrics**. It transitions from using deprecated SQLite `CREATE TABLE` and multiple `INSERT` statements to the more modern and efficient `CREATE PERFETTO TABLE AS` syntax, leveraging `UNION ALL`. This **maintenance** update improves the internal implementation of the metric, ensuring it adheres to current Perfetto SQL best practices. The change modernizes the underlying query logic for this specific startup metric, enhancing maintainability without altering its computed output. | Mar 23 | 1 | maint |
| ac6282fc | This commit introduces a significant **new capability** to the **Data Explorer** plugin, enabling users to import Perfetto `.pbtxt` files containing `TraceSummary` or metric definitions. It extends the existing graph and tab import functionality in `ui/src/plugins/dev.perfetto.DataExplorer/graph_io.ts` to support this new format. A dedicated new module, `ui/src/plugins/dev.perfetto.DataExplorer/pbtxt_import.ts`, handles the complex parsing and conversion of these specifications into Data Explorer graph nodes, greatly enhancing the tool's ability to visualize and analyze custom metrics. This **feature** also includes a **bug fix** in `metrics_node.ts` to prevent premature column filtering during deserialization, ensuring proper integration of the new import mechanism. | Mar 23 | 5 | maint |
| 9f658a0a | This commit introduces a **new capability** by completely reworking the **Data Explorer dashboard** layout from pixel-based absolute positioning to a **responsive 24-column grid system**. Charts and dividers now **snap to grid cells** and resize in grid units, with the grid scaling dynamically with the canvas width, significantly improving the user experience and responsiveness. This **refactoring** updates the drag and resize logic to utilize grid coordinates, extends dragging to the full card body, and involves changes across `dashboard.ts`, `dashboard_registry.ts`, and `dashboard.scss`. Corresponding **unit tests** have been updated to align with the new grid-based coordinate system, ensuring the robustness of the new layout. | Mar 23 | 5 | grow |
| cfced880 | This commit introduces a **new feature** to the **UI development server**, enabling developers to set a custom browser tab title. A `--title` flag is added to the `ui/build.js` script, allowing the HTML page title to be overridden during the build process. The frontend's `ui_main.ts` is updated to dynamically read `document.title`, ensuring the custom title persists after the application loads. This enhancement significantly improves the **developer experience** by making it easier to distinguish between multiple running dev server instances. | Mar 23 | 2 | grow |
| b041e451 | This commit introduces **new capabilities** by adding support for **percentile** (P25-P99) and **count distinct** aggregations across multiple UI chart types. These advanced aggregation options are now available for **Bar, Pie, Treemap, Heatmap, and Scorecard charts**, allowing users to select them through the `chart_config_popup.ts` UI. The implementation involved extending the `AggregateFunction` type, adding a new `percentile` utility function in `chart_utils.ts`, and updating SQL generation in `sql_utils.ts` to correctly process these aggregations. This enhancement significantly improves the **data analysis capabilities** within the UI, enabling more sophisticated statistical insights directly from the visual representations. Additionally, it includes updates to `chart_sql_source.ts` for `COUNT_DISTINCT` handling and `chart_renderers.ts` for proper measure label formatting. | Mar 20 | 10 | grow |
| c8d09cbd | This commit **refactors** the **`DataExplorer` plugin's query builder UI** by introducing a new, reusable `ColumnSelector` component to standardize column selection, reordering, and aliasing. This new widget is now integrated into existing components such as `JoinColumnSelector`, `ModifyColumnsNode`, and `UnionNode`, replacing previous implementations. The **refactoring** effort significantly improves code reusability and maintainability across various query builder operations, ensuring a consistent user experience for column management. Additionally, it includes **cleanup** by removing unused CSS classes associated with deprecated widgets. | Mar 20 | 8 | maint |
| d2aaedff | This commit introduces a **new visual chart type picker** to significantly enhance the user experience when adding charts. It **replaces the previous simple "Add Chart" buttons** with an interactive grid displaying various chart types with SVG previews, allowing users to select their desired chart type upfront. This **feature** improves the workflow for creating charts within both the **Data Explorer dashboard** and the **query builder**, making the chart creation process more intuitive and visual. The change involves a new UI component (`chart_type_picker.ts`), updates to chart configuration (`createDefaultChartConfig`), and integration into the `addChart` flows across the `DataExplorer` plugin. | Mar 20 | 8 | grow |
| 3033df25 | This commit introduces a **feature enhancement** to the **Data Explorer dashboard** by significantly improving its empty state messaging. It now intelligently distinguishes between two scenarios: when data sources are available but no items have been added, and when no data has been exported to the dashboard at all, providing more context-specific guidance to users. Additionally, it includes a **UI fix** that enables text wrapping for empty state widgets, preventing message truncation. This change primarily affects the `dashboard.ts` and `dashboard_chart_view.ts` files within the `dev.perfetto.DataExplorer` plugin, where the empty state display logic and component usage have been updated to use `ResultsPanelEmptyState`. | Mar 19 | 2 | grow |
| 3b90f645 | This commit **refactors** the **Data Explorer plugin** to enhance dashboard management and introduces a new user capability. It replaces mutable dashboard `title` strings with stable, monotonically increasing **`displayNumber`** values, improving the reliability of dashboard identification within `DashboardTabState`. A new **feature** is introduced, allowing users to **remove dashboards** from graph tabs directly within the UI. This change impacts how dashboards are stored, loaded, and displayed, making the system more robust and user-friendly by providing better control over dashboard lifecycle. | Mar 19 | 5 | maint |
| 951fd2e0 | This commit **refactors and reorganizes the Data Explorer's node popup menu** to enhance usability and reduce visual clutter. It introduces **categorization for core nodes** like `AddColumns` and `Filter`, reclassifies `FilterDuring` and `FilterIn`, and renames the "Visualisation" node to "Charts" within the `core_nodes.ts` definitions. The change also includes **renaming menu section headers** from "Modification nodes" to "Modifications" across the UI and refactoring `buildCategorizedMenuItems` to maintain registration order. This **maintenance and UI improvement** provides users with a more intuitive and organized experience when adding or modifying nodes in the query builder. | Mar 18 | 4 | maint |
| 75c14e29 | This commit introduces **cycle detection** to the **Data Explorer's query builder graph** to enforce its Directed Acyclic Graph (DAG) property. A new utility function, `wouldCreateCycle`, was added to `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/graph_utils.ts` to determine if a proposed connection would form a cycle, complete with comprehensive unit tests. This **new capability** is integrated into the `handleConnect` function in `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/graph/graph.ts`, which now **prevents invalid connections** from being made and logs a console warning. This **bug fix** ensures the integrity of the Data Explorer's graph structure, preventing users from creating problematic cyclic dependencies. | Mar 18 | 3 | waste |
| d8516e07 | This commit **enhances the UI build process** by extending its signal handling to properly terminate child processes upon receiving `SIGTERM` and `SIGHUP` signals. Previously, only `SIGINT` (Ctrl+C) triggered this cleanup, leading to **orphaned `rollup` and `tsc` processes** when the **development server** was terminated by other means. This **maintenance improvement** prevents resource waste and ensures a cleaner shutdown for the **UI development environment**, primarily affecting the `ui/build.js` module. | Mar 18 | 1 | waste |
| dd074a2e | This commit **fixes a critical bug** in the **Data Explorer** where changes to a `dataSource`'s column set were not properly propagating to **dashboard visualizations**. The `DashboardNode` in the query builder was updated to remove eager table name resolution and now correctly notifies of state changes via `onPrevNodesUpdated`, ensuring charts reflect additions or removals of columns. Additionally, the `DashboardChartView` was improved to reliably reset its `executionRequested` flag, preventing the UI from getting stuck in a loading state. This **bug fix** ensures a more responsive and accurate user experience when interacting with dynamic data sources in the Data Explorer. | Mar 18 | 3 | waste |
| 776ed75b | This commit introduces **segment dividers** to the **DataExplorer dashboard**, enabling a powerful master-detail pattern for chart interactions. Charts positioned above a divider act as "drivers," propagating brush selections to "consumer" charts below without filtering their own data, while consumer charts are filtered by these drivers. This **new feature** involves substantial changes to the `dashboard.ts` logic for rendering, dragging, and positioning dividers, and updates `dashboard_chart_view.ts` to modify brush filtering behavior. The `dashboard_registry.ts` now defines `DashboardDivider` types and utility functions to manage these driver/consumer relationships, significantly enhancing the interactivity and analytical capabilities of dashboards. | Mar 18 | 5 | grow |
| db2b5e84 | This commit introduces a **new `Scorecard` UI component** for displaying single metric values with a label, significantly enhancing the **UI's charting capabilities**. It also **refactors the existing `StatsCard` component, renaming it to `Gauge`** and refining its implementation as a dedicated gauge chart, alongside renaming `SQLStatCardLoader` to `SQLSingleValueLoader` to support both new and refactored components. The new `scorecard` chart type is fully **integrated into the `DataExplorer`'s chart rendering and type registration system**, providing users with an additional visualization option for query results. This work improves the clarity and flexibility of the **Perfetto UI's widget library** for displaying key performance indicators. | Mar 18 | 10 | grow |
| be11b137 | This commit introduces a significant **new capability** for the **Data Explorer** plugin, enabling **whole-tab import and export**. Users can now save and load an entire tab's state, including its **graph configuration** and all associated **dashboards** with their brush filters, into a single JSON file. This feature, implemented through new serialization logic in `graph_io.ts` and `data_explorer_tabs_storage.ts`, greatly enhances the ability to share and persist complex Data Explorer setups. New UI elements, including dedicated upload and download buttons on the tab bar, have been added to facilitate this improved **tab management** functionality. | Mar 18 | 9 | grow |
This commit introduces a significant **feature enhancement** by moving **chart editing** within the **Data Explorer dashboard** from an inline popup to a **dedicated sidebar panel**. This **refactoring** of the chart configuration workflow, primarily implemented in `ui/src/plugins/dev.perfetto.DataExplorer/dashboard/dashboard.ts`, aims to provide a more spacious and consistent user experience. Supporting changes include updating `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/charts/chart_config_popup.ts` to allow hiding the chart type selector and enhancing `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/charts/chart_type_picker.ts` to visually highlight the currently selected chart type. The overall impact is a more streamlined and intuitive **chart configuration** process for users of the Data Explorer.
This commit introduces a significant **new capability** to the **Data Explorer** plugin, allowing users to **group and ungroup nodes** within the query builder graph. This feature enables encapsulating multiple selected nodes into a single `GroupNode`, which can be expanded, collapsed, and later ungrouped, greatly enhancing the **organization and readability of complex queries**. It involved extensive updates to the **graph visualization**, **node CRUD operations**, **serialization logic**, and the introduction of a new `GroupNode` type with its own UI actions and `InnerGraphPreview` component. This work improves the user experience by providing a powerful tool for managing large data exploration workflows, supported by comprehensive unit tests for robustness.
This commit introduces **per-table data availability checks** to the **stdlib**, providing a **new capability** for finer-grained control over table visibility and usability. This allows individual tables, like core tables from `prelude.after_eof.views`, to be disabled if their data is absent, rather than an entire module, improving the accuracy of data availability reporting. The **Perfetto UI's Data Explorer and SQL Modules plugins** are updated to integrate this new `isTableEffectivelyDisabled` logic, ensuring the UI accurately reflects table status. Additionally, it **promotes** `cpu_profile_stack_sample` and `pkvm_hypervisor_events` to high importance and adds new module-level checks for `android.freezer`, `pkvm.hypervisor`, and `android.memory.memory_breakdown`.
This commit **refactors** the **Dashboard UI** within the `dev.perfetto.DataExplorer` plugin, relocating the "add item" action from a floating button to a persistent side panel, thereby unifying it with existing data and linked-columns panels. Concurrently, it **enhances the visual consistency** of chart previews by replacing hard-coded colors with CSS variables in `chart_type_picker.ts`, which enables **dark mode adaptation** for chart thumbnails. This work significantly improves the dashboard's usability and visual adaptability across different themes.
This commit **refactors** the `hsc_based_startup_times` table definition within the **Trace Processor's Android startup metrics**. It transitions from using deprecated SQLite `CREATE TABLE` and multiple `INSERT` statements to the more modern and efficient `CREATE PERFETTO TABLE AS` syntax, leveraging `UNION ALL`. This **maintenance** update improves the internal implementation of the metric, ensuring it adheres to current Perfetto SQL best practices. The change modernizes the underlying query logic for this specific startup metric, enhancing maintainability without altering its computed output.
This commit introduces a significant **new capability** to the **Data Explorer** plugin, enabling users to import Perfetto `.pbtxt` files containing `TraceSummary` or metric definitions. It extends the existing graph and tab import functionality in `ui/src/plugins/dev.perfetto.DataExplorer/graph_io.ts` to support this new format. A dedicated new module, `ui/src/plugins/dev.perfetto.DataExplorer/pbtxt_import.ts`, handles the complex parsing and conversion of these specifications into Data Explorer graph nodes, greatly enhancing the tool's ability to visualize and analyze custom metrics. This **feature** also includes a **bug fix** in `metrics_node.ts` to prevent premature column filtering during deserialization, ensuring proper integration of the new import mechanism.
This commit introduces a **new capability** by completely reworking the **Data Explorer dashboard** layout from pixel-based absolute positioning to a **responsive 24-column grid system**. Charts and dividers now **snap to grid cells** and resize in grid units, with the grid scaling dynamically with the canvas width, significantly improving the user experience and responsiveness. This **refactoring** updates the drag and resize logic to utilize grid coordinates, extends dragging to the full card body, and involves changes across `dashboard.ts`, `dashboard_registry.ts`, and `dashboard.scss`. Corresponding **unit tests** have been updated to align with the new grid-based coordinate system, ensuring the robustness of the new layout.
This commit introduces a **new feature** to the **UI development server**, enabling developers to set a custom browser tab title. A `--title` flag is added to the `ui/build.js` script, allowing the HTML page title to be overridden during the build process. The frontend's `ui_main.ts` is updated to dynamically read `document.title`, ensuring the custom title persists after the application loads. This enhancement significantly improves the **developer experience** by making it easier to distinguish between multiple running dev server instances.
This commit introduces **new capabilities** by adding support for **percentile** (P25-P99) and **count distinct** aggregations across multiple UI chart types. These advanced aggregation options are now available for **Bar, Pie, Treemap, Heatmap, and Scorecard charts**, allowing users to select them through the `chart_config_popup.ts` UI. The implementation involved extending the `AggregateFunction` type, adding a new `percentile` utility function in `chart_utils.ts`, and updating SQL generation in `sql_utils.ts` to correctly process these aggregations. This enhancement significantly improves the **data analysis capabilities** within the UI, enabling more sophisticated statistical insights directly from the visual representations. Additionally, it includes updates to `chart_sql_source.ts` for `COUNT_DISTINCT` handling and `chart_renderers.ts` for proper measure label formatting.
This commit **refactors** the **`DataExplorer` plugin's query builder UI** by introducing a new, reusable `ColumnSelector` component to standardize column selection, reordering, and aliasing. This new widget is now integrated into existing components such as `JoinColumnSelector`, `ModifyColumnsNode`, and `UnionNode`, replacing previous implementations. The **refactoring** effort significantly improves code reusability and maintainability across various query builder operations, ensuring a consistent user experience for column management. Additionally, it includes **cleanup** by removing unused CSS classes associated with deprecated widgets.
This commit introduces a **new visual chart type picker** to significantly enhance the user experience when adding charts. It **replaces the previous simple "Add Chart" buttons** with an interactive grid displaying various chart types with SVG previews, allowing users to select their desired chart type upfront. This **feature** improves the workflow for creating charts within both the **Data Explorer dashboard** and the **query builder**, making the chart creation process more intuitive and visual. The change involves a new UI component (`chart_type_picker.ts`), updates to chart configuration (`createDefaultChartConfig`), and integration into the `addChart` flows across the `DataExplorer` plugin.
This commit introduces a **feature enhancement** to the **Data Explorer dashboard** by significantly improving its empty state messaging. It now intelligently distinguishes between two scenarios: when data sources are available but no items have been added, and when no data has been exported to the dashboard at all, providing more context-specific guidance to users. Additionally, it includes a **UI fix** that enables text wrapping for empty state widgets, preventing message truncation. This change primarily affects the `dashboard.ts` and `dashboard_chart_view.ts` files within the `dev.perfetto.DataExplorer` plugin, where the empty state display logic and component usage have been updated to use `ResultsPanelEmptyState`.
This commit **refactors** the **Data Explorer plugin** to enhance dashboard management and introduces a new user capability. It replaces mutable dashboard `title` strings with stable, monotonically increasing **`displayNumber`** values, improving the reliability of dashboard identification within `DashboardTabState`. A new **feature** is introduced, allowing users to **remove dashboards** from graph tabs directly within the UI. This change impacts how dashboards are stored, loaded, and displayed, making the system more robust and user-friendly by providing better control over dashboard lifecycle.
This commit **refactors and reorganizes the Data Explorer's node popup menu** to enhance usability and reduce visual clutter. It introduces **categorization for core nodes** like `AddColumns` and `Filter`, reclassifies `FilterDuring` and `FilterIn`, and renames the "Visualisation" node to "Charts" within the `core_nodes.ts` definitions. The change also includes **renaming menu section headers** from "Modification nodes" to "Modifications" across the UI and refactoring `buildCategorizedMenuItems` to maintain registration order. This **maintenance and UI improvement** provides users with a more intuitive and organized experience when adding or modifying nodes in the query builder.
This commit introduces **cycle detection** to the **Data Explorer's query builder graph** to enforce its Directed Acyclic Graph (DAG) property. A new utility function, `wouldCreateCycle`, was added to `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/graph_utils.ts` to determine if a proposed connection would form a cycle, complete with comprehensive unit tests. This **new capability** is integrated into the `handleConnect` function in `ui/src/plugins/dev.perfetto.DataExplorer/query_builder/graph/graph.ts`, which now **prevents invalid connections** from being made and logs a console warning. This **bug fix** ensures the integrity of the Data Explorer's graph structure, preventing users from creating problematic cyclic dependencies.
This commit **enhances the UI build process** by extending its signal handling to properly terminate child processes upon receiving `SIGTERM` and `SIGHUP` signals. Previously, only `SIGINT` (Ctrl+C) triggered this cleanup, leading to **orphaned `rollup` and `tsc` processes** when the **development server** was terminated by other means. This **maintenance improvement** prevents resource waste and ensures a cleaner shutdown for the **UI development environment**, primarily affecting the `ui/build.js` module.
This commit **fixes a critical bug** in the **Data Explorer** where changes to a `dataSource`'s column set were not properly propagating to **dashboard visualizations**. The `DashboardNode` in the query builder was updated to remove eager table name resolution and now correctly notifies of state changes via `onPrevNodesUpdated`, ensuring charts reflect additions or removals of columns. Additionally, the `DashboardChartView` was improved to reliably reset its `executionRequested` flag, preventing the UI from getting stuck in a loading state. This **bug fix** ensures a more responsive and accurate user experience when interacting with dynamic data sources in the Data Explorer.
This commit introduces **segment dividers** to the **DataExplorer dashboard**, enabling a powerful master-detail pattern for chart interactions. Charts positioned above a divider act as "drivers," propagating brush selections to "consumer" charts below without filtering their own data, while consumer charts are filtered by these drivers. This **new feature** involves substantial changes to the `dashboard.ts` logic for rendering, dragging, and positioning dividers, and updates `dashboard_chart_view.ts` to modify brush filtering behavior. The `dashboard_registry.ts` now defines `DashboardDivider` types and utility functions to manage these driver/consumer relationships, significantly enhancing the interactivity and analytical capabilities of dashboards.
This commit introduces a **new `Scorecard` UI component** for displaying single metric values with a label, significantly enhancing the **UI's charting capabilities**. It also **refactors the existing `StatsCard` component, renaming it to `Gauge`** and refining its implementation as a dedicated gauge chart, alongside renaming `SQLStatCardLoader` to `SQLSingleValueLoader` to support both new and refactored components. The new `scorecard` chart type is fully **integrated into the `DataExplorer`'s chart rendering and type registration system**, providing users with an additional visualization option for query results. This work improves the clarity and flexibility of the **Perfetto UI's widget library** for displaying key performance indicators.
This commit introduces a significant **new capability** for the **Data Explorer** plugin, enabling **whole-tab import and export**. Users can now save and load an entire tab's state, including its **graph configuration** and all associated **dashboards** with their brush filters, into a single JSON file. This feature, implemented through new serialization logic in `graph_io.ts` and `data_explorer_tabs_storage.ts`, greatly enhances the ability to share and persist complex Data Explorer setups. New UI elements, including dedicated upload and download buttons on the tab bar, have been added to facilitate this improved **tab management** functionality.