Developer
Chris Tolliday
ctolliday@meta.com
Performance
YoY:+569%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 |
|---|
| 2fe5a9e4 | This commit **fixes an incorrect error classification** within the **`buck2_error` module's error tagging system**. It specifically reclassifies `ReResourceExhausted` errors from `tier0` to `environment` within the `tag_metadata` function. This **maintenance** change ensures that resource exhaustion issues, which are typically environmental and not indicative of critical system failures, no longer trigger **high-priority tier 0 alerts**. The primary impact is a **reduction in false positive critical alerts**, thereby improving the accuracy and relevance of operational monitoring. | Mar 24 | 1 | waste |
| 267c2551 | This commit **enhances the error reporting and debuggability** of the **Buck2 installer** by modifying the `handle_install_request` function within `app/buck2_server_commands/src/install.rs`. Previously, installer connection errors provided insufficient `stderr` context; now, the system will **always upload installer logs** if available and significantly **increase the amount of trimmed `stderr`** included in error messages. This **improvement to error handling** ensures that developers receive more comprehensive diagnostic information, including the full log path, to facilitate quicker resolution of installer failures. New end-to-end tests have been added to `tests/e2e/test_install.py` to verify this improved error message content. | Mar 23 | 2 | waste |
| 442a1d67 | This commit **enhances error reporting** for **Buck2 daemon startup failures**, specifically when the daemon is terminated by a fatal signal rather than a clean exit code. It introduces new `buck2_error` tags and a dedicated conversion module to translate `std::process::ExitStatus` into a detailed error, allowing the client to report the specific signal (e.g., OOM kill) instead of a generic "unknown exit code." This **improves diagnostic capabilities** by providing more actionable information, making it easier to identify the root cause of daemon startup issues within the `buck2_client_ctx` and `buck2_daemon` components. | Mar 18 | 9 | grow |
| a2da5fdb | This commit **enhances diagnostic logging** for the **Buck2 daemon's startup process**. It **fixes an issue** where `tracing::info` logs within the daemon's initialization future (`init_fut`) were not correctly associated with the `daemon_listener` span, preventing them from appearing in `stderr` with timestamps. By re-attaching the span and **adding more `tracing::info` calls** in `BuckdServer::run` and the daemon state initialization, this change provides **much greater visibility into the daemon's initialization steps**. This improved logging is crucial for diagnosing `CLIENT_STARTUP_TIMEOUT` errors by helping to identify specific points where the daemon might be stalling, particularly under memory pressure. Related golden tests are updated to handle the new tracing output. | Mar 18 | 7 | maint |
| 6f9b0802 | This commit introduces a **new capability** to the **DICE API** by adding a `value_serialize` method to the `Key`, `InjectedKey`, and `ProjectionKey` traits, enabling **custom serialization of DICE values**. It defines a new `ValueSerialize` trait and several associated structs like `OkPagableValueSerialize` for conditional serialization (e.g., only successful results), `NoValueSerialize` for opting out, and `PagableValueSerialize` for general use. This enhancement provides more granular control over how DICE values are serialized, with a temporary default `TodoValueSerialize` implementation provided for future refinement of **DICE's serialization infrastructure**. | Mar 18 | 4 | grow |
| 6be41944 | This commit introduces a **new capability** by implementing the `value_serialize` trait for a vast array of **Buck2 DICE keys** across numerous modules. This enables the **serialization of values** for critical components within the **build graph**, **analysis**, **configuration**, **interpreter**, and **file operations** subsystems. While most keys now support full serialization, some, like `FileOpsKey`, are temporarily marked with `TodoValueSerialize` for future implementation, and `TestExecutionKey` explicitly uses `NoValueSerialize`. This foundational change is crucial for enabling advanced features such as **remote execution**, **distributed caching**, and **persisting build graph state**, significantly enhancing the scalability and performance of Buck2. | Mar 18 | 43 | grow |
| dd9dbcf7 | This commit introduces **new capabilities** for **Thrift error classification** within the **Buck2 error handling system**. It extends the `ErrorTag` enum in `app/buck2_data/error.proto` with `THRIFT`, `THRIFT_TIMEOUT`, and `THRIFT_LOADSHEDDING` values, and adds a new module `app/buck2_error/src/conversion/thrift.rs` to convert `fbthrift::errors::NonthrowingFunctionError` into these specific error types. This **enhancement** ensures that Eden loadshedding and timeout errors are accurately categorized as tier1 environment errors, improving the **observability and debugging** of Buck2 builds by providing more precise error context. | Mar 18 | 5 | grow |
| 0ee177b6 | This commit introduces **enhanced error classification** for **Windows IO system errors** within the `buck2_error` and `buck2_data` modules. It adds new `ErrorTag` enum variants in `error.proto` to represent specific Windows IO issues. The `classify.rs` module is updated to categorize these new tags as **environment errors**, and `io.rs` now converts raw Windows OS error codes to these `ErrorTag`s using `raw_os_error_tag`. This **new capability** improves diagnostic precision by allowing the system to distinguish and report specific OS-level IO problems on Windows. | Mar 18 | 3 | grow |
| 275c0093 | This commit **refactors the error classification system** within `app/buck2_error/src/classify.rs` to improve the accuracy of error tagging. It **recategorizes specific I/O-related error tags**: `IoPermissionDenied` and `IoStorageFull` are reclassified from "input" errors to more appropriate "**environment**" errors. Additionally, the generic `IoBlockingExecutor` tag is demoted from "tier0" to "unspecified" severity within the `tag_metadata`. This change ensures that more specific and accurate environment error tags can take precedence, leading to **correct exit codes in CI** and preventing misattribution of system-level I/O failures as user input errors. | Mar 18 | 1 | maint |
| cc006a9c | This commit **enhances error classification** by consistently tagging `NotADirectory` errors, addressing a spike in tier0 errors. It introduces new `INPUT_PATH_NOT_A_DIRECTORY` and `IO_NOT_A_DIRECTORY` error tags in `buck2_data/error.proto` and updates the **`buck2_error` module** to map `io::ErrorKind::NotADirectory` accordingly. Crucially, the **`buck2_fs` module** now correctly categorizes `NotADirectory` errors originating from input paths as `InputPathNotADirectory`, mirroring the treatment of `NotFound` errors. This **bug fix and feature addition** provides more precise diagnostics for file system-related build failures, improving the overall **error reporting system**. | Mar 18 | 5 | grow |
| 9a5fb91e | This commit **improves error classification** within the **Buck2 error handling system** by reclassifying specific `InputOutputError` instances. Previously, "input/output 5" errors, known to stem from Eden load shedding, were categorized as `unspecified`. Now, the `tag_metadata` function in `app/buck2_error/src/classify.rs` explicitly marks these as **environment errors**. This change ensures that critical issues related to **Eden load shedding** are consistently grouped and identified as **Tier 1 environment errors**, significantly enhancing **error monitoring and debugging** capabilities. | Mar 18 | 1 | waste |
| a831a3bb | This commit **enhances the error reporting system** by introducing two new, more granular I/O error tags: `IoBadAddress` and `IoStaleNfsHandle`. It **extends the `ErrorTag` enum** in `app/buck2_data/error.proto` and updates the **error classification logic** in `buck2_error/src/classify.rs` to recognize them. Crucially, the `raw_os_error_tag` function in `buck2_error/src/conversion/stds/io.rs` now maps specific OS error codes like `EFAULT` and `ERROR_STALE_NFS_HANDLE` to these new tags. This **new capability** improves the system's ability to differentiate and handle specific low-level **I/O failures related to memory access and network file system issues**, providing more precise diagnostics. | Mar 18 | 3 | grow |
| bba91b00 | This commit provides a **bug fix** for **OSS build breakages** in the **`starlark-rust/starlark` crate** by removing the conditional `pagable_dep` feature attribute from numerous `Pagable` and `PagablePanic` derive macros. This change addresses issues where `buck2`'s integration of `starlark-rust/starlark` failed due to the `pagable_dep` feature no longer being optional. The `starlark-rust/starlark` crate now has a non-optional dependency on `pagable`, rendering the `pagable_dep` feature gate obsolete. This ensures consistent compilation across environments and resolves previous build failures related to `pagable` implementations. | Mar 17 | 12 | waste |
| cec8a063 | This commit introduces the **conditional derivation of the `PagablePanic` trait** for a wide array of **core Starlark types** within the `starlark-rust` crate. Specifically, structs and enums across the **Starlark runtime's `environment`, `eval`, `typing`, and `values` subsystems**, such as `Globals`, `Module`, `Ty`, and various `FrozenValue` types, now implement this trait. This is a **preparatory enabling change** that updates the build configuration in `starlark-rust/starlark/BUCK` and adds the necessary `#[derive]` attributes, laying the groundwork for future panic handling or resource management features. While not immediately altering runtime behavior, this **unblocks subsequent development** that will leverage the `PagablePanic` trait, allowing for more robust or specialized handling of panics within the Starlark interpreter. | Mar 17 | 12 | grow |
| 7df9497b | This commit **implements the `Pagable` trait** for a broad set of **core Buck2 data structures**, enabling them for pagable serialization and deserialization. This **feature enhancement** affects numerous types across **`buck2_common`**, **`buck2_core`**, and **`buck2_execute`**, including `LegacyBuckConfigErrorKey`, `Category`, `PackagePattern`, and `ArtifactValue`. The change lays foundational groundwork for improved performance and memory management by making these types incrementally processable. For complex types within **`buck2_directory`** like `SharedDirectory` and `DirectoryEntry`, a temporary `PagablePanic` derive is used, signaling that more specific `Pagable` implementations will follow. Additionally, a minor **refactoring** was performed within the `pagable_derive` crate. | Mar 17 | 15 | grow |
| 3e356f5d | This commit **enables serialization capabilities** for a broad set of internal data structures within Buck2 by implementing the `PagablePanic` derive macro and related traits (`PagableSerialize`, `PagableBoxDeserialize`). Specifically, it targets types stored as **DICE values** across the **build API**, **interpreter**, and **node subsystems**, such as `ActionOutputs`, `AnalysisResult`, `LoadedModule`, and `EvaluationResult`. This **infrastructure improvement** is a crucial step towards making these complex values serializable, paving the way for future features that rely on persistent or distributed state management. | Mar 17 | 18 | grow |
| 669a97bd | This commit **refactors** the `buck2` codebase by **implementing the `Pagable` trait** for a broad range of core types within the **`buck2_action_impl` and `buck2_build_api` modules**. This change enables **memory pagination and improved Starlark compatibility** for critical data structures, including various build action definitions (e.g., `CasArtifactAction`, `RunAction`, `WriteAction`), artifact group representations, and transition information. The `Pagable` derive is applied to dozens of structs and enums, while `PagablePanic` is temporarily used for `PromiseArtifact` and `ArtifactTag` to manage specific pagination behaviors. This work is foundational for optimizing memory usage and serialization of these frequently used types across the build system. | Mar 17 | 17 | maint |
| 9c5597c7 | This commit **refactors** the **`DigestAlgorithm`** enum within the **`buck2_common`** module to streamline the handling of **Blake3 keyed hashing**. It removes the direct storage of a generic key from the `Blake3Keyed` variant, instead introducing a new `Blake3KeyedTest` variant and leveraging enum values to implicitly determine the correct key. This **refactoring** simplifies the enum's design, avoiding complexities associated with making static byte arrays `Pagable`. Consequently, various associated methods like `new_digester` and `parse_digest` are updated to align with this new structure, and the `buck2_server` daemon's `convert_algorithm_kind` function is adjusted. The change ensures more robust and efficient digest algorithm management, particularly for build-specific keying. | Mar 17 | 4 | maint |
| 66db6fb4 | This commit **implements the `Pagable` trait** for various core filesystem and file operation delegate structs across the `buck2_common`, `buck2_core`, and `buck2_external_cells` modules. It **derives `Pagable`** for types such as `IoFileOpsDelegate`, `FsIoProvider`, `ProjectRoot`, and `GitFileOpsDelegate`, and utilizes `pagable_typetag` to enable paging for `Arc<dyn FileOpsDelegate>` trait objects. This **new capability** is foundational work to support efficient memory paging of these critical components, which will improve performance and memory usage in future diffs. For `BundledFileOpsDelegate` and `TestCellFileOps`, `PagablePanic` is used, indicating a specific or temporary handling for these particular delegates. | Mar 17 | 8 | grow |
| 2451be0d | This commit **refactors** the **`cas_digest` subsystem** within the **`buck2_common` library** to enhance **memory efficiency** and enable new capabilities. It introduces a **static interner** for `CasDigestInner` values, which are often leaked from `buckconfig` at daemon startup, thereby optimizing memory usage by deduplicating these static instances. Additionally, the `CasDigestConfig` type now **implements the `Pagable` trait**, allowing for more flexible handling or display of digest configurations. This **refactoring** primarily impacts the internal management of content-addressable storage digests, improving performance for daemon-initialized configurations. | Mar 17 | 3 | maint |
This commit **fixes an incorrect error classification** within the **`buck2_error` module's error tagging system**. It specifically reclassifies `ReResourceExhausted` errors from `tier0` to `environment` within the `tag_metadata` function. This **maintenance** change ensures that resource exhaustion issues, which are typically environmental and not indicative of critical system failures, no longer trigger **high-priority tier 0 alerts**. The primary impact is a **reduction in false positive critical alerts**, thereby improving the accuracy and relevance of operational monitoring.
This commit **enhances the error reporting and debuggability** of the **Buck2 installer** by modifying the `handle_install_request` function within `app/buck2_server_commands/src/install.rs`. Previously, installer connection errors provided insufficient `stderr` context; now, the system will **always upload installer logs** if available and significantly **increase the amount of trimmed `stderr`** included in error messages. This **improvement to error handling** ensures that developers receive more comprehensive diagnostic information, including the full log path, to facilitate quicker resolution of installer failures. New end-to-end tests have been added to `tests/e2e/test_install.py` to verify this improved error message content.
This commit **enhances error reporting** for **Buck2 daemon startup failures**, specifically when the daemon is terminated by a fatal signal rather than a clean exit code. It introduces new `buck2_error` tags and a dedicated conversion module to translate `std::process::ExitStatus` into a detailed error, allowing the client to report the specific signal (e.g., OOM kill) instead of a generic "unknown exit code." This **improves diagnostic capabilities** by providing more actionable information, making it easier to identify the root cause of daemon startup issues within the `buck2_client_ctx` and `buck2_daemon` components.
This commit **enhances diagnostic logging** for the **Buck2 daemon's startup process**. It **fixes an issue** where `tracing::info` logs within the daemon's initialization future (`init_fut`) were not correctly associated with the `daemon_listener` span, preventing them from appearing in `stderr` with timestamps. By re-attaching the span and **adding more `tracing::info` calls** in `BuckdServer::run` and the daemon state initialization, this change provides **much greater visibility into the daemon's initialization steps**. This improved logging is crucial for diagnosing `CLIENT_STARTUP_TIMEOUT` errors by helping to identify specific points where the daemon might be stalling, particularly under memory pressure. Related golden tests are updated to handle the new tracing output.
This commit introduces a **new capability** to the **DICE API** by adding a `value_serialize` method to the `Key`, `InjectedKey`, and `ProjectionKey` traits, enabling **custom serialization of DICE values**. It defines a new `ValueSerialize` trait and several associated structs like `OkPagableValueSerialize` for conditional serialization (e.g., only successful results), `NoValueSerialize` for opting out, and `PagableValueSerialize` for general use. This enhancement provides more granular control over how DICE values are serialized, with a temporary default `TodoValueSerialize` implementation provided for future refinement of **DICE's serialization infrastructure**.
This commit introduces a **new capability** by implementing the `value_serialize` trait for a vast array of **Buck2 DICE keys** across numerous modules. This enables the **serialization of values** for critical components within the **build graph**, **analysis**, **configuration**, **interpreter**, and **file operations** subsystems. While most keys now support full serialization, some, like `FileOpsKey`, are temporarily marked with `TodoValueSerialize` for future implementation, and `TestExecutionKey` explicitly uses `NoValueSerialize`. This foundational change is crucial for enabling advanced features such as **remote execution**, **distributed caching**, and **persisting build graph state**, significantly enhancing the scalability and performance of Buck2.
This commit introduces **new capabilities** for **Thrift error classification** within the **Buck2 error handling system**. It extends the `ErrorTag` enum in `app/buck2_data/error.proto` with `THRIFT`, `THRIFT_TIMEOUT`, and `THRIFT_LOADSHEDDING` values, and adds a new module `app/buck2_error/src/conversion/thrift.rs` to convert `fbthrift::errors::NonthrowingFunctionError` into these specific error types. This **enhancement** ensures that Eden loadshedding and timeout errors are accurately categorized as tier1 environment errors, improving the **observability and debugging** of Buck2 builds by providing more precise error context.
This commit introduces **enhanced error classification** for **Windows IO system errors** within the `buck2_error` and `buck2_data` modules. It adds new `ErrorTag` enum variants in `error.proto` to represent specific Windows IO issues. The `classify.rs` module is updated to categorize these new tags as **environment errors**, and `io.rs` now converts raw Windows OS error codes to these `ErrorTag`s using `raw_os_error_tag`. This **new capability** improves diagnostic precision by allowing the system to distinguish and report specific OS-level IO problems on Windows.
This commit **refactors the error classification system** within `app/buck2_error/src/classify.rs` to improve the accuracy of error tagging. It **recategorizes specific I/O-related error tags**: `IoPermissionDenied` and `IoStorageFull` are reclassified from "input" errors to more appropriate "**environment**" errors. Additionally, the generic `IoBlockingExecutor` tag is demoted from "tier0" to "unspecified" severity within the `tag_metadata`. This change ensures that more specific and accurate environment error tags can take precedence, leading to **correct exit codes in CI** and preventing misattribution of system-level I/O failures as user input errors.
This commit **enhances error classification** by consistently tagging `NotADirectory` errors, addressing a spike in tier0 errors. It introduces new `INPUT_PATH_NOT_A_DIRECTORY` and `IO_NOT_A_DIRECTORY` error tags in `buck2_data/error.proto` and updates the **`buck2_error` module** to map `io::ErrorKind::NotADirectory` accordingly. Crucially, the **`buck2_fs` module** now correctly categorizes `NotADirectory` errors originating from input paths as `InputPathNotADirectory`, mirroring the treatment of `NotFound` errors. This **bug fix and feature addition** provides more precise diagnostics for file system-related build failures, improving the overall **error reporting system**.
This commit **improves error classification** within the **Buck2 error handling system** by reclassifying specific `InputOutputError` instances. Previously, "input/output 5" errors, known to stem from Eden load shedding, were categorized as `unspecified`. Now, the `tag_metadata` function in `app/buck2_error/src/classify.rs` explicitly marks these as **environment errors**. This change ensures that critical issues related to **Eden load shedding** are consistently grouped and identified as **Tier 1 environment errors**, significantly enhancing **error monitoring and debugging** capabilities.
This commit **enhances the error reporting system** by introducing two new, more granular I/O error tags: `IoBadAddress` and `IoStaleNfsHandle`. It **extends the `ErrorTag` enum** in `app/buck2_data/error.proto` and updates the **error classification logic** in `buck2_error/src/classify.rs` to recognize them. Crucially, the `raw_os_error_tag` function in `buck2_error/src/conversion/stds/io.rs` now maps specific OS error codes like `EFAULT` and `ERROR_STALE_NFS_HANDLE` to these new tags. This **new capability** improves the system's ability to differentiate and handle specific low-level **I/O failures related to memory access and network file system issues**, providing more precise diagnostics.
This commit provides a **bug fix** for **OSS build breakages** in the **`starlark-rust/starlark` crate** by removing the conditional `pagable_dep` feature attribute from numerous `Pagable` and `PagablePanic` derive macros. This change addresses issues where `buck2`'s integration of `starlark-rust/starlark` failed due to the `pagable_dep` feature no longer being optional. The `starlark-rust/starlark` crate now has a non-optional dependency on `pagable`, rendering the `pagable_dep` feature gate obsolete. This ensures consistent compilation across environments and resolves previous build failures related to `pagable` implementations.
This commit introduces the **conditional derivation of the `PagablePanic` trait** for a wide array of **core Starlark types** within the `starlark-rust` crate. Specifically, structs and enums across the **Starlark runtime's `environment`, `eval`, `typing`, and `values` subsystems**, such as `Globals`, `Module`, `Ty`, and various `FrozenValue` types, now implement this trait. This is a **preparatory enabling change** that updates the build configuration in `starlark-rust/starlark/BUCK` and adds the necessary `#[derive]` attributes, laying the groundwork for future panic handling or resource management features. While not immediately altering runtime behavior, this **unblocks subsequent development** that will leverage the `PagablePanic` trait, allowing for more robust or specialized handling of panics within the Starlark interpreter.
This commit **implements the `Pagable` trait** for a broad set of **core Buck2 data structures**, enabling them for pagable serialization and deserialization. This **feature enhancement** affects numerous types across **`buck2_common`**, **`buck2_core`**, and **`buck2_execute`**, including `LegacyBuckConfigErrorKey`, `Category`, `PackagePattern`, and `ArtifactValue`. The change lays foundational groundwork for improved performance and memory management by making these types incrementally processable. For complex types within **`buck2_directory`** like `SharedDirectory` and `DirectoryEntry`, a temporary `PagablePanic` derive is used, signaling that more specific `Pagable` implementations will follow. Additionally, a minor **refactoring** was performed within the `pagable_derive` crate.
This commit **enables serialization capabilities** for a broad set of internal data structures within Buck2 by implementing the `PagablePanic` derive macro and related traits (`PagableSerialize`, `PagableBoxDeserialize`). Specifically, it targets types stored as **DICE values** across the **build API**, **interpreter**, and **node subsystems**, such as `ActionOutputs`, `AnalysisResult`, `LoadedModule`, and `EvaluationResult`. This **infrastructure improvement** is a crucial step towards making these complex values serializable, paving the way for future features that rely on persistent or distributed state management.
This commit **refactors** the `buck2` codebase by **implementing the `Pagable` trait** for a broad range of core types within the **`buck2_action_impl` and `buck2_build_api` modules**. This change enables **memory pagination and improved Starlark compatibility** for critical data structures, including various build action definitions (e.g., `CasArtifactAction`, `RunAction`, `WriteAction`), artifact group representations, and transition information. The `Pagable` derive is applied to dozens of structs and enums, while `PagablePanic` is temporarily used for `PromiseArtifact` and `ArtifactTag` to manage specific pagination behaviors. This work is foundational for optimizing memory usage and serialization of these frequently used types across the build system.
This commit **refactors** the **`DigestAlgorithm`** enum within the **`buck2_common`** module to streamline the handling of **Blake3 keyed hashing**. It removes the direct storage of a generic key from the `Blake3Keyed` variant, instead introducing a new `Blake3KeyedTest` variant and leveraging enum values to implicitly determine the correct key. This **refactoring** simplifies the enum's design, avoiding complexities associated with making static byte arrays `Pagable`. Consequently, various associated methods like `new_digester` and `parse_digest` are updated to align with this new structure, and the `buck2_server` daemon's `convert_algorithm_kind` function is adjusted. The change ensures more robust and efficient digest algorithm management, particularly for build-specific keying.
This commit **implements the `Pagable` trait** for various core filesystem and file operation delegate structs across the `buck2_common`, `buck2_core`, and `buck2_external_cells` modules. It **derives `Pagable`** for types such as `IoFileOpsDelegate`, `FsIoProvider`, `ProjectRoot`, and `GitFileOpsDelegate`, and utilizes `pagable_typetag` to enable paging for `Arc<dyn FileOpsDelegate>` trait objects. This **new capability** is foundational work to support efficient memory paging of these critical components, which will improve performance and memory usage in future diffs. For `BundledFileOpsDelegate` and `TestCellFileOps`, `PagablePanic` is used, indicating a specific or temporary handling for these particular delegates.
This commit **refactors** the **`cas_digest` subsystem** within the **`buck2_common` library** to enhance **memory efficiency** and enable new capabilities. It introduces a **static interner** for `CasDigestInner` values, which are often leaked from `buckconfig` at daemon startup, thereby optimizing memory usage by deduplicating these static instances. Additionally, the `CasDigestConfig` type now **implements the `Pagable` trait**, allowing for more flexible handling or display of digest configurations. This **refactoring** primarily impacts the internal management of content-addressable storage digests, improving performance for daemon-initialized configurations.