NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Rich Chiodo false

Developer

Rich Chiodo false

rchiodo@microsoft.com

10 commits~10 files/commit

Performance

2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthMar'26369 performance
Growth Trend↑59%vs prior period
Avg Files/Commit10files per commit
Active Days10of 455 days
Top Repopyrefly10 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.

39%Productive TimeGrowth 99% + Fixes 1%
52%Maintenance Time
9%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
362547bThis commit primarily **fixes several bugs** and **enhances declaration finding** within Pyrefly's **Type Server Protocol (TSP) implementation**, identified during testing with Pylance. It **corrects the conversion of literal types** by adjusting their declaration category, name, and flags in `pyrefly/lib/tsp/type_conversion.rs`. Additionally, the **LSP server** in `pyrefly/lib/lsp/non_wasm/server.rs` is updated to include the materialized typeshed standard library path, improving the ability to locate declarations. This work significantly **improves the correctness and compatibility** of Pyrefly's TSP, laying the groundwork for more robust Pylance integration and future nightly test runs.Mar 303waste
014d6f2This commit **enhances Pyrefly's Type Server Protocol (TSP) implementation** by adding the `typeServer/snapshotChanged` notification, enabling clients like **Pylance** to receive updates on the type snapshot. Concurrently, it **refactors the TSP protocol definitions** and Pyrefly's type conversion logic to use integer-based enumerations for `DeclarationCategory`, `TypeKind`, and `DeclarationKind`, ensuring **protocol compatibility** with TypeScript. This **new capability and protocol alignment** are critical steps towards making Pyrefly a fully functional TSP provider for Pylance, backed by comprehensive unit and integration tests.Mar 2012maint
5d715a6This commit introduces **new type-related messages** to the **Type Server Protocol (TSP)**, enabling **Pyrefly** to fetch detailed type information at specific nodes and declarations. It adds `typeServer/getDeclaredType`, `typeServer/getComputedType`, and `typeServer/getExpectedType` requests, along with a significant **refactoring** of the `TypeFlags` representation within the `tsp_types` crate. A new `type_conversion` module in `pyrefly/lib/tsp` handles the complex mapping from internal Pyrefly types to the TSP protocol. This **new capability** greatly enhances **Pyrefly's** functionality as a language server backend, allowing clients like **Pylance** to provide richer type-aware features. Extensive unit and integration tests were added to validate the new type query functionality.Mar 1015grow
3ffa1c1This commit introduces **support for the `typeServer/getPythonSearchPaths` TSP message**, a **new capability** that allows the server to communicate Python search paths (akin to `PYTHONPATH`) to connected clients. This is crucial for **Pylance integration**, enabling it to accurately locate and resolve stub implementations. The work involved implementing the new request handler in `pyrefly/lib/tsp/requests/get_python_search_paths.rs`, integrating it into the **TSP server dispatch logic** in `pyrefly/lib/tsp/server.rs`, and adding comprehensive **unit and integration tests** in `pyrefly/lib/test/tsp/tsp_interaction/get_python_search_paths.rs`. Additionally, existing TSP test infrastructure was **refactored** to use shared helper functions, and a new `parse_file_uri` utility was introduced for robust URI validation.Mar 610grow
05ae0e5This commit introduces a **new capability** to the **Type Server Protocol (TSP)** by adding the `typeServer/resolveImport` message, enabling clients to query the type server for the **file path of an imported module**. This functionality is crucial for accurate type computation and analysis within the `pyrefly` language server. The **`pyrefly` type server implementation** now includes a dedicated handler for this request, along with new shared **validation utilities** in `pyrefly/lib/tsp/validation.rs` and comprehensive **integration tests** to ensure its correctness. This enhancement significantly improves the server's ability to understand and process module dependencies, directly impacting the **Language Server Protocol (LSP)** integration.Mar 49grow
75b9f78This commit performs a significant **API version upgrade** by updating the **Type Server Protocol (TSP) definition** within the **`tsp_types` crate** to match the latest version used by Pylance. This **maintenance** task involved updating the `tsp.json` protocol definition, enhancing the `generate_protocol.py` script to support new features like type inheritance, and regenerating the corresponding Rust types in `protocol.rs`. This foundational work is critical for enabling Pyrefly to implement new TSP messages, ultimately allowing it to achieve feature parity and potentially replace Pyright within Pylance. New unit tests were also added to ensure the correctness of the updated protocol types.Feb 245maint
66b3240This commit **introduces a new capability** to the **Type Server Protocol (TSP)** by adding support for the `typeServer/getSnapshot` request. This enables clients to query the server's current "state of the world," which is represented by an incrementing snapshot version (an 'epoch'). The **`pyrefly` TSP server** (`pyrefly/lib/tsp/server.rs`) now tracks this snapshot, updating it on significant events like `RecheckFinished` or file changes, and handles the new request. Integration with the LSP queue was established via `TspInterface::recheck_queue` to facilitate this process. This **new feature** is crucial for maintaining client-server synchronization and is validated by comprehensive **integration tests**.Oct 148maint
63c9b92This commit **adds initial support for the Type Server Protocol (TSP)** within Pyrefly by implementing the `typeServer/getSupportedProtocol` request. This **new capability** allows clients to query the server for its supported TSP version, returning a hardcoded value. It involves updating the `TspServer` to handle this specific request via `handle_tsp_request` and introduces a comprehensive **new testing infrastructure** for TSP interactions. This includes dedicated integration tests for `getSupportedProtocolVersion` to ensure correct protocol handshake. This work lays the groundwork for further TSP integration, establishing a basic communication mechanism between Pyrefly and TSP-compatible clients.Sep 1013maint
54a4038This commit **updates the TSP (Type System Protocol) to version 0.2.0**, aligning the `tsp_types` crate with the latest internal Pylance specification. This **major protocol update** involves **removing several deprecated requests** like `SearchForTypeAttributes` and `GetSymbolsForFile`, and **introducing new, more focused requests** such as `GetSymbolsForType` and `GetSymbolsForNode` to streamline symbol retrieval. The `Attribute` class is also eliminated in favor of the existing `Symbol` concept, leading to a **refactoring of the protocol's core data structures** and flag types within `tsp.json` and `protocol.rs`. This change is a **prerequisite for implementing new request handlers**, signifying a foundational shift in how type and symbol information is queried and processed.Aug 3119maint
2457adcThis commit introduces a **new capability** to **Pyrefly** by adding a command to run a **Type Server Protocol (TSP) server**. It establishes the core `tsp` module and its server implementation, including event processing and capability generation. The **Pyrefly CLI** is updated to include this new `tsp` command, defining its arguments and execution logic. Additionally, the existing `lsp/server.rs` module undergoes a **refactoring** to introduce a `TspInterface` and expose components, enabling their reuse by the new TSP server. This foundational work sets up the initial framework for comprehensive TSP support, with further message handling to be implemented in subsequent changes.Aug 227grow
362547bMar 30

