NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

gignat-dev

Developer

gignat-dev

gignat@google.com

46 commits~2 files/commit

Performance

2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthFeb'2690 performance
Growth Trend↑183%vs prior period
Avg Files/Commit2files per commit
Active Days27of 455 days
Top Repoperfetto46 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

79%Productive TimeGrowth 97% + Fixes 3%
20%Maintenance Time
1%Wasted Time
How it works

Methodology

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.

Relationship to Growth / Maintenance / Fixes

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.

Proposed API Endpoint

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
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
deae41bThis commit **fixes a bug** in the **InputEvents plugin** that caused crashes when processing negative `end_to_end_latency_dur` values. Previously, the SQL query in `ui/src/plugins/com.android.InputEvents/index.ts` only filtered for `end_to_end_latency_dur IS NOT NULL`, which allowed invalid negative durations to be included, leading to plugin failure. The **bug fix** modifies this condition to `WHERE end_to_end_latency_dur > 0`, ensuring that only valid, positive latency data is processed. This change prevents the **InputEvents plugin** from crashing and enhances the reliability of UI event analysis.Mar 131waste
40b1f91This commit introduces a **new feature** to the **Perfetto SQL standard library** for **Android trace processing**, specifically enhancing the `android_monitor_contention` and `android_monitor_contention_chain` tables. It adds a `lock_name` column, which is derived by identifying `monitor contention*` slices surrounded by `${name}_lock_acquire` and `${name}_lock_held` slices. This allows for direct identification of contention on specific "big locks" like `ams`, `proc`, `wms`, and `pms`. This improvement provides more granular insights into **Android performance bottlenecks**, making debugging more efficient by pinpointing the exact lock causing contention.Mar 131grow
289efe0This commit introduces a **new capability** to the **Android ANR plugin** within the UI, significantly improving the analysis of Application Not Responding (ANR) events. It enhances the ANR selection logic to gracefully handle scenarios where the main thread track is unavailable, a common occurrence. Now, when an ANR is selected, the system will automatically scroll to and expand the relevant process group and highlight the ANR region, ensuring the user always sees the critical context. If the main thread track is present, it will be selected as before. This change also includes **refactoring** by extracting helper methods like `pinAnrTrack` and `scrollToAndSelect` for better code organization within `ui/src/plugins/com.android.AndroidAnr/index.ts`.Mar 61grow
1b70f43This commit **fixes a data visualization bug** within the **MemoryViz** UI plugin, specifically addressing the missing representation of `kswapd0` memory reclaim activity. Previously, the `kswapd0` process, though active, did not appear as slices on the debug track due to an incomplete SQL query. The **fix** involves **updating the SQL query** in `ui/src/plugins/com.android.MemoryViz/index.ts` to correctly identify `kswapd0` slices by joining the `sched` and `thread` tables and adding an interval merge step. This ensures that **MemoryViz** now accurately displays `kswapd0` activity, providing a more complete picture of **memory reclaim** on the debug track.Mar 61waste
bb8483aThis commit performs a significant **maintenance refactoring** of the **Trace Processor's Android memory breakdown SQL script** (`memory_breakdown.sql`) within the standard library. It **exposes detailed table schemas** and **renames internal tables** to improve data clarity and structure, while also adjusting the `zygote_adjusted_value` computation and modifying how large memory spikes are handled, now marking them instead of removing them from analysis. Consequently, the **MemoryViz UI plugin** (`com.android.MemoryViz`) is updated to correctly consume the new table and column names, ensuring continued functionality and improved data consistency across the system.Mar 42maint
7616314This commit implements a **bug fix** within the **`stdlib`** module, specifically addressing an issue in the `_normalize_event_channel` function found in `src/trace_processor/perfetto_sql/stdlib/android/input.sql`. Previously, this function incorrectly parsed event channel names such as `[Gesture Monitor] swipe-up`, leading to truncated and inaccurate normalized outputs. The change introduces a special case to ensure that these specific channel names are now **correctly normalized**, preserving their full semantic meaning. This improves the accuracy of event channel processing for **Android input traces** by preventing data loss during normalization.Mar 21waste
ba018f5This commit introduces a **new feature** by **enabling the Android ANR (Application Not Responding) plugin by default** within the UI. It modifies the `ui/src/core/default_plugins.ts` configuration file to include `com.android.AndroidAnr` in the list of automatically activated plugins. This **enhancement** ensures that users will now have **ANR detection and analysis capabilities** readily available without manual configuration, significantly improving the out-of-the-box experience for Android performance investigations.Feb 261grow
8ac7eb1This commit implements a **UI adjustment** within the **Perfetto UI**, specifically targeting the display of standard groups. It **prevents the 'User Interaction' group from expanding by default**, altering its initial collapsed state. This change, located in `ui/src/plugins/dev.perfetto.StandardGroups/index.ts`, aims to improve the user experience by reducing visual clutter and allowing users to manually expand the group as needed.Feb 261waste
9440581This commit introduces a **new capability** to the **UI** by adding the `LockContention` plugin. This plugin provides a command, "Lock Contention: visualize held locks", which allows users to visualize when specific locks are held by threads. It leverages a debug slice track for this visualization, initially focusing on "big locks". This enhancement improves the debugging and analysis tools available in the **UI** for analyzing thread contention.Feb 251grow
b838b52This commit introduces a **new capability** to the **Perfetto Trace Processor standard library** by adding a SQL function `_normalize_event_channel` to `src/trace_processor/perfetto_sql/stdlib/android/input.sql`. This function enhances **Android input event analysis** by normalizing the `event_channel` column in the `android_input_events` table. A new `normalized_event_channel` column is added, providing cleaner, ID-free channel names (e.g., 'PopupWindow' from 'ccf6448 PopupWindow:b20fb4d'). This **improves data readability and simplifies querying** for Android input events, making trace analysis more efficient.Feb 231grow
12b8052This commit delivers a **bug fix** for the **`_oom_adjuster_intervals`** view within the **`stdlib/android/oom_adjuster.sql`** module. Previously, the inclusive `BETWEEN` clause in the `LEFT JOIN` condition could cause `counter.ts` values to be double-counted across consecutive OOM adjuster intervals, leading to overlapping data. The fix tightens the join condition to `> oom_adj_ts AND <= coalesce(oom_adj_next_ts, trace_end())`, ensuring each counter value is associated with only one preceding interval. This prevents **incorrect or double-counted OOM score data** in trace analysis, improving the accuracy of interval matching for OOM events.Feb 231waste
6160955This commit introduces a **new feature** to the **UI** by adding the 'Memory: reclaim events' command within the `MemoryViz` plugin. This command allows users to **visualize memory reclaim events**, specifically displaying merged kswapd and direct reclaim slices, with direct reclaim prioritized to indicate severe memory pressure. Additionally, it visualizes Low Memory Kill (LMK) events, pivoted on the `oom_bucket` of the killed application, leveraging necessary **Perfetto modules**. This enhancement provides critical insights into system memory pressure and LMK occurrences for performance analysis, improving the debugging capabilities of the tool.Feb 231grow
3cf5164This commit **improves anomaly detection** within the **`stdlib: memory_breakdown`** module by **refactoring** the filtering logic in `android/memory/memory_breakdown.sql`. The updated process now first denies memory tracks with large swings before filtering counter values by trace limits, which was previously done in reverse. This ensures that tracks with significant memory changes are correctly identified and excluded, preventing potential inaccuracies in memory analysis. The technical change involves moving trace limits timestamp filtering from the `mem_counter_values` CTE to the `mem_intervals` CTE, leading to **more robust and accurate memory analysis**.Feb 201maint
8395cf4This commit introduces an **enhancement** to the **MemoryViz** plugin, specifically improving the presentation of memory usage data. It modifies the `render` method within `ui/src/plugins/com.android.MemoryViz/index.ts` to **order memory buckets by their peak value in descending order**. This ensures that the most significant memory consumers are displayed prominently, making it easier for users to analyze and identify memory hotspots within the **UI**.Feb 191grow
0609d95This commit introduces a **new ANR classification type**, `SYSTEM_SERVER_WATCHDOG_TIMEOUT`, within the **`android_anrs`** standard library module in **Trace Processor's Perfetto SQL stdlib**. This **new capability** specifically categorizes `system_server` ANRs that do not fit existing patterns, enhancing the granularity of **Android ANR analysis**. It also adds a new function, `_extract_anr_duration_from_subject`, to reliably parse the timeout duration from ANR subject strings. This refines how **Trace Processor** identifies and reports `system_server` watchdog ANRs, providing more precise insights into system stability, with corresponding updates to **ANR metric tests**.Feb 194maint
ea00d77This commit introduces a **new feature** to the **InputEvents plugin**, adding a command to visualize input event overlaps and concurrency. Users can now analyze input processing density over a selected time range, with intervals measured from dispatch to ACK. The visualization generates a parent track for total concurrency, along with detailed sub-tracks for individual processes and their respective input event channels, ordered by peak value. This enhancement provides critical insights into input event handling performance within the UI.Feb 191grow
10e5512This commit introduces **new memory counter tracks** to the **MemoryViz plugin**, significantly enhancing its memory monitoring capabilities. Specifically, it adds `mem.heap`, `mem.rss.shmem`, `mem.dmabuf_rss`, `mem.locked`, and 'GPU Memory' tracks, providing a more granular view of system memory usage. This **feature enhancement** also refines the underlying track creation methods, such as `createTrack` and `onActivate`, to support optional tracks and sorting. The update allows users to gain deeper insights into various memory segments, improving performance analysis and debugging within the UI.Feb 191grow
9366167This commit introduces a **new capability** to the **`sdtlib` `memory_breakdown` module** by adding several **new memory counter tracks**, such as `mem.rss.shmem`, `mem.dmabuf_rss`, `mem.locked`, and `GPU Memory`. It also refines the `mem.heap` metric by adjusting it with the zygote's heap value for each process, providing more accurate memory profiling. Additionally, this change **filters counters to respect trace limits** and **fixes a bug** related to `span_left_join` with overlapping intervals. These updates, primarily within `src/trace_processor/perfetto_sql/stdlib/android/memory/memory_breakdown.sql`, provide users with **more comprehensive and reliable memory analysis** within `perfetto_sql` and include minor performance improvements.Feb 191grow
31ba4bcThis commit introduces a **new capability** to the **Perfetto SQL standard library** by adding the `upid` column to the `_android_startup_mipmap_1ms` table. This enhancement allows for the inclusion of the **unique process ID** of the starting application directly within the Android startup analysis data. The change specifically modifies `src/trace_processor/perfetto_sql/stdlib/android/startup/startup_mipmap.sql` to enrich the existing startup metrics. This provides users with more granular context, enabling more precise identification and analysis of individual processes involved in Android application startup events.Feb 181grow
b84474eThis commit **fixes a display bug** in the **Android BinderViz plugin** that prevented `android_binder_txns` slices from appearing when their `aidl_name` was `NULL`. Previously, a faulty SQL comparison `aidl_name = NULL` caused these entries to be omitted from the visualization. The change **modifies the SQL query** within `ui/src/plugins/com.android.AndroidBinderViz/index.ts` to replace `NULL` `aidl_name` values with the string `'unknown aidl'`. This ensures all relevant `android_binder_txns` data is now correctly displayed in the **BinderViz UI**, improving the completeness of the visualized trace data.Feb 171waste
deae41bMar 13