This commit primarily **fixes several bugs** and **enhances declaration finding** within Pyrefly's **Type Server Protocol (TSP) implementation**, identified during testing with Pylance. It **corrects the conversion of literal types** by adjusting their declaration category, name, and flags in `pyrefly/lib/tsp/type_conversion.rs`. Additionally, the **LSP server** in `pyrefly/lib/lsp/non_wasm/server.rs` is updated to include the materialized typeshed standard library path, improving the ability to locate declarations. This work significantly **improves the correctness and compatibility** of Pyrefly's TSP, laying the groundwork for more robust Pylance integration and future nightly test runs.

3 fileswaste
014d6f2Mar 20

This commit **enhances Pyrefly's Type Server Protocol (TSP) implementation** by adding the `typeServer/snapshotChanged` notification, enabling clients like **Pylance** to receive updates on the type snapshot. Concurrently, it **refactors the TSP protocol definitions** and Pyrefly's type conversion logic to use integer-based enumerations for `DeclarationCategory`, `TypeKind`, and `DeclarationKind`, ensuring **protocol compatibility** with TypeScript. This **new capability and protocol alignment** are critical steps towards making Pyrefly a fully functional TSP provider for Pylance, backed by comprehensive unit and integration tests.

12 filesmaint
5d715a6Mar 10

This commit introduces **new type-related messages** to the **Type Server Protocol (TSP)**, enabling **Pyrefly** to fetch detailed type information at specific nodes and declarations. It adds `typeServer/getDeclaredType`, `typeServer/getComputedType`, and `typeServer/getExpectedType` requests, along with a significant **refactoring** of the `TypeFlags` representation within the `tsp_types` crate. A new `type_conversion` module in `pyrefly/lib/tsp` handles the complex mapping from internal Pyrefly types to the TSP protocol. This **new capability** greatly enhances **Pyrefly's** functionality as a language server backend, allowing clients like **Pylance** to provide richer type-aware features. Extensive unit and integration tests were added to validate the new type query functionality.

15 filesgrow
3ffa1c1Mar 6

This commit introduces **support for the `typeServer/getPythonSearchPaths` TSP message**, a **new capability** that allows the server to communicate Python search paths (akin to `PYTHONPATH`) to connected clients. This is crucial for **Pylance integration**, enabling it to accurately locate and resolve stub implementations. The work involved implementing the new request handler in `pyrefly/lib/tsp/requests/get_python_search_paths.rs`, integrating it into the **TSP server dispatch logic** in `pyrefly/lib/tsp/server.rs`, and adding comprehensive **unit and integration tests** in `pyrefly/lib/test/tsp/tsp_interaction/get_python_search_paths.rs`. Additionally, existing TSP test infrastructure was **refactored** to use shared helper functions, and a new `parse_file_uri` utility was introduced for robust URI validation.

10 filesgrow
05ae0e5Mar 4

This commit introduces a **new capability** to the **Type Server Protocol (TSP)** by adding the `typeServer/resolveImport` message, enabling clients to query the type server for the **file path of an imported module**. This functionality is crucial for accurate type computation and analysis within the `pyrefly` language server. The **`pyrefly` type server implementation** now includes a dedicated handler for this request, along with new shared **validation utilities** in `pyrefly/lib/tsp/validation.rs` and comprehensive **integration tests** to ensure its correctness. This enhancement significantly improves the server's ability to understand and process module dependencies, directly impacting the **Language Server Protocol (LSP)** integration.

9 filesgrow
75b9f78Feb 24

This commit performs a significant **API version upgrade** by updating the **Type Server Protocol (TSP) definition** within the **`tsp_types` crate** to match the latest version used by Pylance. This **maintenance** task involved updating the `tsp.json` protocol definition, enhancing the `generate_protocol.py` script to support new features like type inheritance, and regenerating the corresponding Rust types in `protocol.rs`. This foundational work is critical for enabling Pyrefly to implement new TSP messages, ultimately allowing it to achieve feature parity and potentially replace Pyright within Pylance. New unit tests were also added to ensure the correctness of the updated protocol types.

5 filesmaint
66b3240Oct 14

This commit **introduces a new capability** to the **Type Server Protocol (TSP)** by adding support for the `typeServer/getSnapshot` request. This enables clients to query the server's current "state of the world," which is represented by an incrementing snapshot version (an 'epoch'). The **`pyrefly` TSP server** (`pyrefly/lib/tsp/server.rs`) now tracks this snapshot, updating it on significant events like `RecheckFinished` or file changes, and handles the new request. Integration with the LSP queue was established via `TspInterface::recheck_queue` to facilitate this process. This **new feature** is crucial for maintaining client-server synchronization and is validated by comprehensive **integration tests**.

8 filesmaint
63c9b92Sep 10

This commit **adds initial support for the Type Server Protocol (TSP)** within Pyrefly by implementing the `typeServer/getSupportedProtocol` request. This **new capability** allows clients to query the server for its supported TSP version, returning a hardcoded value. It involves updating the `TspServer` to handle this specific request via `handle_tsp_request` and introduces a comprehensive **new testing infrastructure** for TSP interactions. This includes dedicated integration tests for `getSupportedProtocolVersion` to ensure correct protocol handshake. This work lays the groundwork for further TSP integration, establishing a basic communication mechanism between Pyrefly and TSP-compatible clients.

13 filesmaint
54a4038Aug 31

This commit **updates the TSP (Type System Protocol) to version 0.2.0**, aligning the `tsp_types` crate with the latest internal Pylance specification. This **major protocol update** involves **removing several deprecated requests** like `SearchForTypeAttributes` and `GetSymbolsForFile`, and **introducing new, more focused requests** such as `GetSymbolsForType` and `GetSymbolsForNode` to streamline symbol retrieval. The `Attribute` class is also eliminated in favor of the existing `Symbol` concept, leading to a **refactoring of the protocol's core data structures** and flag types within `tsp.json` and `protocol.rs`. This change is a **prerequisite for implementing new request handlers**, signifying a foundational shift in how type and symbol information is queried and processed.

19 filesmaint
2457adcAug 22

This commit introduces a **new capability** to **Pyrefly** by adding a command to run a **Type Server Protocol (TSP) server**. It establishes the core `tsp` module and its server implementation, including event processing and capability generation. The **Pyrefly CLI** is updated to include this new `tsp` command, defining its arguments and execution logic. Additionally, the existing `lsp/server.rs` module undergoes a **refactoring** to introduce a `TspInterface` and expose components, enabling their reuse by the new TSP server. This foundational work sets up the initial framework for comprehensive TSP support, with further message handling to be implemented in subsequent changes.

7 filesgrow

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