This commit **fixes a bug** in the **InputEvents plugin** that caused crashes when processing negative `end_to_end_latency_dur` values. Previously, the SQL query in `ui/src/plugins/com.android.InputEvents/index.ts` only filtered for `end_to_end_latency_dur IS NOT NULL`, which allowed invalid negative durations to be included, leading to plugin failure. The **bug fix** modifies this condition to `WHERE end_to_end_latency_dur > 0`, ensuring that only valid, positive latency data is processed. This change prevents the **InputEvents plugin** from crashing and enhances the reliability of UI event analysis.

1 fileswaste
40b1f91Mar 13

This commit introduces a **new feature** to the **Perfetto SQL standard library** for **Android trace processing**, specifically enhancing the `android_monitor_contention` and `android_monitor_contention_chain` tables. It adds a `lock_name` column, which is derived by identifying `monitor contention*` slices surrounded by `${name}_lock_acquire` and `${name}_lock_held` slices. This allows for direct identification of contention on specific "big locks" like `ams`, `proc`, `wms`, and `pms`. This improvement provides more granular insights into **Android performance bottlenecks**, making debugging more efficient by pinpointing the exact lock causing contention.

1 filesgrow
289efe0Mar 6

This commit introduces a **new capability** to the **Android ANR plugin** within the UI, significantly improving the analysis of Application Not Responding (ANR) events. It enhances the ANR selection logic to gracefully handle scenarios where the main thread track is unavailable, a common occurrence. Now, when an ANR is selected, the system will automatically scroll to and expand the relevant process group and highlight the ANR region, ensuring the user always sees the critical context. If the main thread track is present, it will be selected as before. This change also includes **refactoring** by extracting helper methods like `pinAnrTrack` and `scrollToAndSelect` for better code organization within `ui/src/plugins/com.android.AndroidAnr/index.ts`.

1 filesgrow
1b70f43Mar 6

This commit **fixes a data visualization bug** within the **MemoryViz** UI plugin, specifically addressing the missing representation of `kswapd0` memory reclaim activity. Previously, the `kswapd0` process, though active, did not appear as slices on the debug track due to an incomplete SQL query. The **fix** involves **updating the SQL query** in `ui/src/plugins/com.android.MemoryViz/index.ts` to correctly identify `kswapd0` slices by joining the `sched` and `thread` tables and adding an interval merge step. This ensures that **MemoryViz** now accurately displays `kswapd0` activity, providing a more complete picture of **memory reclaim** on the debug track.

1 fileswaste
bb8483aMar 4

This commit performs a significant **maintenance refactoring** of the **Trace Processor's Android memory breakdown SQL script** (`memory_breakdown.sql`) within the standard library. It **exposes detailed table schemas** and **renames internal tables** to improve data clarity and structure, while also adjusting the `zygote_adjusted_value` computation and modifying how large memory spikes are handled, now marking them instead of removing them from analysis. Consequently, the **MemoryViz UI plugin** (`com.android.MemoryViz`) is updated to correctly consume the new table and column names, ensuring continued functionality and improved data consistency across the system.

2 filesmaint
7616314Mar 2

This commit implements a **bug fix** within the **`stdlib`** module, specifically addressing an issue in the `_normalize_event_channel` function found in `src/trace_processor/perfetto_sql/stdlib/android/input.sql`. Previously, this function incorrectly parsed event channel names such as `[Gesture Monitor] swipe-up`, leading to truncated and inaccurate normalized outputs. The change introduces a special case to ensure that these specific channel names are now **correctly normalized**, preserving their full semantic meaning. This improves the accuracy of event channel processing for **Android input traces** by preventing data loss during normalization.

1 fileswaste
ba018f5Feb 26

This commit introduces a **new feature** by **enabling the Android ANR (Application Not Responding) plugin by default** within the UI. It modifies the `ui/src/core/default_plugins.ts` configuration file to include `com.android.AndroidAnr` in the list of automatically activated plugins. This **enhancement** ensures that users will now have **ANR detection and analysis capabilities** readily available without manual configuration, significantly improving the out-of-the-box experience for Android performance investigations.

1 filesgrow
8ac7eb1Feb 26

This commit implements a **UI adjustment** within the **Perfetto UI**, specifically targeting the display of standard groups. It **prevents the 'User Interaction' group from expanding by default**, altering its initial collapsed state. This change, located in `ui/src/plugins/dev.perfetto.StandardGroups/index.ts`, aims to improve the user experience by reducing visual clutter and allowing users to manually expand the group as needed.

1 fileswaste
9440581Feb 25

This commit introduces a **new capability** to the **UI** by adding the `LockContention` plugin. This plugin provides a command, "Lock Contention: visualize held locks", which allows users to visualize when specific locks are held by threads. It leverages a debug slice track for this visualization, initially focusing on "big locks". This enhancement improves the debugging and analysis tools available in the **UI** for analyzing thread contention.

1 filesgrow
b838b52Feb 23

This commit introduces a **new capability** to the **Perfetto Trace Processor standard library** by adding a SQL function `_normalize_event_channel` to `src/trace_processor/perfetto_sql/stdlib/android/input.sql`. This function enhances **Android input event analysis** by normalizing the `event_channel` column in the `android_input_events` table. A new `normalized_event_channel` column is added, providing cleaner, ID-free channel names (e.g., 'PopupWindow' from 'ccf6448 PopupWindow:b20fb4d'). This **improves data readability and simplifies querying** for Android input events, making trace analysis more efficient.

1 filesgrow
12b8052Feb 23

This commit delivers a **bug fix** for the **`_oom_adjuster_intervals`** view within the **`stdlib/android/oom_adjuster.sql`** module. Previously, the inclusive `BETWEEN` clause in the `LEFT JOIN` condition could cause `counter.ts` values to be double-counted across consecutive OOM adjuster intervals, leading to overlapping data. The fix tightens the join condition to `> oom_adj_ts AND <= coalesce(oom_adj_next_ts, trace_end())`, ensuring each counter value is associated with only one preceding interval. This prevents **incorrect or double-counted OOM score data** in trace analysis, improving the accuracy of interval matching for OOM events.

1 fileswaste
6160955Feb 23

This commit introduces a **new feature** to the **UI** by adding the 'Memory: reclaim events' command within the `MemoryViz` plugin. This command allows users to **visualize memory reclaim events**, specifically displaying merged kswapd and direct reclaim slices, with direct reclaim prioritized to indicate severe memory pressure. Additionally, it visualizes Low Memory Kill (LMK) events, pivoted on the `oom_bucket` of the killed application, leveraging necessary **Perfetto modules**. This enhancement provides critical insights into system memory pressure and LMK occurrences for performance analysis, improving the debugging capabilities of the tool.

1 filesgrow
3cf5164Feb 20

This commit **improves anomaly detection** within the **`stdlib: memory_breakdown`** module by **refactoring** the filtering logic in `android/memory/memory_breakdown.sql`. The updated process now first denies memory tracks with large swings before filtering counter values by trace limits, which was previously done in reverse. This ensures that tracks with significant memory changes are correctly identified and excluded, preventing potential inaccuracies in memory analysis. The technical change involves moving trace limits timestamp filtering from the `mem_counter_values` CTE to the `mem_intervals` CTE, leading to **more robust and accurate memory analysis**.

1 filesmaint
8395cf4Feb 19

This commit introduces an **enhancement** to the **MemoryViz** plugin, specifically improving the presentation of memory usage data. It modifies the `render` method within `ui/src/plugins/com.android.MemoryViz/index.ts` to **order memory buckets by their peak value in descending order**. This ensures that the most significant memory consumers are displayed prominently, making it easier for users to analyze and identify memory hotspots within the **UI**.

1 filesgrow
0609d95Feb 19

This commit introduces a **new ANR classification type**, `SYSTEM_SERVER_WATCHDOG_TIMEOUT`, within the **`android_anrs`** standard library module in **Trace Processor's Perfetto SQL stdlib**. This **new capability** specifically categorizes `system_server` ANRs that do not fit existing patterns, enhancing the granularity of **Android ANR analysis**. It also adds a new function, `_extract_anr_duration_from_subject`, to reliably parse the timeout duration from ANR subject strings. This refines how **Trace Processor** identifies and reports `system_server` watchdog ANRs, providing more precise insights into system stability, with corresponding updates to **ANR metric tests**.

4 filesmaint
ea00d77Feb 19

This commit introduces a **new feature** to the **InputEvents plugin**, adding a command to visualize input event overlaps and concurrency. Users can now analyze input processing density over a selected time range, with intervals measured from dispatch to ACK. The visualization generates a parent track for total concurrency, along with detailed sub-tracks for individual processes and their respective input event channels, ordered by peak value. This enhancement provides critical insights into input event handling performance within the UI.

1 filesgrow
10e5512Feb 19

This commit introduces **new memory counter tracks** to the **MemoryViz plugin**, significantly enhancing its memory monitoring capabilities. Specifically, it adds `mem.heap`, `mem.rss.shmem`, `mem.dmabuf_rss`, `mem.locked`, and 'GPU Memory' tracks, providing a more granular view of system memory usage. This **feature enhancement** also refines the underlying track creation methods, such as `createTrack` and `onActivate`, to support optional tracks and sorting. The update allows users to gain deeper insights into various memory segments, improving performance analysis and debugging within the UI.

1 filesgrow
9366167Feb 19

This commit introduces a **new capability** to the **`sdtlib` `memory_breakdown` module** by adding several **new memory counter tracks**, such as `mem.rss.shmem`, `mem.dmabuf_rss`, `mem.locked`, and `GPU Memory`. It also refines the `mem.heap` metric by adjusting it with the zygote's heap value for each process, providing more accurate memory profiling. Additionally, this change **filters counters to respect trace limits** and **fixes a bug** related to `span_left_join` with overlapping intervals. These updates, primarily within `src/trace_processor/perfetto_sql/stdlib/android/memory/memory_breakdown.sql`, provide users with **more comprehensive and reliable memory analysis** within `perfetto_sql` and include minor performance improvements.

1 filesgrow
31ba4bcFeb 18

This commit introduces a **new capability** to the **Perfetto SQL standard library** by adding the `upid` column to the `_android_startup_mipmap_1ms` table. This enhancement allows for the inclusion of the **unique process ID** of the starting application directly within the Android startup analysis data. The change specifically modifies `src/trace_processor/perfetto_sql/stdlib/android/startup/startup_mipmap.sql` to enrich the existing startup metrics. This provides users with more granular context, enabling more precise identification and analysis of individual processes involved in Android application startup events.

1 filesgrow
b84474eFeb 17

This commit **fixes a display bug** in the **Android BinderViz plugin** that prevented `android_binder_txns` slices from appearing when their `aidl_name` was `NULL`. Previously, a faulty SQL comparison `aidl_name = NULL` caused these entries to be omitted from the visualization. The change **modifies the SQL query** within `ui/src/plugins/com.android.AndroidBinderViz/index.ts` to replace `NULL` `aidl_name` values with the string `'unknown aidl'`. This ensures all relevant `android_binder_txns` data is now correctly displayed in the **BinderViz UI**, improving the completeness of the visualized trace data.

1 fileswaste

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch